티스토리 뷰

Digital Forensic

2013 Whitehat Contest - Suspect Block

Digitalis_Kim 2016. 3. 23. 23:39


2013 Whitehat Contest - Suspect Block


2013 Whitehat Contest에서 출제되었던 포렌식 문제이다.



문제


용의자 Anncc의 PC를 분석하던 도중 공범과 주고 받은 메일에 첨부된 특이한

이 파일을 통해 Anncc는 공범과 범행을 위한 신호를 데이터 삭제를 통해 주고 받았다고

하는데... 해당 파일에서 삭제된 데이터가 속한 페이지 인덱스 2개를 찾아

Anncc가 전달하고자하는 날짜를 알아맞춰 보자.

답 형식  md5(MMDD) 소문자 

MM = First Deleted Page Index 

DD = Second Deleted Page Index

- 인증키 입력창에 브루트 포싱 공격으로 인증할 경우 무효 처리 -


2013_Whitehat Contest SuspectBlock.zip


문제 파일을 열어보니 Suspect_Block이라는 파일이 존재한다.



확장자가 .db 이지만 어떤 파일인지 좀 더 살펴보기 위해 HxD를 사용해보자.



SQLite3를 이용한 DB 파일임을 알 수가 있다. 그렇다면 SQLite Browser를 사용해주자.



성공적으로 파일을 열게되면 여러 정보들이 보이는데 이 정보는 우리가 이전에

보고 분석 해 본적이 있는 정보들과 유사하다.

그렇다 바로 Google Chrome의 History 파일이다.



데이터 삭제를 통해 신호를 주고 받았다는 문제를 생각하며 삭제된 부분을

중점적으로 DB를 확인하다보니 urls 테이블에서 ID 121번에 해당하는

URL 기록이 누락되었음을 알 수가 있다.

이 기록을 확인하기 위해 다시 HxD를 이용해보자.



120번에 해당하는 내용과 122번에 해당하는 내용을 위주로 검색한 결과

120번 링크와 122번 링크 사이에 121번으로 보이는 링크가 발견이 되었다.

이 121번으로 추정되는 링크로 접속을 해보자.



접속 결과, Youtube에서 "saturday night 소율saturday night"의 검색 결과를 볼 수 있다.

그렇다면 이전에 분석한 Google Chrome History 파일을 보면 Chrom의 검색 결과는

DB 파일의 keyword_search_terms 테이블에 검색 기록이 남게 된다.



그러나 해당 테이블을 살펴 보면 삭제된 121번 URL의 검색 기록이

keyword_search_terms에서 삭제가 되었음을 알 수 있다.

문제에서는 삭제된 데이터가 포함되는 두 인덱스를 찾은 뒤

적절히 조합하여 답을 알 수 있게 하였다.

그럼 삭제된 keyword_search_terms 데이터를 찾아보도록하자.



삭제된  keyword_search_terms 데이터로 유추되는 부분을 쉽게 찾을 수 있다.

이제 두 삭제된 부분을 찾았으니 이 두 부분의 인덱스를 구해야 한다.



SQLite DB 파일의 구조에 대해서 알 수 있는 공식 사이트를 방문하자.

접속을 했다면 SQLite DB 파일의 구조에 관한 표를 볼 수 있다.



표를 살펴 본 결과 16번째 오프셋의 2바이트가 페이지의 크기를 나타내 준다고 한다.



해당 오프셋을 확인 한 결과, 0x1000의 값을 가지며 이는 한 페이지당

0x1000의 값을 가지게 된다는 말이다.

그렇게 되면 이 DB의 페이지 구조는 이러하다.

0x0 ~ 0xFFF (페이지 1)

0x1000 ~ 0x1FFF (페이지 2)

0x2000 ~ 0x2FFF (페이지 3)

...


삭제된 url 데이터의 위치는 0x1B000 ~ 0x1BFFF 사이로

페이지 인덱스는 1B = 27, 27+1 = 28 (0에서 페이지가 시작되므로) 에 해당한다. 


그리고 두번째 keyword_search_terms 데이터 위치는 0x9000 ~ 0x9FFF로

페이지 인덱스는 10 (9+1)에 해당한다.


이를 이용해 답안을 유추해보면 md5(1028)의 값을 구하면 그것이 답이다.



1028을 md5 해쉬 함수를 통해 변환한 결과

"3806734b256c27e41ec2c6bffa26d9e7" 라는 답을 얻을 수 있다.

'Digital Forensic' 카테고리의 다른 글

ALZip Recent File with Python  (0) 2016.03.25
Internet Explorer TypedURL with Python  (0) 2016.03.25
2014 Codegate - Weird Shark  (0) 2016.03.23
Google Chrome History with Python  (0) 2016.03.22
Adobe Reader DC Recent Files with Python  (0) 2016.03.21
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday