블로그 이전했습니다. https://jeongzero.oopy.io/
LMG Network Forensic puzzle contest 7번
본문 바로가기
워게임/Puzzle contest

LMG Network Forensic puzzle contest 7번

728x90

1. 시나리오 

 

앤은 다크 탄젠트 (Dark Tangent)와 만나기 했습니다. 당신은 법의학 수사관입니다. 목적지를 알아낼 수 있습니까?

 

 

 

2. 수집할 증거들

 

약속장소의 위치

 

 

3. 문제풀이

 

이번 문제는 알아내야 하는게 딱 하나이다. 즉 앤와 다크 탄젠트와 만나는 장소를 알아내야한다. 시작해보자

 

해당 패킷 파일을 열면 다음과 같다.

 

그림 1

먼가 이상하다. 여태 까지 본 화면이랑 달랐다. 여기서 눈에 들어오는 건 802.11 프로토콜이다.

 

이는 무선 랜 관련한 규격인데 인터넷에 찾아보니 무선 랜 관련 패킷은 암호화 되기 때문에 와이어샤크에서 이렇게 보인다고 한다.

 

따라서 무선 패킷을 복호화 해야한다. 복호화를 하려면 일단 키를 알아야 한다.

 

우선 aircrack-ng 라는 툴을 사용할 것이다.

 

aircrak-ng 툴이란?

Aircrack-ng 라는 유명한 무선랜 종합 분석 툴이다. 
Monitoring, Attacking, Testing, Cracking 기능들을 가지고 있습니다

 

이 툴을 통해서 7번 문제에서 사용된 무선랜 패킷을 분석해 볼 것이다.

 

그림 2 - 무선 랜 패킷 분석

 

위 내용을 정리해보면

 

- BSSID : AP의 맥주소

- ESSID : 접속하려는 네트워크 이름

- Encryption : 암호화 방식

 

정도로 요약 할 수 있다. WEP 방식으로 암호화가 되있고 밑에 보면 키를 찾았다고 표시가 된다.

 

그렇다면 이 키 값으로 WEP로 암호화 된 패킷을 복호화 하면 될 것이다.

 

복호화는 airdecap-ng 툴을 사용할 것이다. -w 옵션을 주어서 위에서 찾은 키값을 넣고 복호화하려는 패킷을 입력한다.

 

 

그림 3 - 복호화 완료

 

복호화 된 패킷을 확인해보면 정상적으로 출력이 된다.

 

 

그림 4 - 복호화 된 패킷

 

 

 

자. 이제 생각을 해보자. 아무런 힌트도 더 이상 없기때문에 꼼꼼히 분석을 해야 한다.

 

우선 IMAP이라는 프로토콜이 보이므로 SMTP 프로토콜과 함께 쓰이는 이메일 관련 프로토콜이 있다는 것을 캐치하였다.

 

그리고 이를 통해 두 사람이 전자이메일을 통해 주고받았으며,  그 안에 뭔가가 있지 않을까? 라는 생각을 하였다.

 

 

 

IMAP 프로토콜을 하나 선택하여 TCP 스트림을 확인해 보았다.

 

 

그림 4 IMAP tcp 스트림

 

처음에 해당 스트림에서 메일에서 주고받은 내용을 추출하여 확인해보았으나, 정상적으로 열리지 않았다.

 

그 이유는 저기 missing in capture 라는 부분이 있기때문에 아마도 해당 파일 송수신 간에 문제가 생긴 것 같다.

 

수신한 패킷에 문제가 있으므로, 반대로 송신한 메시지에서 메일을 추출하기 위해 SMTP 프로토콜을 검색해보았다.

 

 

 

그림 5 SMTP Tcp 스트림

 

TCP 스트림을 쭉 확인해보았는데 imap 처럼 missing 부분은 없었다. 따라서 정상적으로 추출이 가능하다고 판단하였고

 

해당 내용이 base64로 인코딩 되어있기 때문에 디코딩의 과정을 거쳤다.

 

우선 base64로 인코딩 되어 있는 부분을 따로 저장한 뒤,

 

 

그림 6 base64인코딩 데이터

 

 

 

https://www.motobit.com/util/base64-decoder-encoder.asp

 

Base64 Online - base64 decode and encode

 

www.motobit.com

 

위 사이트에서 디코딩 과정을 거쳤다. 

 

파일로 디코딩 결과를 다운받을수 있는데 다음의 형태로 추출이된다.

 

 

 

이걸 다시 HXD로 열어보자.

 

 

그림7 base64 디코딩 완료

 

 

파일의 시그니처를 보면 GIF 파일이라는 것을 알수 있다. 따라서 해당 파일의 이름을 777.gif로 변환한뒤 저장하고, 열어보았다.

 

그림8 추출한 gif파일

 

위 사진을 통하여 분석을 진행하라는 소리인 것 같다. 5개의 항목에 해당하는 내용을 찾아보자.

 

 

 

1. App Store - App Name

 

우선 App Store에서 App 이름을 찾아보자. HTTP 오브젝트를 뽑아보면 다음과 같은 부분을 확인 할 수 있다.

 

itunes app store에서 검색한 소프트웨어 : solitaire

App Store는 아이튠즈 인것을 확인 할 수 있고, 여기서 검색한 어플리케이션의 이름을 확인 할 수 있다.

 

App Name : solitaire

 

 

 

 

2. Podcast Title

 

Http 오브젝트들 중에 podcast와 관련이 있어보이는 xml을 추출해보자.

 

http 오브젝트 들

 

podcast의 타이틀

 

podcast의 타이틀 : Oninon Radio News

 

 

3. Youtube Video Title

 

HTTP object에서 youtube 문자열을 검색하였다.

 

youtube title

 

해당 파일을 XML형식으로 저장한뒤 내용을 확인해 보면 title을 알 수있다.

 

title : A Cry For Help

 

 

 

4. Google earth city Name

 

이 역시 Http 오브젝트에서 earth를 검색해 보았다.

 

 

구글 맵 관련 xml 파일이 하나 나오는데 해당 파일을 다운받아 확인해보자.

 

 

따라서 city name 은 Hacker Valley로 추정 가능하다.

 

city name : Hacker Valley

 

 

 

5. AIM Buddy name

 

aim 메신저에 관련 내용을 검색해보자.

 

 

 

aim 메신저를 이용하여 메시지를 주고받을때 사용되어지는 json 파일인 것으로 추정된다. 해당 패킷 번호를 기억하여 HTTP 스트림으로 내용을 확인해 보자.

 

 

 

해당 내용은 AIM 서버가 응답해주는 패킷이다. 아마 이전에 AIM 서버에 클라이언트가 메시지 요청을 했을 것이다.

 

해당 GET 요청에 대한 쿼리를 자세히 보면

 

aim 서버 get 요청

 

get 요청에 대한 request 쿼리를 보면 맨마지막에 inter0pt1c을 볼 수 있고 이 것이 aim buddy id이다.(유추..)

 

 

 

 

 

결론

1~5번 까지의 알아낸 단어들은 다음과 같다.

 

1) Solitaire

2) Onion Radio News

3) Cry For Help

4) Hacker valley

5) Inter0ptic

 

앞 단어들을 뽑아서 연결하면 SOCHI 라는 단어가 나온다. 소치에서 만나려고 한것 같다.

 

 

정답 : Sochi
728x90