본문 바로가기

[+] Hacking/[-] Challenge Report

SANS Forensics Puzzle 10 Write up

SANS에서는 비정기적으로 네트워크 패킷을 기반으로 한 포렌식 챌린지를 진행하곤 한다. 현재 총 10개의 문제가 출제되었고 작년 크리스마스에는 크리스마스 특별(?) 문제를 출제하였었다. 이번에 풀이해 볼 네트워크 포렌식 문제는 가장 최근에 나온 문제로, 필자도 참여했었던 문제이다. 처녀출전이라 어떻게 해야 입상에 가까워지는지 파악을 하지 못해 입상은 하지 못했지만 나름 시간 내가며 풀어 제출 했다는 것에 의의를 두어야 겠다고 생각한다. 총 6개의 질문과 보너스 질문 한가지 존재하며 보너스 질문은 답변 할 시 추가 점수가 부여 된다. 그럼 이제 질문 하나씩 답변 해보자.(아주 간단히 설명하도록 하겠다. 원래는 분석하고 그 정보를 결합해야 하는 부분들이 많이 존재하지만 글이 길어지므로 핵심만 짚고 넘어가겠다.)


문제로는 위에서 설명하였듯이 두가지의 파일이 주어진다.


quarter-SDHC-snippet.dd – A DD image of a the SDHC card found inside the quarter.

pcap-from-surviving-hard-drive.pcap – A packet capture that you copied off the surviving hard drive.


1. In his conversation with juniorkeyy, how old does Larry initially say he is?

(래리는 juniorkeyy와의 대화에서 처음 자신이 몇살이라고 말하는가?)


먼저 문제 파일로 제공 된 dd image 파일을 FTK 등으로 열어보면 여러가지 삭제 된 그림 파일들과 채팅 로그들이 발견된다.


[그림 1 - 삭제된 여러 파일들]


여기서 채팅 로그를 5개 볼 수 있는데 제일 첫번째 채팅 로그를 보면 다음과 같은 말을 한다.

2:38:17 PM Larry Pesce: I'm 4.

채팅 로그를 조금 더 읽어보면 다음과 같은 말 때문에 혼동이 올 수 있지만 질문에서는 처음 말한 말을 지칭하고 있기 때문에 위 말이 정답이 된다.

2:45:27 PM Larry Pesce: oh right.  yeah, I mean I'm 18. I swear.  4 + 14 = 18 right?

 - Answer : 4


2. What was the filename of the file that had the following SHA256 sum:

(다음 SHA256 값을 가지는 파일 이름은 무엇인가?)

e56931935bc60ac4c994eabd89b003a7ae221d941f1b026b05a7947a48dc9366


사실 이 부분에서는 프로그래밍을 해 간단히 알아내는 방법도 있다. 필자도 그렇게 하였다. 하지만 개학하기전 노트북을 새로 설치하며 자료가 사라져 이번에는 인터넷에 배포 되어 있는 툴을 이용하였다. 간단히 하려면 리눅스등에서 지원하는 sha256sum 명령과 *를 이용해 알아내도 된다. 


[그림 2 - 모든 파일의 SHA256 해시 결과]


하이라이트 된 부분을 보면 질문에서 제시 된 해시 값과 동일한 것을 볼 수 있다.


 - Answer : superstrand.jpg


3. What is the SHA256sum of the photo from the “dd” image that shows Larry taking a bite out of a wireless router?

(dd 이미지에서 래리가 라우터를 먹는 듯한 모습이 있는 사진의 SHA256sum 값은 무엇인가?)

사진들을 보면 래리가 라우터를 먹는 듯한 모습은 2개의 사진으로 존재한다. 혹시 몰라 문제 풀이 당시에는 이 두 사진 모두의 해시 값을 제출하였었다.

[그림 3 - haxorthematrix-has-a-posse.jpg]



[그림 4 - larryeatswrt.jpg]


이 두개의 sha256sum 값을 구해보면 다음과 같다.


 - Answer : e4e2fac9fc41546239d4e534bfe6588e4796f3799befc09b2787f5ad6c75faca(haxorthematrix-has-a-posse.jpg)

                1bdfd9d7445d38fdb7ba5acbb58669cf31c7c568c7aa6e6fcf0c961628f4c32e(larryeatswrt.jpg)



4. What is the SHA256sum of the image that shows zombie Larry taking abite out of a cat?

(래리가 고양이를 먹는 듯한 모습이 담긴 사진의 SHA256sum 값은 무엇인가?)

사진 파일들 중에서는 한가지 파일밖에 존재하지 않는다. 왠지 희망을 북돋아주려는(?) 질문 같다.


[그림 5 - Larry_zombie_cat.jpg]


 - Answer : 9c0a8bc6c3baa2ad7f390ef4e41c3edf3d98a543f492afb50a4bab8700af5766(Larry_zombie_cat.jpg)



5. What is Larry saying as he rocks back and forth? (No spaces or capital letters.)

(래리가 앞뒤로 무엇을 말하는가?)

사실 이 질문은 번역부터 어려웠다. 일단 dd image 파일에는 동영상 파일이 두개 있는데 하나의 파일은 가방을 무식하게 두들겨 가며 여는 동영상이고 하나는 래리로 보이는 사람이 담요를 덮어쓰고 뭐라고 반복해서 말하는 동영상이었다. 아무래도 래리로 보이는 사람이 반복해서 무엇인가를 말하는 동영상이 이 질문과 관련된 동영상 같아서 여러번 반복해서 들어보았다. 조금 느리게 들어보니 "naked hack"이라고 들리는 것을 확인 할 수 있는데, 질문에서 "back and forth" 가 걸렸다. 그래서 "hacknaked" 이라고 문제 풀이 할 때에는 결론을 내렸었다. 하지만 이 결론도 오래가지는 못했다. 아래 질문들을 풀다보면 스테가노그래피에 사용되는 키를 찾을 때 이 질문에서 찾은 답이 키라는 것을 가정하고 여러번(hacknaked, nakedhack, dekankcah 등) 시도를 했었는데 키는 결국 dekankcah 였다.

(답이 확실한지는 아직 모르지만, 답을 제출 할 때에는 제일 신빙성이 있어 보이는 아래 답변으로 제출 하였다.)


 - Answer : dekankcah


6. Where are Paul and John? Report their GPS coordinates:

(Paul과 John은 어디있는가? GPS 좌표를 찾아라)

a) Latitude(위도)

b) Longitude(경도)


dd image에 들어있는 파일들 중 EXIF 포맷의 이미지들이 몇 개 있지만 GPS 정보를 담고 있진 않았다. 이제 네트워크 패킷을 분석 할 차례라고 생각하여 네트워크 패킷을 분석하였다. HTTP 오브젝트 파일들을 보니 다음과 같이 google과 bing을 검색한 흔적이 보였다.


[그림 6 - google 검색 패킷]


참고로 구글의 검색 패킷들은 [그림 6]과 같이 실시간 검색으로 인해 한번의 검색이라도 수많은 패킷들이 생성된다. 실시간으로 계속해서 검색 서버에 쿼리를 날려주기 때문이다.

최종적으로 검색한 결과들을 보면 how do i hide things in pictures 라는 검색을 한 것을 볼 수 있는데 접속한 사이트로 접속을 해보면 7z를 이용한 파일 숨기는 방법이 나열 된 페이지를 볼 수 있다. 분석이 마무리 되어가는 시점에 SMB패킷을 발견했는데 SMB 오브젝트 파일을 검색해 보니 다음과 같이 fragment된 jpg 파일을 볼 수 있었다.


[그림 7 - SMB 오브젝트 리스트]


위 파일들을 저장해 3095byte의 파일을 footer 파일로 정해두고 4096byte 파일 중 헤더 파일을 찾은 뒤 여러 갈래로 조합해 보았다. 조합한 결과는 다음과 같이 참혹하였다.


[그림 8 - 참혹한(?) 조합 결과]


사실 이 이미지는 dd image에서도 찾아 볼 수 있는 이미지이다.(위 3번 질문의 답) 동일한 이미지라고 생각이 되어 다시 한번 조합을 시도해 보았다. 처음에는 SMB 헤더가 들어 있어 안되는 것인줄 알고 SMB 헤더를 제거하고 조합해 보았으나 동일한 결과를 얻었다...(ㅠㅠ) 그 후 다시 이미지를 살펴보았는데 오버랩핑(overlapping) 되는 24byte를 찾을 수 있었다.


[그림 9 - 24byte overlapping]


오버랩핑 된 부분을 한쪽만 지우고 다시 조합하니 아래와 같이 정상적인 이미지를 만들 수 있었다.

[그림 10 - larryeatswrt-with-secretsauce.jpg]


파일 제목과 구글 검색 결과를 연관지어 생각해보면 이미지에 어떠한 것을 숨겼다고 추측 할 수 있다. 일반적으로 이미지에는 스테가노그래피를 이용해 무엇인가를 숨기니 한번 풀어보도록 하자. 먼저 동일한 이미지(3번 질문 이미지)와 해시 값을 비교해 보고 실제로 존재하고 있는지 stegdetect를 이용 해 알아보자.


[그림 11 - md5 해시 값 비교]


[그림 11]을 보면 md5 해시 값이 다르다는 것을 알 수 있다. 조금 더 추측이 정확해져 가고 있다.


[그림 12 - stegdetect]


아무런 옵션 없이 점검하였을 때는 발견되지 않았지만 알고리즘 강도를 높여 점검하니 스테가노그래피가 적용되었다고 나오는 것을 볼 수 있다.


 * 참고 : 알고리즘 강도를 높이면 정상파일도 스테가노그래피가 적용되었다고 오진을 할 수 있다. 절대적인 신뢰성이 있지는 않다.


이제 outguess로 무엇이 숨겨져 있는지 추출해보자.


[그림 13 - outguess를 이용한 숨겨진 데이터 추출]


어떤 데이터인지 확인하고 열어보면 다음과 같다.


[그림 14 - 추출된 데이터]


정상적으로 숨겨진 데이터를 볼 수 있는데 좌표로 보이는 숫자들이 보인다.


 - Answer : a) Latitude(위도) : 6.421402

                 b) Longitude(경도) : 3.441021



BONUS. What is the name of the nearest bar?

(가장 가까운 bar의 이름은 무엇인가?)


이 문제는 6번 질문과 이어지는 질문으로 구글 지도로 위도와 경도를 검색하면 바로 옆에 보인다.


[그림 15 - GPS 검색 결과]

해당 bar 이름을 클릭하면 리뷰가 하나 있는데 읽어보면 확실하다는 감이 온다.


This bar was good, but there were some rowdy guys who would shout "WE'RE THE WORLDS #1 HACKERS" and then laugh loudly. No one understood why it was funny, but they were nice and bought the whole place many rounds of drinks.


 - Answer : Bar Baric


'[+] Hacking > [-] Challenge Report' 카테고리의 다른 글

pCTF 2013 Forensic 150점 풀이  (0) 2013.04.30
CAT Security Forensic 1 Write-Up  (2) 2012.12.07
exploit-exercises Nebula - Level05  (0) 2012.07.27
exploit-exercises Nebula - Level04  (0) 2012.07.27