본문 바로가기

[+] Hacking/[-] Challenge Report

[SharkFest Challenge] #1 Write up

여러 공부와 연구를 하던 중 머리를 식힐 겸 이것저것 구글링을 하던 중 발견한 Challenge 문제이다. Wireshark를 개발한 회사에서 낸 문제인데, 총 7개의 패킷이 주어져 있고 각 패킷에 해당하는 질문에 패킷을 분석하여 답을 하는 형식이다. SANS에서 주관하는 Network Forensics Puzzle Contest와 거의 유사하다고 보면 된다. 문제는 쉬운 관계로 많은 부가 설명 없이 답에 관한 이야기만 하도록 하겠다.


1. What is the IP address of the scanning host?

스캐닝을 시도한 호스트의 IP 주소를 찾으라는 질문이다. 패킷 캡쳐 파일을 열어보면 무수히 많은 SYN 패킷과 RST/ACK 패킷을 볼 수 있는데, 간혹 SYN/ACK, 패킷과 ACK 패킷도 볼 수 있다. SYN 패킷을 보낸 호스트는 당연히 스캐닝을 시도 한 호스트이겠고, RST/ACK 패킷 또는 SYN/ACK 패킷을 보낸 호스트는 스캐닝을 당한 호스트 일 것이다. 그러므로 이를 이유로 패킷들을 살펴보면 '192.168.1.141' 호스트가 스캐닝을 시도한 것으로 판단 할 수 있다.


[그림 1 - 스캐닝 패킷]


2. What is the IP address of the target host?

[그림 1]에서 '192.168.1.141' 호스트의 SYN 패킷에 응답한 호스트가 스캐닝을 당한 타겟 호스트이므로 [그림 1]에 따라 '192.168.1.123' 호스트가 타겟 호스트가 된다.


 * 참고 : 패킷의 흐름을 봤을 때 스캐닝 기법은 가장 기초적인 TCP Connect Scan이다.(TCP 3way-handshaking 으로 포트 오픈을 확인 하기 때문)


3. Which TCP Port is open on the target?

타겟 호스트에서 열린 포트가 무엇인지 답하는 문제이다. 타겟 호스트에서 SYN/ACK 패킷을 보낸 포트만 필터하여 보면 금방 확인 할 수 있다. 필터해서 확인 한 결과, 68번 포트만이 현재 열려 있는 걸 확인 할 수 있다.

filter : tcp.flags == 0x0012


[그림 2 - 필터 결과]


4. Which ICMP packets contain non-standard Type/code numbers?

ICMP 패킷들 중에 표준 값아닌 Type/code 번호를 찾아 답하는 문제이다. icmp 패킷만 필터해서 조금만 살펴보면 다음과 같은 값을 가진 icmp 패킷을 볼 수 있다.


[그림 3 - Type/code]


[그림 3] 이외에도 Type 값이 0이고 code 값이 123인 패킷이 존재한다. 둘 다 모두 Type 값은 정상이지만 code 값은 icmp 프로토콜에서 정의하고 있지 않은 값이다. 그러므로 답은 8/123, 0/123으로 답 할 수 있다.


5. What software is used to scan the target?

포트 스캔 도구들 중 Xprobe라는 도구가 있다. 해당 도구는 4번에서 본 것처럼 특징적으로 code 값을 123으로 정해보낸다. 또 해당패킷 캡쳐 파일에서는 다음과 같은 패킷을 볼 수 있다.


[그림 4 - Xprobe 도구의 ICMP 패킷 전송 순서]


특징적으로 Xprobe 도구는 [그림 4]와 같은 순서로 패킷을 주고 받는다. 이는 발표자료에서 확인 할 수 있다.


[그림 5 - Xprobe 발표자료 일부]


그러므로 답은 Xprobe로 답 할 수 있다.