Analysis

기본적인 ICMP Packet 분석

DarkSoul.Story 2013. 1. 30. 11:13
반응형

ICMP 패킷은 IP헤더 다음으로 ICMP Type, ICMP Code, ICMP Checksum 필드로 구성되어 있으며, 일부 ICMP 패킷은 정보나 메시지의 세부 사항을 제공하기 위해 추가적으로 ICMP Contents 필드를 포함한다.

 

ICMP Type

ICMP Code

ICMP Checksum

ICMP Contents

 [그림.1 ICMP 패킷 구조]


 

특수한 경우에 사용되는 ICMP Contents 필드를 제외한 ICMP Type, ICMP Code, ICMP Checksum 필드에 대해 살펴 보자.

 

① ICMP Type

이 필드는 ICMP 메시지의 유형을 정의하며, ICMP 메시지 유형은 다음 표와 같다.

 

Type

Name

0

Echo Reply

1

Unassigned

2

Unassigned

3

Destination Unreachable

4

Source Quench

5

Redirect

6

Alternate Host Address

7

Unassigned

8

Echo

9

Router Advertisement

10

Router Solicitation

11

Time Exceeded

12

Parameter Problem

13

Timestamp

14

Timestamp Reply

15

Information Request

16

Information Reply

17

Address Mask Request

18

Address Mask Reply

19

Reserved (for Security)

20-29

Reserved (for Robustness Experiment)

30

Traceroute

31

Datagram Conversion Error

32

Mobile Host Redirect

33

IPv6 Where-Are-You

34

IPv6 I-Am-Here

35

Mobile Registration Request

36

Mobile Registration Reply

37

Domain Name Request

38

Domain Name Reply

39

SKIP

40

Photuris

41

ICMP messages utilized by experimental mobility protocols such as Seamoby

42-255

Reserved

     [표.1ICMP Type]

 

② ICMP Code

이 필드는 위의 ICMP Type들은 몇 가지의 Code를 가지고 있으며,  Code 값을 정의한다.

몇 가지 ICMP Type들의 Code값을 살펴보면 아래와 같다.

 

ICMP Type 3 : Destination Unreachable (목적지에 도달할 수 없음)

 

Codes

Description

0

Net Unreachable

1

Host Unreachable

2

Protocol Unreachable

3

Port Unreachable

4

Fragmentation Needed and Don't Fragment was Set

5

Source Route Failed

6

Destination Network Unknown

7

Destination Host Unknown

8

Source Host Isolated

9

Communication with Destination Network is Administratively Prohibited

10

Communication with Destination Host is Administratively Prohibited

11

Destination Network Unreachable for Type of Service

12

Destination Host Unreachable for Type of Service

13

Communication Administratively Prohibited

14

Host Precedence Violation

15

Precedence cutoff in effect

     [표.2 ICMP Type 3의 Code 표]

 

ICMP Type 11 : Time Exceeded (시간 초과)

 

Codes

Description

0

Time to Live exceeded in Transit

1

Fragment Reassembly Time Exceeded

     [표.3 ICMP Type 11의 Code 표

 

더욱 자세한 코드 값에 대한 내용을 알고 싶다면, http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml을 방문하여, 살펴 보기 바란다.

 

③ ICMP Checksum

이 필드는 ICMP 헤더의 손상 여부를 확인한다.

 

참고로 ICMPv6 내용을 알고 싶으면, http://www.iana.org/assignments/icmpv6-parameters를 방문하여, 살펴보기 바란다.

 

이제 실제로 와이어샤크(Wireshark)를 이용하여 캡쳐한 ICMP패킷을 보며, 위 내용을 바탕으로 패킷을 살펴 보자.

 

[그림.2]와 [그림.3]은 일반적인 ICMP Ping 테스트와 Tracerout의 내용이다.



[그림.2 Ping 요청]


[그림.2]의 내용을 살펴보면, ICMP Type 8번(Echo) 메시지를 보내며,  ICMP Type 8번(Echo)에는 Code가 존재 하지 않기 때문에 Code는 0이라고 표시하였다.



[그림.3 Ping 응답]

 

Echo 대한 응답으로 ICMP Type 0번 (Echo reply) 메시지를 보내며,  ICMP Type 0번(Echo reply) 또한 Code가 존재 하지 않기 때문에 Code는 0이라고 표시 하였다.

 

다음 [그림.4]은 ICMP Type은 3번이며, Code는 3번이다. 어떻게 해석하면 좋을지 생각해 보자.



[그림.4 해당 포트에 도달 할 수 없음]

 

결론은 해당 포트에 도달 할 수 없음을 의미한다. 즉, A라는 사람이 ICMP 패킷을 원하는 포트에 보냈을 때 그 포트가 Open이 되어 있지 않을 경우 [그림.4]와 같은 ICMP 패킷을 받는다. 이런 패킷이 다수 발생한다면, 서비스 구성상의 문제거나 UDP Port 스캔을 의심해 본다. 이렇듯 Type과 Code정보를 가지고, 해당 ICMP 패킷이 어떤 메시지를 알려주는지 확인할 수 있다. 

 

 

참고

http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml


반응형

'Analysis' 카테고리의 다른 글

기본적인 DHCP Packet 분석  (0) 2013.01.30
기본적인 DNS Packet 분석  (2) 2013.01.30
기본적인 UDP Packet 분석  (0) 2013.01.30
기본적인 ARP Packet 분석  (0) 2013.01.30
와이어샤크(wireshark) Edit 메뉴  (0) 2012.12.27