본문 바로가기

[+] Hacking/[-] Challenge Report

Codegate 2012 Forensic 300 풀이

오늘 참 버닝하는 것 같습니다 :)

한번 풀기 시작하니 계속 생각이 나는군요. 정말 이것만 하고 이제 제 할일을 해야 겠습니다.

일단 문제는 아래와 같습니다.

IU is investigating the system which was contaminated by malicious code. 
As a result of analyzing TimeLine, it seems to be contaminated after February 9th 2012. 
Contaminating path would be from visiting Web page. IU analyses various user traces of Internet, however IU can't find malicious URL. 
Maybe traces would be removed, when it was contaminated. Find correct malicious URL and the time it was contaminated. (cf. Remove http(s)://) 
The time is based on Korea Standard Time(UTC +09:00). 

Answer: malicious_URL|YYYY-MM-DDThh:mm:ss 
('|' is just a character) 


이번에는 아이유가 보안쪽으로 일을 하는군요!!! 다행입니다(?)

문제를 간단히 보면 아이유가 악성코드에 감염된 시스템을 조사하고 있답니다. 타임라인을 조사한 결과 2012년 2월 9일 이후에 감염이 된 것 같다고 하는군요.

근데 악성코드가 시스템을 감염시킨 후 감염 경로등의 흔적을 지우는 것 같다고 하네요.

그래서 아이유는 브라우저 기록들을 분석해도 악성 URL 정보를 얻을 수 없다고 합니다.

그래서 우리에게 도움을 청하는군요!!!

아이유는 악성코드 유포 URL과 감염 시간을 알고 싶어 합니다.

아이유를 위해 한번 알아보도록 합시다.

문제로 주어진 파일은 또 7z 압축 포맷을 가지고 있었습니다.(아무래도 이번 대회 포렌식 문제들은 모두 7z 압축 포맷으로 압축 되어 있을듯...)

압축을 해제하여 주시면 구글 크롬의 cookie 파일이 하나 나옵니다.

처음에는 문제를 대충 읽어 cookie 파일이 SQLite 포맷이어서 해당 포맷 브라우저로 읽어 분석하다가 의심갈만한 URL이 없어 보여 문제를 다시 읽었더니 악성코드가 흔적을 지운다는 말을 보고 문제를 다시 한번 생각하게 되었습니다.

아이유가 웹 브라우저 분석을 하여도 정보를 얻을 수 없다는 것은 그와 관련된 데이터가 삭제되었다는 것을 의미하며, 물론 그 데이터도 cookie 파일에서 지워졌을 것 입니다.

하지만, SQLite 파일은 기본적으로 완전 삭제는 되지 않기 때문에 그 흔적이 파일 어딘가에 남아있을 것으로 추측이 됩니다.

hex 에디터로 cookie 파일을 열어 천천히 살펴보면 대부분 SQLite 브라우저에서 보이는 데이터들이 보이는데 후반부로 가면 보지 못한 URL이 보입니다.

[그림 1 - cookie 파일에서 삭제된 레코드]

test~ 라는 URL이 보이고 그 뒤로는 __utma 라는 쿠키 변수가 보입니다. 쿠키 변수 뒤로는 타임스탬프로 추정되는 값들이 보이네요.

하지만 정확히 어떤 타임스탬프가 악성코드 감염 시간인지 구분이 되지 않습니다.

그래서 구글님의 힘을 빌어 보았더니 아래와 같아 답을 주셨더군요.

__utma : Unique Visitors


This cookie is written to browser on first visit to your website from web browser. If it has been deleted then a new cookie is created with different Unique ID. This cookie is provided with a unique ID that Google Analytics uses to ensure both the validity and accessibility of the cookie as an extra security measure.

The example of this cookie is

126210440.579990553.1301242771.1302852082.1302867721.40

  • 126210440 : Domain hash, unique for each domain
  • 579990553 : Unique Identifier (Unique ID)
  • 1301242771: Timestamp of time you first visited the site
  • 1302852082: Timestamp for the previous visit
  • 1302867721: Timestamp for the current visit
  • 40 : Number of sessions started

__utmb & __utmc : Sessions tracking


‘__utmb’ is used to establish and continue a user session with your site and ‘__utmc’ operates in conjunction with the ‘__utmb’ cookie to determine whether or not to establish a new session for the user.

The example of ‘__utmb’ cookie is

126210440.14.0.1302875964860
  • 126210440 : Domain hash, unique for each domain
  • 14 : Number of page views in current session
  • 0 : Starts with 10 and this count decreases to 0 after every outbound link click
  • 1302875964860 : Timestamps of current session time


__utmc cookie has only data as domain hash, it expires right after user close browser window.

__utmz : Traffic sources


This stores the type of referral used by the visitor to reach your site. It is used to calculate search engine traffic, ad campaigns and page navigation. The cookie is updated with each page view to your site and expires 6 months after set/update.

The example of this cookie can be

126210440.1302625640.30.3.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=page%20load%20javascript
  • 126210440 :  Domain Hash
  • 1302625640 :   Timestamp when cookie was set
  • 30 : Session number
  • 3 : Campaign number
  • utmcsr=google : Campaign source
  • utmccn=(organic):  Campaign name
  • utmcmd=organic :  Campaign medium [Organic, referral, cpc and email]
  • utmctr=page%20load%20javascript : last keyword used to enter in site.

__utmv : Custom Value


This cookie is used to store custom values. This cookie is only written if you have added the _setVar() method for the tracking code on your website page. It expires 2 years after set/update.

The typical __utmv cookie looks like

126210440.|custom params
  • 126210440 : Domain Hash
  • Custom Values Custom values specified in user custom variables

__utmx : Website Optimizer


This cookie is used by Website Optimizer and only set when the Website Optimizer tracking code is installed and correctly configured for your pages. It expires 2 years from set/update.


각 쿠키변수의 값들을 분석해 놓은 글인데, 우리는 __utma 변수를 기준으로 분석 해 볼 것 입니다.

 - test.wargame.kr__utma134301300.282793704.1328799447.1328799457.1328799457.10

위 숫자들 중 1328799447, 1328799457, 1328799457 이 세 값이 타임스탬프 값 입니다.

분석 글에 따르면 첫 번째 타임스탬프 값이 웹 사이트 방문 시간인데 달리 생각하면 악성코드는 요즘 웹 페이지 접속만 하여도 바로 다운로드 되어 감염되니 해당 타임 스탬프 값이 악성코드 감염 시간이라는 것을 알 수 있습니다.

[그림 2 - 시간 값 변환]

아이유가(?) 요구하는 답의 형태는 악성코드 유포 URL|타임스탬프 입니다.

 - test.wargame.kr|2012-02-09T23:57:27



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

Codegate 2012 Forensic 400 풀이  (4) 2012.02.28
Codegate 2012 Network 200 풀이  (2) 2012.02.28
Codegate 2012 Network 100 풀이  (0) 2012.02.27
Codegate 2012 Forensic 200 풀이  (0) 2012.02.27