Network Forensic #41 (우리의 제일 귀여운...)

 

네트워크 포렌식 41번 문제

 

문제 파일로 stego.pcap 파일이 주어진다.

 

pcap 파일 분석을 위해 Wireshark 도구를 통해 분석을 진행해보자.

 

Wireshark : 오픈 소스 패킷 분석 프로그램으로 pcap을 이용하여 패킷을 잡아내는 것이 주요 기능

 

다운로드 사이트 : https://www.wireshark.org/download.html

 

Wireshark · Download

Riverbed is Wireshark's primary sponsor and provides our funding. They also make great products that fully integrate with Wireshark. I have a lot of traffic... ANSWER: SteelCentral™ AppResponse 11 • Full stack analysis – from packets to pages • Rich perfor

www.wireshark.org

 

[그림 1] message.png 요청 발견 

 

분석을 진행하다 보면 3번 패킷에서 message.png 파일을 서버로 요청한 것을 확인할 수 있다.

 

상세 분석을 위해 [Follow TCP Stream] 기능을 통해 분석해보자.

 

[그림 2 Follow TCP Stream 기능 분석

 

TCP Stream을 보면 클라이언트가 message.png 파일을 다운로드 한 기록이 존재한다.

 

혹시 png 파일의 내용을 보면 플래그가 나올 줄 알고 확인해본 결과, 플래그에 대한 아무런 내용도 존재하지 않는다.

 

그래서 다시 pcap 파일을 계속해서 분석한 결과, 중요한 내용을 발견하였다.

 

[그림 3] Urgent pointer 

 

Urgent Pointer : 긴급 데이터 처리를 위해 사용되며, URG 플래그 비트가 지정된 경우에만 유효

 

패킷 세부 정보를 분석하던 도중 Urgent pointer가 사용된 기록을 발견하였다.

 

Urgent pointer로 긴급 메시지가 전송될 때는 별도의 패킷으로 전송되지 않고 일반 데이터에 포함되어 함께 전달된다.

 

Urgent pointer 값 중 0을 제외한 모든 값들에 대한 분석을 위해 tshark 프로그램을 사용하여 0을 제외한 나머지 값들을 추출하여 분석하였다.

 

Tshark : Wireshark 도구의 CLI 버전이라고 할 수 있으며, 리눅스 환경에서 사용 가능

 

설치 방법 : sudo apt-get install Tshark 입력

 

[그림 4] tshark 프로그램 사용

 

위 명령어대로 Urgent pointer 값을 출력하면 여러 값들이 나오는 것을 확인할 수 있다.

 

문제를 해석해보면 스테가노그래피 기법으로 플래그를 숨겼다고 추측해볼 수 있으며, 10진수 0~127 값이 사용되는 아스키 코드가 사용됐을 수도 있다.

 

따라서 플래그 확인을 위해 Python으로 아스키 코드에 매칭 되는 문자열로 변환시켰다.

 

[그림 5] Python 코드

 

Python 코드는 위 코드와 같다.

 

[그림 6] 플래그 확인

 

결과를 확인해보면 변환된 값이 플래그라는 것을 확인할 수 있다.

 

위 과정을 통해 해당 문제를 해결할 수 있다.


# Reference

 

http://www.yes24.com/Product/Goods/59156934

+ Recent posts