네트워크포렌식실습 ICMP 패킷분석과 Ping 공격
목 차 ICMP 헤더와동작 ICMP 와이어샤크분석 IP와 MAC 주소분석 Dos 공격유형과대응방법 DDos 공격과공격시연 2
ICMP 헤더와동작 1) ICMP 란? 2) ICMP 위치 3) ICMP 캡슐화 4) ICMP 동작과정및확인 5) ICMP 헤더구조 6) ICMP 메시지형식및종류
ICMP 프로토콜 ICMP 란? Internet control message protocol( 인터넷제어메시지프로토콜 ) 의약자. 오류검사와오류제어를제공하지않는 IP 프로토콜의단점보완하기위해개발. 오류보고는제공하지만, 오류에대한복구기능은제공하지않음. IP Protocol을신뢰적으로동작할수있도록지원. Ping 명령어를통해 ICMP 동작확인가능. 네트워크컴퓨터상에서오류메시지를전송하는데사용. 4
ICMP 프로토콜 ICMP 프로토콜위치 ICMP 는 IP Layer 의한부분. 에러나주의가요구되는상태등을전송하는역할수행. ICMP 메시지는 IP 계층이나그보다높은계층 (TCP, UDP 등 ) 에호출. 5
ICMP 프로토콜 ICMP 캡슐화 (ICMP Packet Encapsulation) ICMP메시지를직접데이터링크계층으로전달할수없음. IP 데이터그램내에캡슐화되어패킷전송. 데이터그램과 ICMP 메시지를별도로전송하면같은일을반복수행하기때문에비효율적. 6
ICMP 프로토콜 ICMP 동작과정 PC에서 ping 명령을내리면 IP주소가 119.209.1.3 인목적지로 ICMP 요청메시지를전송. ( 출발지 PC : 192.168.1.2) ICMP 요청메시지를수신한서버는이에대한응답으로 ICMP 응답메시지를 192.168.1.2 ( 출발지PC) 에전송. 7
ICMP 프로토콜 ICMP 동작확인 (Ping 명령어 - 성공 ) ICMP 메시지의가장간단한예 ) Ping 명령어. 사용자가 Ping 명령어를수행했을때위와같은결과가나온다면, ICMP 프로토콜을사용하여해당 IP( 도메인 ) 에접속가능하다는것을보여줌. 8
ICMP 프로토콜 ICMP 동작확인 (Ping 명령어 - 실패 ) 만약 PC 가목적지와네트워크연결에장애가발생되었거나, 전송장비에 문제가있고오류가있다면위와같은요청실패메시지를출력. 9
ICMP 프로토콜 ICMP 헤더구조 Type (1Byte) : ICMP 서비스의유형구분 ( 대분류 ) Code (1Byte) : 특성메시지의유형을세분화 ( 소분류 ) Checksum (2Byte) : 메시지오류검사 Data( 잘못된 IP 헤더 + 데이터 8 Byte) : 문제를일으킨데이터그램의 IP 헤더와데이터 8바이트를포함. 10
ICMP 프로토콜 ICMP 메시지 (Message) 형식및종류 오류보고메시지 (Error-Reporting Message) - 라우터및수신지호스트에서발견되는문제를송신지로보고. 질의메시지 (Query Message) - 질의 + 응답 의쌍으로사용. - 호스트나네트워크관리자가라우터나다른호스트로부터특정정보를얻기위해사용. 11
ICMP 프로토콜 ICMP 메시지 (Message) ICMP 오류보고메시지생성및전송주체 : 라우터또는송신지호스트. ICMP 오류보고메시지수신주체 : 송신지호스트. 12
출처 ICMP 프로토콜 http://blog.naver.com/asd7979?redirect=log&logno=30103469971 http://whitelka.blog.me/60109961894 위치 : http://blog.naver.com/q2000tprl?redirect=log&logno=150069635323 캡슐화 : http://donjobani.blog.me/30110295821 동작과정 : http://blog.naver.com/asd7979?redirect=log&logno=30103469971 메시지 : http://blog.naver.com/mhsy7?redirect=log&logno=130147311287 Type별오류메시지 : http://www.networksorcery.com/enp/protocol/icmp.htm 13
ICMP 와이어샤크분석 1) Ping Test 패킷캡쳐 2) 패킷의 ICMP 헤더분석 3) 3 개의패킷조합하기
ICMP WireShack 패킷분석 패킷캡쳐 (Ping Test) Step 1 : WireShack 로패킷캡쳐. 캡쳐할 PC 를선택후 Ping Test. Ping Test 완료후중지. 15
ICMP WireShack 패킷분석 패킷캡쳐 (Ping Test) Step 2 : Command 창에서 Ping test. (Ping l 4000 www.ysu.ac.kr 로 test) 16
ICMP WireShack 패킷분석 패킷캡쳐 (Ping Test) Step 3 : 패킷캡쳐확인. 17
패킷의 ICMP 헤더분석 ICMP 헤더분석 Step 1 : 캡쳐된패킷확인. Ping Test 1 회 ICMP 패킷 2 개 ( 각각 Request, Reply) 18
패킷의 ICMP 헤더분석 ICMP 헤더분석 Step 2 : ICMP Request( 요청 ) 패킷확인 (IP Protocol). ICMP Echo (ping) request 패킷클릭 하단에프로토콜별상세정보확인. Internet Protocol(IP) 에서 Source 와 destination 확인. 19
패킷의 ICMP 헤더분석 ICMP 헤더분석 Step 3 : ICMP Request( 요청 ) 패킷확인 (ICMP Protocol). Internet Control Message Protocol(ICMP) 에서 Type 과 Data 크기확인. Type 8 : Echo request 보낸 Data 크기 : 4000 Byte ( ping l 4000 www.ysu.ac.kr ) 20
패킷의 ICMP 헤더분석 ICMP 헤더분석 Step 4 : ICMP Reply( 응답 ) 패킷확인. Type 0 : Echo Reply 주고받는 Request 와 Reply 패킷의 Sequence number 는동일해야함. 21
패킷의 ICMP 헤더분석 ICMP 헤더분석 Step 5 : ICMP Request( 요청 ) 패킷세부사항확인. Type(1byte) : 8(10 진수 ) 08(16 진수 ) 표기됨. Code(1byte) : 0(10 진수 ) 00(16 진수 ). Checksum(2byte) : oxf2f2 f2 f2(16 진수 ). 22
패킷의 ICMP 헤더분석 ICMP 헤더분석 Step 5 : ICMP Request( 요청 ) 패킷세부사항확인. 23
패킷의 ICMP 헤더분석 ICMP 헤더분석 Step 6 : ICMP Reply( 응답 ) 패킷세부사항확인. 24
ICMP WireShack 패킷분석 3 개의패킷조합하기 Step 1 : 캡쳐패킷순서대로정렬. MacFrame의최대수용데이터크기 (1500Byte) 따라서 4000 Byte의패킷은 3개로나뉘어져전송. 첫번째 Ping ( 총 4회 ) - IPv4, IPv4, ICMP (3개의패킷이 4000Byte에해당하는패킷 ) - 요청 (requeset) 패킷과응답 (reply) 패킷총 6개 25
ICMP WireShack 패킷분석 3 개의패킷조합하기 Step 2 : 요청패킷과응답패킷매칭 Request 패킷과 Reply 패킷의 seqence number 를통해요청에대한응답 패킷임을확인가능. 26
ICMP WireShack 패킷분석 3 개의패킷조합하기 Step 3 : request( 요청 ) 에대한패킷식별자확인 IP Protocol (Proto=ICMP, off=0, ID=044f) 에해당하는패킷. IPv4 의 Identification 값확인. (1103) 27
ICMP WireShack 패킷분석 3 개의패킷조합하기 Step 3 : request( 요청 ) 에대한패킷식별자확인 IP Protocol (Proto=ICMP, off=1480, ID=044f) 에해당하는패킷. IPv4 의 Identification 값확인. (1103) 28
ICMP WireShack 패킷분석 3 개의패킷조합하기 Step 3 : request( 요청 ) 에대한패킷식별자확인 ICMP request (id=0x0001, seq=8/2048, ttl=128) 에해당하는패킷. IPv4 의 Identification 값확인. (1103) 29
IP 헤더구조 1) Internet Protocol 란? 2) IP 헤더구조
Internet Protocol (IP) IP 란? Internet protocol( 인터넷프로토콜 ) 의약자. OSI 참조모델에서 3계층인네트워크계층에해당하는프로토콜. IP 주소에따라다른네트워크간패킷 ( 데이터 ) 전송을가능하게함. 패킷이발신된순서대로도착하는것은보증하지않음. ( 비신뢰성, 비연결형 ) - 비신뢰성 (Unreliable) : 목적지에성공적도달을보장 X. - 비연결형 (Connectionless) : 전달되는데이터그램에대한상태정보유지 X. 각각의데이터그램은독립적으로처리. 31
Internet Protocol (IP) IP 헤더구조 Identification( 식별자 ) : 호스트가전송한데이터그램을식별하는역할.( 유일 ) Fragment Offset( 단편화옵셋 ) : 단편화된조각들합칠때전체데이터그램 에서의위치표시. 32
IP 와 MAC 주소분석 1) MAC 주소분석 2) IP 주소분석
IP 와 MAC 주소분석 MAC 주소분석 Step 1 : Ethernet 헤더구조 Destination 주소 (6Byte) : 목적지 MAC 주소표시. Source 주소 (6Byte) : 송신지 MAC 주소표시. Type (2Byte) : Ethernet 타입표시. 34
IP 와 MAC 주소분석 MAC 주소분석 Step 2 : Ethernet 을통한 MAC 주소분석 Request 패킷의 Source Mac 과 Destination Mac 주소정보확인. 35
IP 와 MAC 주소분석 MAC 주소분석 Step 2 : Destination Mac Destination Mac 주소가먼저나오는것확인. 36
IP 와 MAC 주소분석 MAC 주소분석 Step 3 : Source Mac Destination Mac 주소뒤에 Source Mac 주소확인. 37
IP 와 MAC 주소분석 IP 주소분석 Step 1 : Source IP Source IP(192.168.0.38) 16 진수 (c0 a8 00 26) 표기. 38
IP 와 MAC 주소분석 IP 주소분석 Step 2 : Destination IP Destination IP(211.220.228.10) 16 진수 (d3 dc e4 0a) 표기. 39
Request, Reply 패킷분석 1) Request 패킷분석 2) Reply 패킷분석
Request, Reply 패킷분석 Request 패킷분석 Step 1 : Ping 패킷캡쳐분석 Ping l 4000 ( 명령구문 ) - Packet size : 4000byte 지정. - Mac Frame 한번에보낼수있는패킷크기 : 1500 byte 제한. - 4000 Byte 패킷은총 3개의패킷으로전송. 41
Request, Reply 패킷분석 Request 패킷분석 Step 2 : IP 프로토콜을이용한패킷조합확인 Flags 의 More Fragements 가 1 로셋팅 패킷이뒤에더있다는의미. 42
Request, Reply 패킷분석 Request 패킷분석 Step 2 : IP 프로토콜을이용한패킷조합확인 Packet 의 Flags 의 More Fragments 부분이 0 으로셋팅 마지막패킷의미. Data 크기 : 1480, 1480, 1048 로총 4008 byte 임을확인. 8byte 는 ICMP Header 가 8 byte 이기때문에추가됨. 43
Request, Reply 패킷분석 Reply 패킷분석 Step 1 : IP 프로토콜을이용한패킷조합확인 Flags 의 More Fragements 가 1 로셋팅 패킷이뒤에더있다는의미. 44
Request, Reply 패킷분석 Reply 패킷분석 Step 1 : IP 프로토콜을이용한패킷조합확인 Packet 의 Flags 의 More Fragments 부분이 0 으로셋팅 마지막패킷의미. Data 크기 : 1480, 1480, 1048 로총 4008 byte 임을확인. 8byte 는 ICMP Header 가 8 byte 이기때문에추가됨. 45
Dos 공격유형과대응방법 1) Dos 란? 2) Tear Drop Attack 3) Sumurf Attack 4) LAND Attack
DOS 공격유형과대응방법 DOS(Denial of Service Attack) 란? 해커들이특정컴퓨터에침투해자료를삭제하거나훔쳐가는것이아니라, 대량의접속을유발해해당컴퓨터를마비시키는수법. 47
DOS 공격유형과대응방법 Tear Drop Attack IP 패킷의전송이잘게나누어졌다가다시재조합하는과정의약점악용한공격. 정상적 Fragmentation 경우 Fragment 간 Offset 이차례로나열됨. TearDrop 공격후 Fragment 1 과 ~ Fragment 3 간간격이겹치는것확인. Offset 이겹치거나간격이벌어지면, 패킷을재조합불가능. 48
DOS 공격유형과대응방법 Tear Drop Attack 실습환경 공격환경 : backtrack 5 피해환경 : windows XP 패킷분석 : wireshark Tear Drop Attack 공격툴./newtear [Attacker IP][Target IP] -s [ Source Port] -t [Destination Port] -n [ Packet Number Size] [ 컴파일 ] # gcc -o newtear newtear.c [ 공격실행 ] root#./teardrop 소스주소목적지주소 -s 출발지포트 -t 목적지포트 -n 횟수예 ) #./newtear 222.222.222.222 172.16.0.3 -t 80 -n 180 #./teardrop 211.211.210.210 211.211.211.211 -s 22 -t 139 -n 1000 49
DOS 공격유형과대응방법 Tear Drop Attack newtear.c 라는 teardroop source code 컴파일 50
DOS 공격유형과대응방법 Tear Drop Attack UDP프로토콜이용 Source Port : 100, Destination Port : 100. 보내진패킷이 Fragment IP Protocol을이용해나누어지며, 나누어진 Fragment offset이 0~27, 24~27로겹쳐져있음을확인. 보안대책 - Fragment Offset이잘못된경우패킷을버리도록설정. 51
DOS 공격유형과대응방법 Smurf Attack 공격대상의 IP를출발지로설정하고 Broadcast 방식으로 ICMP, SYN 등을네트워크상의모든컴퓨터로 Request 패킷전송. 패킷을받은컴퓨터들은공격대상에게 Reply 패킷을보내고공격은많은패킷들은분석해야하므로시스템과부하발생.
DOS 공격유형과대응방법 Smurf Attack 실습환경 Tear Drop Attack 공격툴 공격환경 : backtrack 5 피해환경 : windows XP 패킷분석 : wireshark # hping3 [Broadcast IP] -a [Target IP ] [Packet Type] flood IP 가 C class 이므로 broadcast IP 192.168.0.255 이며 target IP 192.168.0.4 로 icmp 패킷을보냈음 53
DOS 공격유형과대응방법 Smurf Attack 192.168.0.4 가 broadcast IP 인 192.168.0.255 로 ICMP 패킷을전송중. - 여러 IP 들에게서 reply 패킷이오는것을확인 보안대책 - 스위치나라우터에서 broadcast 방식으로 ICMP(ping), SYN 과 패킷이뿌려지는것을 drop 시킨다. 54
DOS 공격유형과대응방법 Land Attack SYN Flooding 처럼동시사용자수를점유해버리며, CPU 부하까지상승시킴. [ 컴파일 ] root# gcc -o land land.c [ 공격실행 ] root#./land 172.16.0.3 172.16.0.3 80 80 55
DOS 공격유형과대응방법 Land Attack 실습환경 Tear Drop Attack 공격툴 공격환경 : backtrack 5 피해환경 : windows XP 패킷분석 : wireshark # hping3 [Broadcast IP] -a [Target IP] [Packet Type] flood 192.168.0.158 로송신자와수신자를설정하고 25 번포트를이용하여 1,000,000 개의패킷전송. 56
DOS 공격유형과대응방법 Land Attack Source와 Destination이 192.168.0.158로동일. SMTP(25번 ) 포트를이용하여 SYN 패킷전송됨. 보안대책 - 송신자와수신자가동일한패킷은차단하도록설정. - 보안이너무쉽고확실해, 실제로는사용되지않는공격임. 57
출처 Dos 공격유형과대응방법 http://blog.naver.com/kiminkyu11?redirect=log&logno=40166441446 http://jsblab.com/30026869366 http://blog.naver.com/takeatin?redirect=log&logno=90152109942 http://blog.naver.com/karithma2?redirect=log&logno=140121362096 58
DDos 공격과공격시연 1) Dos와 DDos의차이점 2) Ddos 공격과공격유형 3) TCP SYN Flooding 공격 4) UDP Flooding 공격 5) Ping of Death 공격 6) 공격 Tool 소개
DDos 공격과공격시연 Dos 와 DDos 공격의차이점 Dos DDos Dos 공격 : Attacking Machine에서 Target/Victim으로바로공격하는기법. DDos(Distribute Denial of Service) 공격 - 다수의 Zombie PC를이용하여공격하는기법. - 시스템이처리할수있는능력이상의것을요구하여, 해당시스템의서비스를 정지또는다운시켜네트워크기능을마비시키는기법. 60
DDos 공격과공격시연 DDos 공격유형 공격분류 특징 공격유형 SYN Flooding ACK Flooding SYN/ACK Flooding Flooding 공격 Non-Spoofing 공격 Spoofing 공격 FIN Flooding RST Flooding UDP Flooding ICMP Flooding TCP/UDP/ICMP 혼합형공격 SYN Flooding ACK Flooding SYN/ACK Flooding FIN Flooding RST Flooding UDP Flooding ICMP Flooding TCP/UDP/ICMP 혼합형공격 TCP/IP Null 공격 61
DDos 공격과공격시연 TCP SYN Flooding Dos 공격의일부. 지속적으로 SYN 패킷을보내어다른사용자들이해당서비스를이용하지못하게하는서비스거부공격. 62
DDos 공격과공격시연 TCP SYN Flooding 공격흐름도 TCP 연결요청인 3way-HandShake 과정에서지속적인 SYN 패킷전송. 상대방메모리부분을가득차게하여더이상서비스제공못하게함. 63
DDos 공격과공격시연 TCP SYN Flooding 공격시연 정상적인 TCP SYN 패킷을대량으로전송. 시스템이과부하되며서비스를거부하게되는공격. 64
DDos 공격과공격시연 UDP Flooding DOS 공격의한종류. UDP 패킷을대량으로 victim 에전송하여서비스가불가능하도록하는공격. 65
DDos 공격과공격시연 UDP Flooding 공격시연 정상적인 UDP 패킷을대량으로전송하여시스템에과부하를시켜 서비스를거부시키는공격기법. 66
DDos 공격과공격시연 Ping of Death 공격 NetBIOS 해킹과함께시스템을파괴하는데가장흔히쓰이던초기 Dos 공격. ICMP 패킷을정상크기보다크게만들어지속적으로보내는공격기법. 67
DDos 공격과공격시연 Ping of Death 공격시연 65,500Byte 의패킷을대량으로전송하여공격받는 PC 를 DOS 상태로만듦. 최고 Data size 는 65,500byte 이며, Ddos 공격일경우, Data 를작게만들어 패킷을전송하여도 PC 가 Dos 상태로빠지게됨. 68
DDos 공격과공격시연 Ping of Death 공격방어법 Windows 7 시작 제어판 windows 방화벽 고급설정 인바운트규칙 파일및프린트공유 (icmpv4-in) 규칙사용해제 Windows XP 내네트워크환경 네트워크연결보기 windows 방화벽설정변경 고급 ICMP 항목의설정 (E) 수신에코요청허용체크 Linux vi 편집기사용 /etc/sysctl.conf 파일에서 net.ipv4.icmp_echo_ignore_all=1 을추가 sysctl w net.ipv4.icmp_echo_ignore_all=1 또는 all=0 수행 69
DDos 공격과공격시연 DDos / Dos 공격 Tool (AttackPacket Ver 2.6.1.2) 1) Network Device 를 Microsoft로선택. 2) Attack List 부분에서사용하고자하는공격선택. 3) Source IP 주소와 Destination IP 주소, Port를지정후 Attack Power 설정. ( Attack Power = 초당보낼패킷수의미 ) 선택 (Microsoft) 70
DDos 공격과공격시연 DDos / Dos 공격 Tool (AttackPacket Ver 2.6.1.2) 71
Thank you