본문 바로가기

[+] Hacking/[-] Challenge Report

SANS Forensic Contest Puzzle #7

크리스마스 이벤트 대회 이후에 SANS 문제는 쳐다보지도 않았었는데 여러가지 일을 하다가 머리 좀 식힐겸 하여 SANS Forensic Contest 페이지를 접속 해 보았다.

문제들 중 해당 문제가 Defcon 2010에 출제 되었다고 하여 재밌을 것 같아 도전해 보았다.

생각외로 문제 난이도 높지 않아 심심찮게 놀랐었다.

이번 문제는 이전 문제들처럼 질답 형식이 아닌 단 하나의 질문 답변만 있다.

답변이 곧 키 값이 되는 것이다.

문제 다운로드 주소는 아래와 같다.

http://forensicscontest.com/contest07/evidence-defcon2010.pcap

먼저 이 문제의 지문을 보자.

Ann has arranged a rendezvous with Dark Tangent. You are the forensic investigator. Can you figure out their destination? 

간단하게 번역하면 당신은 법의학 전문가 인데 "그들이 가려고 하는 목적지를 증거분석을 통해 알 수 있겠느냐?" 이다.

패킷파일을 열면 무수히 많은 패킷들이 아래와 같이 나온다.

[그림 1 - 증거로 제시된 pcap 파일 내용]

빨간박스만 봐도 무선랜 패킷 캡쳐 파일인 것을 알 수 있다. 하지만 패킷을 분석하기가 쉬워보이지 않는다.

무선랜이면 암호화가 걸려있을 수도 있으니 aircrack-ng로 한번 알아보자.

[그림 2 - aircrack-ng 스캔 결과]

스캔 결과를 보니 WEP 암호화 패킷이라고 알려준다. 친절하게 Key까지 자동으로 찾아 주었다. 우리는 이 key를 이용해 해당 패킷을 복호화 하면 된다. aircrack 패키지에는 복호화 툴도 함께 있는데 그 툴 이름은 airdecap-ng이다.

[그림 3 - 복호화 수행]

복호화가 완료되면 패킷파일이 하나 생성된다. 그 패킷 파일을 보면 IMAP, 프로토콜과 SMTP 프로토콜이 보인다.

이 둘은 전자메일 프로토콜인데 두 프로토콜 패킷들을 보면 어떤 전자메일이 전송 된 것을 확인 할 수 있다.

그 전자메일에는 jpg 첨부파일이 존재하는데 IMAP 프로토콜에서 추출한 jpg 첨부파일 경우 완벽하게 복구가 되지 않고 SMTP 프로토콜에서 추출한 jpg 파일이 완벽하게 복구 된다. 아래는 복구한 메일 내용과 jpg 이미지 파일이다.

[그림 4 - 복원된 메일 내용]

[그림 5 - 복원된 이미지 첨부파일]

메일 내용은 첨부파일에 내용이 목적지 힌트라고 말하고 있다. 첨부파일의 이미지를 보니 5가지의 어떤 제시 문구가 있다. 아무래도 이 제시문구를 기준으로 패킷 파일을 분석하라는 이야기 같다.

각각 하나씩 찾아보도록 하자.

1. App store - App Name
   - 패킷파일에서 HTTP 오브젝트들을 보면 software를 검색한 URL을 볼 수 있다.

[그림 6 - 아이튠즈에 요청한 검색 쿼리 URL]

즉, solitaire 라는 App을 검색한 것이다. 이 이후 URL들은 App과는 별개인 URL 뿐이어서 해당 URL이 제일 유력하다.

2. Podcast Title
   - 팟캐스트는 라디오나 뉴스등을 방송하는 걸 말하는데 HTTP 오브젝트들을 보면 팟캐스트로 추측되는 URL을 볼 수 있다.

[그림 7 - 팟캐스트로 의심되는 URL]

radionews 라는 문자열이 있는 xml 파일인데 해당 파일을 저장하여 보면 아래와 같이 나온다.

[그림 8 - 팟캐스트 title]

팟캐스트가 맞았으며, title은 onion Radio News 이다.

3. YouTube Video Title
    - NetworkMiner로 분석하면 정말 쉽게 찾을 수 있다.

[그림 9 - NetworkMiner의 메시지 파싱기능 결과]

메시지에 나와 있는 주소로 접속하면 아래와 같이 나온다.

[그림 10 - Video title]

Video title은 Cry For Help - Rick Astley

4. Google Earth City Name
    - 이 부분도 NetworkMiner를 이용하면 쉽게 풀린다. NetworkMiner의 Parameter 기능을 이용하면 되는데 일단 google earth 주소를 찾아야 한다. 

[그림 11 - NetworkMiner의 Parameter 기능 결과]

일단 maps.google.com 주소가 google Earth 주소라는 것은 직관적으로 파악 할 수 있다. 그 서버에 q 인자(검색 문자열)로 hacker valley, wv라는 값을 보낸 것을 알 수 있는데 실제로 검색해보면 존재하는 지명이다.

City Name은 hacker valley, wv

5. AIM Buddy Name
    - 이 부분 또한 NetworkMiner를 통해 알 수 있다. Parameter 기능 결과를 보면 아래와 같은 부분을 찾을 수 있다.

[그림 12 -  NetworkMiner의 Parameter 기능 결과]

서버가 aim.net 으로 끝나는 것을 보니 AIM 메신저 서버인듯 하다. 메시지까지 보면 정확하게 추측 했다는 것을 알 수 있다.
일단 서버로 가는 인자만 봐서는 솔직히 어떤게 메신저 대화명인지 모르지만 일단 k에 들어가는 값은 대화명이라고 하기에는 조금 무리가 있어 보인다. 그나마 t 인자값에 들어가는 값이 읽을 수 있어 대화명이라고 할 수 있을 것이다.

즉 AIM Buddy Name은 inter0ptic

결과를 정리하여 보면 아래와 같다.

App store - App Name : solitaire
Podcast Title : onion Radio News
YouTube Video Title : Cry For Help - Rick Astley
Google Earth City Name : hacker valley, wv
AIM Buddy Name : inter0ptic

이렇게만 보면 감이 안오지만 조금만 생각해보면 답이 보인다.

Solitaire
Onion Radio News
Cry For Help - Rick Astley
Hacker valley, wv
Inter0ptic

그들이 가려고 하는 곳은 yes 평창과 라이벌 이었던 Sochi 이다