#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 값을 획득 할 수 있습니다.

책만 보고 지식만 습득하다보니 습득한 지식을 어떻게 활용해야 하는지 궁금해져서 포렌식 문제들을 이리저리 찾던 중 SANS Forensic Team에서 제공하는 문제들이 있었다.
내가 풀어본 문제는 2009년 문제로 처음 출제된 네트워크 포렌식 문제였는데 나름 공부도 된 것 같아 좋았다.
지금까지 총 10개의 문제가 있으며 현재 10번 문제는 답안을 받고 있는 상태이다.
형식은 증거 파일을 주고 각 질문에 답변을 하는 식이어서 문제 문장 자체가 영어가 엄청 많아 나름 영어 해독때문에 고생을 하였다.
문제 주소는 다음과 같으며 문제는 PCAP 파일이다.

문제 : http://forensicscontest.com/2009/09/25/puzzle-1-anns-bad-aim 

1번 문제의 세부적인 질문들은 총 6가지가 있으며, 각 질문에 대한 답변을 찾아보도록 하겠다.

Q1. What is the name of Ann’s IM buddy? - Ann'친구의 메신저 이름은 무엇인가?
A1. Sec558user1


주어진 Pcap 파일의 TCP 패킷을 "tcp.stream eq 2" 로 필터해서 Stream을 보면 대화내용들이 나오는데 대화내용 앞에 ID 혹은 Username으로 생각 되는 문자열이 있다.

[그림 1 - Pcap 파일의 대화내용 Stream]

이 메신저가 메시지를 전송할 때 ID를 전송하는지 대화명을 전송하는지 같이 전송하는지는 모르기 때문에 특정 이름으로 확정 짓는것은 무리지만 질문에 답할만큼은 충분하다.



Q2. What was the first comment in the captured IM conversation? - 캡쳐한 메신저 대화 중 첫번째는 무엇인가?
A2. Here's the secret recipe... I just downloaded it from the file server. Just copy to a thumb drive and you're good to go >:-)


위 이미지에 나와 있듯이 ID 혹은 Username으로 추정되는 문자열 뒤에 바로 대화로 추정되는 긴 문장이 나온다.


Q3. What is the name of the file Ann transferred? - Ann이 보낸 파일의 이름은 무엇인가?
A3. recipe.docx


위 이미지에서 보면 파일명이라고 볼 수 있는 것은 "recipe.docx" 밖에 없다.


Q4. What is the magic number of the file you want to extract (first four bytes)? - 당신이 추출하고자 하는 파일의 매직넘버는?(처음 4바이트)
A4. 50 4b 03 04


추출하고자 하는 파일은 "recipe.docx" 이며 해당 파일의 파일 포맷은 docx로 직접 docx 파일을 만들어 확인하면 "50 4b 03 04" 가 나온다. magic Number이기 때문에 모든 docx 파일에서는 동일하다.


Q5. What was the MD5sum of the file? - 파일의 MD5sum 값은 무엇인가? 
A5. 8350582774e1d4dbe1d61d64c89e0ea1


메신저에서 파일을 전송했기 때문에 파일 또한 TCP 프로토콜로 전송되었다. 이 근거를 가지고 패킷을 필터(tcp.stream eq 7)하다보면 docx의 파일 포맷이 있는 패킷을 확인 할 수 있다.

[그림 2 - 증거 Pcap 파일에서의 docx 파일 포맷]


이 파일포맷을 시작으로 끝까지 복사하여 하나의 .docx 확장자로 파일을 생성(HEX 수정 프로그램이나 스크립트)하면 메신저에서 Ann이 상대방에게 보낸 recipe.docx 파일을 복구 할 수 있다.
이 파일의 MD5 Sum 값이 이 질문에 답변이다.


Q6. What is the secret recipe? - 비밀 레시피는 무엇인가?(recipe.docx 파일의 내용을 물어보는 듯)
A6. 아래 이미지와 같다.


[그림 3 - Q6의 답변]

 


이번문제의 중요 포인트는 네트워크 패킷 캡쳐 파일에서의 파일 복구인 듯하다.

처음에 PK Magic Number를 보았을 때에는 zip 파일인 줄 알고 신경쓰지 않고 PK Magic Number 위에 보이는 OFT2 Magic Number에 초점을 맞춰 파일 복구를 시도 했지만 되지 않아 여러모로 헤매고 있었다. 

이번에 docx 파일도 PK Magic Number를 사용하는 것을 처음 배웠다.

후에 파일 포맷에 대해서도 공부해 봐야겠다. 

+ Recent posts