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
SANS Forensics Puzzle 10 Write up  (6) 2012.10.14
exploit-exercises Nebula - Level05  (0) 2012.07.27
exploit-exercises Nebula - Level04  (0) 2012.07.27
  1. 2013.04.10 17:58

    비밀댓글입니다

  2. 11 2013.11.17 21:26

    스태가노그래피은 보통 패스워드가 걸려있는데.. 이런문제들은 어떻게 풀어야하나요?

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2013.11.20 09:03 신고

      비밀번호가 있다면 보통 문제 내에 여러 키워드들 중 하나가 스테가노그래피 비밀번호 입니다. 만약 그렇지 않고 브루트포싱 등의 문제라면 그건 문제의 질이 떨어지는 거라 볼 수 있어요 ㅎ

  3. 1234 2013.11.20 13:57

    아..그러쿤요 이번에 디지털범인을 찾아라 포렌식 대회?를 참여를 하고 있는데.

    패스워드로 추정되는 여러 문구가 나오지만 패스워드가 아니더라구요..

    흐미..무슨 퍼즐마추기 대회 같음 ㅠ

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2013.11.20 20:39 신고

      아 대회 참여중이시군요 ㅎ

      건승하길 빌겠습니다 :)

#1 을 풀어본 후 재밌어서 하나 더 풀게 되었다. 이번 문제도 네트워크 패킷 캡쳐 파일을 증거로 제공 해 주며 질/답 형식의 문제이다.
이번 문제에서는 패킷에서 파일을 추출하는 것이 아닌 일반 문서에 첨부되어 있는 이미지를 추출하는 것이 주 목적이었다고 생각 된다.(물론 SMTP 패킷 분석도 주 목적이었다고 생각 된다.)

문제 :  http://forensicscontest.com/2009/10/10/puzzle-2-ann-skips-bail 

이제부터 각 질문에 대한 답변을 달아보도록 하겠다.



Q1. What is Ann’s email address? - Ann's의 이메일 주소는 무엇인가?
A1. sneakyg33k@aol.com


이 질문에 대한 답변을 하기 위해서 SMTP 패킷을 분석해도 좋지만 더 간단한 방법으로는 Windows Live Mail을 이용하는 것이다. 아래 이미지처럼 SMTP의 Stream을 저장한 후 Windows Live Mail을 이용하여 열면 더 파악이 쉽게 된다.

[그림 1 - SMTP Stream]

[그림 2 - Windows Live Mail]

위 [그림 2]를 보면 보내는 사람에 Ann Dercover라고 되어 있고 그 옆 괄호안에 이메일 주소가 있다.



Q2. What is Ann’s email password? - Ann's의 email 비밀번호는 무엇인가?
A2. 558r00lz


이 질문에 답하기 위해서는 Q1 처럼 Windows Live Mail을 사용해서는 안되며 SMTP 패킷을 분석해야 한다.
아래는 Ann's가 보낸 SMTP 패킷의 내용이다.

[그림 3 - Ann's가 보낸 SMTP 패킷 내용]

 
빨간 박스 안에 내용을 보면 AUTH LOGIN 명령어로 로그인을 시도하고 어떠한 값들을 입력한 후 서버에서 "AUTHENTICATION SUCCESSFUL" 이라는 인증성공에 관한 메시지를 보내준다. 이를 근거로 유추해 봤을 경우 바로 위에 나오는 "NTU4cjAwbHo=" 를 비밀번호로 유추할 수 있다. 이 값은 base64 인코딩 값으로 디코딩 하면 위 답변과 같이 나온다.

 

[그림 4 - Base64 Decoding]



Q3. What is Ann’s secret lover’s email address? - Ann's의 비밀 연인의 email 주소는 무엇인가?
A3. mistersecretx@aol.com 


Ann's가 보낸 위에서 알아본 SMTP 패킷말고 다른 패킷이 있는지 TCP 필터(tcp.stream eq 3)를 하면 Ann's가 보낸 SMTP 패킷이 하나 더 보이며 받는 사람의 주소가 다르다. Windows Live Mail로 보면 아래와 같다.

[그림 5 - 또하나의 Email]

위 이미지의 Email이 Ann's가 비밀연인에게 보내는 Email이며 받는 사람의 주소가 이 질문에 답변이 된다.

 


Q4. What two items did Ann tell her secret lover to bring? - 둘은 비밀연애를 위해 어떤 두가지의 아이템을 사용하였는가?(?)

A4. fake passport and a bathing suit

이 문제의 해역이 정확치 않아 그냥 느낌 상 두가지의 아이템이라고 하여 풀어봤을 때 email의 내용 중 Fake Passport와 bathing suit가 답변이 될 수 있다.




Q5. What is the NAME of the attachment Ann sent to her secret lover? - Ann의 비밀 연인이 보낸 첨부파일의 이름은 무엇인가?
A5. secretrendezvous.docx

[그림 5]에서 보다 싶이 첨부되어 있는 문서의 이름이 답변이 된다. 



Q6. What is the MD5sum of the attachment Ann sent to her secret lover? - 비밀연인이 보낸 첨부파일의 MD5sum 값은 무엇인가?
A6. 9e423e11db88f01bbff81172839e1923

파일은 Windows Live Mail에서 '다른이름으로 저장'을 하면 가져올 수 있으며, 간단하게 python script로 md5sum을 계산 할 수 있다.

[그림 6 - md5sum]


[그림 7 - md5sum script code]




Q7. In what CITY and COUNTRY is their rendez-vous point? - 그들은 어느 나라, 도시에서 만나는가?
A7. Playa del Carmen, Mexico

이 질문에 대한 답변은 Mail 내용에도 나와 있듯이 첨부파일에서 확인 할 수 있다.

 

[그림 8 - 첨부파일의 내용]




Q8. What is the MD5sum of the image embedded in the document? - 첨부파일속 이미지의 MD5sum 값은 무엇인가?

A8. e0a87f88a4ecec5fcd63368edf75958d

이 답변의 경우 내 답변은 틀렸다는 것을 미리 밝혀둔다. 위 Answer로 기재된 md5sum 값은 문제 출제자가 원한 값과 다르다. 왜 다른지는 아직 나도 모른다. 이미지도 정상적으로 추출되었는데 뭔가 쓰레기값이 들어가거나 하여 값이 달라진 듯 하다.
하지만 이미지는 정상적으로 나와 따로 왜 그런지 분석해보지는 않았다.
첨부파일을 hex view하여 조금 보다보면 png라는 글자가 보인다.
png의 head 시그니처 hex는 "89 50 4E 47 0D 0A 1A 0A" 이며 foot 시그니처 hex는 "49 45 4E 44 AE 42 60 82" 이다.

첨부파일에서 해당 시그니처를 찾아 시그니처 사이에 있는 내용을 뽑아줘 따로 파일로 저장해주면 된다.

 

[그림 9 - png 그래픽 파일 추출 script]

원래 능동적인 로직이라면 시그니처를 검색해서 추출해줘야 하지만 그렇게까지는 할 필요가 없어 오프셋을 지정해줬다.

실행하면 아래와 같이 나온다.

 

[그림 10 - 추출결과]


  1. Favicon of https://sun2day.tistory.com BlogIcon Sun2Day 2012.01.09 00:41 신고

    이런것도 있군요 ^^
    재밌게 잘 봤습니다. 요거 계속 꾸준히 포스팅 해주시나요? ㅎㅎ

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2012.01.09 09:35 신고

      꾸준히는 하고 싶은데 아직 공부할게 많이 남아 있어서요 ㅎㅎ 공부하다가 지겨우면 하나씩 할 예정이에요 ^^

  2. 2012.01.11 00:18

    비밀댓글입니다

  3. Favicon of https://blog.clsw.kr BlogIcon 마루야마 아야 2019.03.28 03:10 신고

    늦었지만 이제라도 보고 푸시는분들을 위해 추가로 답변 드립니다.

    마지막 8번 파일의 경우 docx에서 수동 저장한 경우 저도 E3001A972E718AEBB75BA070B1E5434C 값이 나왔습니다.

    정답으로 적혀있는 AADEACE50997B1BA24B09AC2EF1940B7 값도 아니고 위에 적혀있는 내용과도 다른 Hash가 나왔습니다.

    그래서 추출한 docx 문서의 확장자를 .zip로 바꿔 주시면 /word/media/image1.png 파일이 있는데 이 파일이 첨부된 사진 파일입니다.

    이 파일을 추출하여 Hash 값 획득시 정답으로 표시되어 있는 "AADEACE50997B1BA24B09AC2EF1940B7"의 Hash 값을 획득 할 수 있습니다.

+ Recent posts