본문 바로가기

[+] Hacking/[-] Challenge Report

Codegate 2012 Forensic 100 풀이

얼마전 Codegate 2012 예선전이 개최되었습니다.

저는 세미나 참석으로 인해 부득이하게 참가하지 못했었는데, 예선전 문제 제공 사이트가 48시간 열린 다는 페친님들의 소식을 듣고 바로 문제를 백업하였습니다.

여러가지 분야의 문제가 있지만, 일단 풀이는 포렌식만 하도록 하겠습니다.

이번 글에서는 포렌식 문제 중 100점 짜리 문제를 풀어 보도록 할 것 입니다.

일단 문제는 다음과 같습니다.

In order to steal financial information of Company X, IU got a job under cover. She decided to attack CFO's computer, and then insert malicious code to his computer in the way of social engineering. She figured out that he didn't use to turn off his computer, when he gets off work. After he leaves the office, she obtains financial data from his computer to search EXCEL file. By checking installed application program, she can find the information in the file. She lacks the file externally. In order to remove all traces, she erases malicious code, event logs and recent file list. The company X has to figure out what information she stole correctly to make an appropriate measure. These are files attacked from CFO's computer. Find the full path and size of the file which she stole. On the day, CFO left the office at 14:00. The time is based on Korea Standard Time(UTC +09:00). 

Answer: strlwr(md5(full_path|file_size)) 
('|' is just a character)


문제를 간단하게 요약하여 보면 IU가 CFO 컴퓨터를 공격한답니다...(왜 아이유를...)

그리고는 IU가 금융관련 엑셀 파일들을 훔친답니다. 이와 같은 침해대응 사고를 대처하기 위해 X라는 사람은 파일을 훔친 시간과 훔쳐간 파일의 크기를 알아내야 한다는 것 입니다.

또 제공 된 파일은 CFO 컴퓨터의 자료들이라고 하는군요.

시간값은 UTC(+9) 라고 합니다. 우리나라 시간이죠.

일단 해당 문제 파일을 받으면 확장자가 존재하지 않습니다. 그러므로 hex 에디터로 열어봅니다.

 

[그림 1 - hex 에디터로 본 문제 파일]

아! 7z 압축 포맷이네요. 이 압축 포맷을 해제하여 주는 프로그램은 상당히 많습니다. 이러한 프로그램들로 해당 문제 파일을 압축 해제 하여 주면 CFO 컴퓨터의 Users 폴더 트리가 나오게 됩니다.

 [그림 2 - CFO 컴퓨터의 Uses 폴더]

CFO가 proneer님 인 것 같네요 ^^

무튼 엑셀 파일을 찾아야 합니다. 하지만 아이유가 엑셀 파일을 훔치고 파일을 지운 듯 합니다. 보이지가 않네요.

CFO 컴퓨터가 windows라는 점을 감안 하였을 때 대부분의 파일에는 링크파일이 존재합니다. 특히 열어본 최근 문서의 경우는 더더욱이 그렇죠.

엑셀 파일이라고 하였으니 엑셀 파일의 링크 파일이 있는 곳을 찾아가 봅시다. 경로는 아래와 같습니다.

 - Users\proneer\AppData\Roaming\Microsoft\Office\Recent

[그림 3 - Micorosoft Office 파일들의 링크 파일들]

여러가지 파일들이 있지만, 대부분 포렌식에 관련된 문서들 입니다. 하지만 유독 눈에 띄는 파일이 있었으니.... 바로 

[Top-Secret]_2011_Financial_deals 파일 입니다.

제목만 봐도 금융에 관련된 파일이라고 보여집니다. 해당 링크 파일이 가리키는 엑셀 파일의 크기와 전체 경로를 파악해야 합니다. 

링크파일에는 이러한 정보가 대부분 들어 있기에 쉽게 정보를 파악 할 수 있으니 문제는 다 풀었다고 봐도 무방합니다.

링크파일을 분석하여 주는 도구는 이미 많이 나와있습니다. 이러한 도구들을 이용해도 되고 또 직접 오프셋을 확인해도 됩니다.

[그림 4 - 오프셋 분석]

우리가 원하는 정보인 크기와 경로는 빨간 박스로 따로 하이라이트 해 두었습니다. 정리하여 보면 아래와 같습니다.

 - 경로 : C:\INSIGHT\Accounting\Confidential\[Top-Secret]_2011_Financial_deals.xlsx
 - 크기 : 0x00002450(9296byte)


이제 문제에서 원하는 형태로 답을 만들면 됩니다.

문제에서는 strlwr(md5(경로|크기)) 형태로 문제의 답을 원하고 있습니다.

간단하게 프로그래밍 언어 아무거나 이용하면 아래와 같은 결과가 나옵니다.(필자는 python을 이용 하였습니다.)

[그림 5 - 문제에서 요구하는 형태의 답]

최종적으로 문제의 답은 "d3403b2653dbc16bbe1cfce53a417ab1" 입니다.