본문 바로가기

Security/Network Hacking

No.4 Network Packet분석

이번엔 네트워크 패킷분석 해보겠습니다.

툴로는 wireshark를 썼습니다.

 

 인터페이스장치잡고

캡쳐 시작하는건 제외하겠습니다.

 

이번엔 간단히 무엇을 나타내는지만 보겠습니다.

 

1. Network Interface Layer or Ethernat 계층

위를 보시면 파랗게 칠해진 부분이 보이시죠? 캡쳐된 값은 HEX즉 16진수로 표현이 됩니다.

그러므로 하나의 값은 4비트에 해당이 되게 되구요

그럼 알아보겠습니다

 

가. Destination MAC Address(48비트) : 00 26 66 9d 8a 08

처음 00 26 66 은 제조회사정보이고, 뒤의 9d 8a 08은 제품의 고유번호 입니다.

즉 , 목적지는 00 26 66값을 갖는 제조회사의 9d 8a 08이라는 제품입니다.

 

나. Source MAC Address(48비트) : bc ae c5 8c f8 fa

현재 전송하는 네트워크 인터페이스 bc ae c5 값을 갖는 회사의 8c f8 fa라는 제품번호를 가진 장비입니다.

 

다. Length/Type(16비트) : 08 00

상위 계층에 대한 타입이나 길이를 나타냅니다. 06 00 이상일 경우 타입을, 그 이하일 경우는 길이를 의미하므로, 여기서는 타입이 IP임을 알수 있습니다.

 

 

 

2. IP 계층 (Internat 계층)

 

 

위와 같은 패킷내용을 캡쳐해낼수있습니다.

 

가. Version : 4

현재 사용하고 있는 IP 버젼은 4입니다. (곧 6으로 바뀐다고하죠?..아닌가ㅋㅋ)

 

나 . Header Length(4비트) : 5

IP 헤더의 크기는 5 * 32비트 = 160비트로, 비트를 바이트로 계산하면 20바이트가 됩니다.

(8비트 = 1바이트)

 

다. Service Type(8비트) :  00

Service Type에 대해 따로 값이 설정되어 있지 않아 기본 값으로 정의되었습니다.

 

라. Total Length(16비트) : 00 28

IP 패킷의 전체길이는 28 = (2*16)+8 = 40바이트로 이루어진것을 확인할수 있습니다.

 

마. Identification(16비트) : 12 5c

해당 IP에 대한 식별자는 125c (11134) 입니다.

 

바. Flags(3비트) : 010

조각나지 않은 하나의 패킷을 뜻합니다.

첫번째 비트 (Reserved bit) : 현재 사용하지 않습니다. 항상 9으로 설정되어있습니다.

두번째 비트 (Don't fragment) : 큰 데이터인 경우 전송할 때 , 패킷을 나누어 보내는데, 1로 설정되어 있으면 패킷이 조각으로 나뉘어 있지 않은 것입니다.

세번째 비트 (More fragments) : 0인 경우 마지막 패킷을 나타내며, 1인 경우 패킷이 나누어져서 전송되고 있다고 보면 됩니다.

 

사. Fragmentation offset(13비트) : 0 0000 0000 0000

패킷이 조각나지 않고, 처음 패킷이므로 0으로 설정되어 있습니다.

 

아. Time to live(8비트) : 80

TTL 값을 128로 해서 패킷을 전송하였습니다. 최대 128개의 라우터나 네트워크 장비를 거쳐가는데, TTL 값이 0이 될때까지 목적지에 도착하지못하면 이 패킷은 제거가 됩니다.

 

자. Protocol(8비트) : 06

상위 계층에서 사용할 프로토콜을 이야기 하는데, 6인 경우 TCP를 나타냅니다.

IP헤더 다음에 해서되는 프로토콜은 TCP로 보시면 됩니다. 1인 경우 ICMP, 6인경우 TCP, 17인경우 UDP가 됩니다.

 

차. Header Checksum(8비트) : 00 00

IP 헤더의 비트틀의 합을 1의 보수로 나타내는 값입니다.

 

카. Source IP Address(32비트) :  c0 a8 00 02

출발지 IP 주소를 hex값으로 나타낸 것입니다.

c0 (192), a8(168), 00(0), 02(2) 의 주소값을 갖습니다

즉, 192.168.0.2 가 됩니다

 

타. Destination IP Address(32비트) : 76 da 7c 67

목적지 IP 주소를 hex 값으로 나타낸 것입니다.

76(118), da(218), 7c(124), 67(103)의 주소값을 갖습니다.

즉, 118.218.124.103이됩니다.

 

 

3. TCP 계층

 

실제 패킷캡쳐 모양

위와 같은 캡쳐를 얻을수 있습니다.

하나씩 살펴봅시다.

 

가. Source Port Address(16비트) :  c4 57

16진수 c457를 10진수로 변환하면 50263입니다. 그러므로 여기서 사용하는 출발지 포트가 바로 50263이 되는것입니다.

 

나. Destination Port Address(16비트) : 23 30

16진수 2330을 10진수로 변환하면 9008입니다. 따라서 여기서 사용되는 목적지포트는 9008(ogs-server)입니다.

 

다. Seuquence Number(32비트) : d9 0d 5f da

위의 캡쳐에서 seq=6 인데 이것은 5번째 패킷에서 1이 증가하여 seq=6이 되었다는 것을 알수있습니다. seq값을 목적지로 전송하여 상대편에게 ack값을 전송할때, 이쪽에서 보낸 seq갑소가 동일해야 정상적으로 응답했다고 판단할수 있습니다.

 

라. Ackowledgement Number(32비트) : 71 17 a3 aa

여기선 ack=5가 되네요 즉 5번째 패킷만이 정상적으로 전달되고 6번째 패킷은 정상적으로 전달되지 않았다는 것을 알수 있습니다 .

 

마. Header Length(4비트) : 50

1이 32비트 이므로 160비트(5*32) 가 됩니다. 이것을 바이트로 계산하면 TCP헤더의 전체길이는 20바이트가 됩니다.

 

바. Reserved(6비트) : 0

현재까지는 사용되지 않으므로 0으로 설정되어 있습니다.

 

사. TCP Flags(6비트) : 18

HEX인 10을 이진값으로 변환 하면 01 0000이 됩니다. 각 비트별로 설정된 정보를 알아보겠습니다.

0이면 Not Set이고, 1인경우 Set입니다.

 

0 = Urgent

1 = Acknowledgement

0 = Push

0 = Reset

0 = Syn

0 = Fin

Set설정 내용을 보시면 응답을 한후 바로처리는 하지 않는다 입니다.

 

아. Window Size(16비트) : 00 fe

254(00fe)의 윈도우 사이즈를 가지고 있다는 뜻입니다.

일종의 버퍼라고 보시면 되시고, 254까지의 데이터를 버퍼에 넣을수 있다는 뜻입니다.

이 윈도우사이즈가 0이 되면 버퍼가 가득차서 전송되는 패킷이 더 들어와도 처리를 못하게 됩니다.

 

자. TCP Checksum(16비트) : b4 06

1의 보수를 이용하여 TCP 헤더와 데이터의 값을 계산합니다. Checksum 값이 다를 경우 송신자에게 알리지않고 바로 폐기 됩니다.

 

차. Urgent Pointer(16비트) : 00 00

TCP Flags에서 Urgent가 설정된 경우 데이터가 버퍼에 머무르지 않고 바로 처리됩니다.

이번  캡쳐에서는 설정이 되어있지 않는 것을 확인 할수있습니다.

[출처] No.4 Network Packet분석|작성자 Securely