[ * ] 문제 확인

docx라는 확장자를 갖는 워드 파일하나가 주어지며 해당 파일에서 KEY 값을 찾는 것이 문제임


해당 워드 파일을 열었을 때, 외로움을 유발하는 찻잔을 볼 수 있음 ㅋ.ㅋ



[ * ] 해결 방향

주어진 힌트라고는 해당 파일 하나와 열었을 때 보이는 문제의(?) 찻잔뿐이므로, 해당 파일이 가지는 데이터 구조의 특징을 이해한다면 문제를 해결할 수 있을 것 같다


[ * ] 해결 과정

먼저 해당 파일은 Microsoft Office 프로그램 중 하나이며 docx라는 확장자를 가지는 워드 파일이다. 이전 포스팅에서 문제를 해결하는 과정에서 알 수 있었던 OOXML이라는 것과, 이는 스프레드시트, 차트, 프레젠테이션 그리고 워드 프로세스 문서를 나타내기 위해 마이크로소프트가 개발을 하였고 XML을 기반으로한 파일 형식이며 압축이 되어 있다는 것이 떠올랐고 docx -> zip로 확장자를 바꾸어 주었더니 아래와 같았고 해당 폴더에는 XML 파일들이 존재했다



해당 문제를 먼저 풀어보면서 스테가노그래피와 관련 있음을 추측하고 자료를 찾아보다 아래와 같은 자료를 볼 수 있었다

위의 자료를 토대로 word\_rels\document.xml.rels에서 최상위 경로인 word가 가지는 파일 관계를 확인 했고 media라는 폴더 내, 이미지 파일이 존재 함을 확인했다

해당 경로에 갔을 때, 제일 처음 주어졌던 찻잔 사진이외에 emf파일과 다른 이미지를 가지는 jpeg파일을 볼 수 있었다



emf이라는 확장자가 가지는 의미와 역할이 궁금해서 검색해보았더니, "EMF 파일은 Enhanced Meta File의 약자로, Microsoft Windows를 위해 개발된 이미지 파일 형식인 Windows  Meta File(WMF) 형식의 확장이며, WMF는 16비트, EMF는 32비트로 이루어져 있음과, 둘 다 응용 프로그램에서 이미지나 그래픽을 렌더링할 수 있게 해주는 여러가지 호출 함수가 포함된 메타 파일이며, EMF에는 WMF보다 많은 호출 기능이 존재함"을 알 수 있었고 시험삼아 파일을 하나 열어보니 윈도우 기본 프로그램인 그림판으로 열림을 알 수 있었다



파일을 전부 확인하는 도중 image6.emf 파일만 올바른 비트맵 파일이 아니거나 현재 지원되지 않는 형식이라는 오류 메시지가 출력되며 파일이 열리지 않음을 확인할 수 있었다



에러 메세지를 근거로 emf 파일의 손상 또는 해당 파일이 가지는 확장자가 잘못 됐음을 추측하고 Hex Editor로 열어보았더니 아래와 같은 시그니쳐 값을 확인할 수 있었다



해당 파일이 가지는 시그니쳐 값은 아래의 자료와 같고 이는 image6.emf 파일의 확장자가 올바르지 않음을 의미한다



따라서 파일의 확장자를 docx로 바꿔 주었을 때, 아래와 같이 "2013"이라 적힌 것을 확인할 수 있었다



2013년 코드게이트 대회에 참여하지 못했지만 해당 문제를 풀기 위해 검색하다 "Compare the docx"와 "Extra_Field_Entry"라는 힌트가 주어졌다는 사실을 알 수 있었다. "Compare the docx"와 관련해 생각한다면 워게임 사이트인 Challengeland.co에서 주어진 파일과 원본 파일을 찾아 서로 비교하는 스테가노그래피 영역의 문제가 떠올랐으며 해당 문제는 스테가노그래피와 관련 있음을 추측 했다


아래에 표현된 빨간 점선은 File Name을 의미하고 파란 점선은 Extra Field를 의미한다


[Content-Types].xml 파일의 Extra Field 부분을 확인하면 값이 비어 있음을 알 수 있으며 "Extra_Field_Entry"와 관련해 생각해본다면, 확장자명을 바꿔 숨겨두었던 image6.docx 파일에서 각 File Entry들의 Extra Field 영역에 삽입 알고리즘과 키 값을 이용하여 데이터를 숨긴 스테가노그래피로 예상된다 

인용 = http://yokang90.tistory.com/m/30 )


검색을 통해 OOXML 구조의 Extra Field에 데이터를 삽입하는 툴을 찾을 수 있었으며 해당 도구에서 image6.docx 파일에서 얻은 2013이라는 키 값을 넣어주고 숨겨진 데이터를 추출을 시도 했더니 아래와 같은 결과를 확인할 수 있었다


해당 데이터는 AES로 암호화 되어있었으며 Decryption Key로는 2013이며, 복호화 된 파일은 원본 파일과 크기가 84.85% 일치한다는 정보와, stego_unpack_21.07.2017_02.19.10.txt 라는 파일명으로 복호화 되었음을 알 수 있었다



Key = c0d2gate~2o13!!F0r2nsic!!!!!




 Reference

http://yokang90.tistory.com/m/30

http://smartits.tistory.com/81

http://isyou.info/jowua/papers/jowua-v2n4-4.pdf

http://forensic-proof.com/archives/300

http://forensicinsight.org/wp-content/uploads/2013/03/F-INSIGHT-CodeGate-2013-Write-ups.pdf

'Wargame' 카테고리의 다른 글

CodeEngn Basic 2  (0) 2017.09.04
CodeEngn Basic 1  (0) 2017.09.04
[DISK] Codegate 2013 > Forensic 200  (16) 2017.07.20
[DISK] Codegate 2013 > Forensic 100  (0) 2017.07.19
[DISK] NTFS & FAT32 백업 영역을 이용한 파티션 복구  (0) 2017.07.07

[ * ] 문제 확인

경찰청은 최근 아동 성폭력과 관련된 범죄를 소탕하기 위해 대대적인 계획을 세운다.  경찰청은 아동 성폭력 범죄들의 공통점이 아동에 대한 성적 내용이 들어간 동영상 또는 유사한 자료물에서 그 동기가 비롯된다는 것을 발견했다. 경찰청은 인터넷에 떠돌아 다니는 아동과 관련된 음란물을 대대적으로 수사하기 시작했고, 아동 음란물을 다운로드 받는 다운로더들을 일제히 검거/구속하기 시작했다.  어느날, 다운로더의 집을 급습하여 검거를 하였는데, 나중에 다운로더의 컴퓨터와 디지털 저장매체를 분석해 보니 아동 음란물은 완전삭제되어 있었다. 그래서 아동 음란물을 받은 흔적을 찾기 위해 증거들을 모두 분석하였지만 아동 음란물 다운로드에 대한 흔적은 존재하지 않았다. 경찰청은 분명 다운로더가 아동 음란물을 받는 것을 트래픽 모니터링을 통해 확인 하였고, 해당 트래픽 또한 증거로 가지고 있으나 결정적인 증거가 없어 해당 다운로더를 기소하지 못하고 있다. 그래서 경찰청은 그대들에게 다음과 같이 요청한다.  “다운로더를 기소할 수 있는 결정적인 증거를 찾아주세요!”


Key format : SHA1("md5(Evidence File)_Download Time")

Download Time : KST, YYYY/MM/DD_HH:MM:SS



[ * ] 해결 방향

해당 지문을 읽으며 유추할 수 있는 내용은 다운로드와 관련 된 아티팩트를 찾는 것이며, 다운로더가 웹 하드 또는 파일을 전송하는 P2P 기술 중 하나인 토렌트를 이용했음을 예측하고 이와 관련한 아티팩트를 찾으면 해당 문제를 해결할 수 있을 것 같다


[ * ] 해결 과정

먼저 주어진 이미지 파일을 FTK Imager로 열게되면 아래와 같은 디렉터리 구조와 사용자 계정들을 확인할 수 있다


가장 의심이 되던 사용자 계정 중 CodeGate_Forensic라는 계정이 가지는 폴더와 파일을 분석했지만 증거를 확정지을만한 별 다른 특징을 확인할 수 없었고, 두 번째로 의심되는 "Administrator" 계정에서 현재 사용하고 있는 응용프로그램 및 시스템 정보를 담고 있는 Appdata 폴더에서 uTorrent라는 다운로드와 관련한 프로그램 폴더를 확인했다 



다운로더가 아동 음란물과 관련한 파일을 다운 받을 때 어느 경로를 기본으로 설정해두었는지 확인하기 위해 settings.dat 파일을 추출한 뒤, 토렌트와 관련 파일을 수정 또는 확인할 수 있는 BEncoder를 통해 확인해 보았고, 아래와 같은 경로를 확인할 수 있었다



해당 경로를 확인하기 전, 다운로더가 uTorrent를 이용해서 내려 받은 파일들을 정확히 파악하기 위해 NTFS를 사용하는 다운로더의 파일 시스템 트랜잭션 정보가 담기는 $LogFile을 분석하여 아래와 같은 결과 값을 얻을 수 있었다



위의 결과 값은 BEncoder에서 확인한 다운로드 파일의 기본 경로와의 일치함을 기준으로 필터링 한 결과이며, 2012년 12월 24일 13시 45분 43초에 "052b585f1808716e1d12eb55aa646fc4984bc862"라는 이름의 파일이 생성 되었고 해당 경로에서 파일을 확인할 수 있었다



바이너리에서 TorrentRG.com이라는 문자를 통해(?) 해당 파일이 토렌트를 이용해 다운로드를 완료했을 경우 생성되는 원본 Seed 파일임을 알 수 있었고, Seed 파일이 생성되는 경로를 나타내는 dir_completed_torrents의 값과도 일치함을 통해 해당 파일이 증거파일임을 알 수 있었다


* FTK Imager는 시간대를 UTC+00:00을 사용하기에 KST(UTC+09:00)를 사용하는 해당 시스템과 차이가 나며, FTK Imager에서 보이는 해당 증거파일의 시간대는 Creation Time이 아닌 Modified Time임. 아래와 같이 Winhex를 사용하면 생성, 수정, 변경시간대를 다 볼 수 있음




Key format : SHA1("md5(Evidence File)_Download Time")

Key = SHA1("449529C93EF6477533BE01459C7EE2B4_2012/12/24_13:45:43")



Key = 0100a4cdfdbb366125e736dad7023527dcbaa5b9




reference

http://forensicinsight.org/wp-content/uploads/2013/03/F-INSIGHT-CodeGate-2013-Write-ups.pdf

http://for-md.org/wp-content/uploads/2014/01/For-MD-Torrent-Forensics.pdf

[ * ] 문제 확인

A회사 보안팀은 내부직원 PC 자체보안감사 중 특정직원 PC에서 인터넷을 통해 내부문서를 외부로 업로드한 흔적을 발견하였다. 보안팀은 보안 위반 흔적을 더 찾기위해 직원 스마트폰도 임의 제출을 받아 추가 흔적을 조사하였다. 내부 문서의 정보를 찾아 정답을 입력하시오.


Correct Answer ex)

Upload Date&Time(UTC+09:00)_Modified Date&Time(UTC+09:00)_FileName.Extention_Filesize(LogicalFileSize)

2013-03-01 21:00:00_2013-04-03 10:00:50_sample.docx_100MB



[ * ] 해결 방향

주어진 지문에서 내부문서를 외부로 업로드한 흔적을 발견했음과 추가적으로 스마트폰도 임의 제출을 받은 것을 통해, 업로드 서비스를 제공해주는 클라우드와 스마트폰과 관련된 아티팩트임을 추측 가능


[ * ] 해결 과정

문제에서 주어진 이미지 파일 분석을 위해 Forensic Tool Kit (이하 FTK)로 열었을 때, NTFS 파일 시스템과 관련한 파일과 함께 10개의 폴더가 주어져 있다



각각의 폴더에는 아래와 같은 앱이 있으며 그 중 8개의 폴더에 plist라는 파일이 존재 했다

1 .Weather.app

2. CGV2.app

3. CNN-iPhone.app

4. Podcasts.app

5. Dropbox.app

6. WebViewSercvice.app

7. HousekeepingLog.app

8. MyPainting.app

9. HarooNotes.app

10. dayalbumlite.app


확장자 plist를 가지는 파일이 하는 역할이 무엇일까 하는 궁금증에 검색을 했고 아래와 같은 정보를 얻을 수 있었으며, 시그니쳐는 "62 70 6C 69 73 74"이며 아스키 값으로는 "bplist"임을 알 수 있었고 앱 목록과 plist의 정의를 통해 해당 스마트폰은 아이폰임을 알 수 있었다



각각의 폴더에서 발견했던 앱 리스트들 중, 내부문서의 외부 업로드와 관련된 Dropbox.app이 눈에 띄었으며 해당 폴더의 내부에는 아래와 같은 폴더 목록을 볼 수 있다.



Library/Caches/Snapshots/com.getdropbox.Dropbox/의 경로에서 아래와 같은 스냅샷이 찍힌 파일을 확인할 수 있었으며 "S-Companysecurity.pdf"라는 파일명으로 미루어 보아 해당 시나리오에서 유출된 기밀문서임을 짐작할 수 있다



스냅샷을 통해 기밀문서로 짐작가는 파일을 확인할 수 있었으며 나아가 주어진 지문에서 요구하는 업로드 시간, 수정 시간, 파일 사이즈를 알아내기 위해 해당 앱의 폴더를 탐색 중, Library/Caches/ 경로의 "cache.db"라는 파일을 확인할 수 있었으며, 해당 파일은 Dropbox 앱이 동기화 할 때, 동기화 된 정보가 남는 파일임을 알고, 해당 파일을 추출함



데이터베이스 파일에는 data_cache, local_files_cache라는 두 테이블이 존재 했으며, 그 중 data_cache 테이블에서는 아래와 같은 레코드를 볼 수 있었다



해당 레코드 중, 이전 스냅샷에서 봤고 기밀문서를 가지고 있던 tim_folder를 분석하기로 했고, 해당 레코드가 가지고 있던 Base64 Data를 tim_folder.plist 파일로 저장함



plist viewer로 확인 결과 data 태그 내에 Base64로 인코딩된 문자를 볼 수 있었다



Base64로 인코딩된 문자를 복호화 시키기 위해 파이썬을 이용해야 하나 싶었지만, 위 사진의 List View 탭에서 아래와 같이 확인할 수 있었다



첫 번째 NS.time은 Dropbox 앱 내 폴더 중 Document 폴더에 있던 Dropbox.sqlite 파일을 분석하던 도중, 테이블 ZCACHEDFILE에서 데이터들을 확인할 수 있었다. 해당 테이블은 업로드할 때 생성된 캐시가 모인 데이터를 가지므로 ZMODIFIEDDATE는 업로드 시간이 되며, 두 번째 NS.time은 업로드 시간보다 이전이므로 수정시간임을 추측가능




▼ 업로드 시간


▼수정 시간


KEY = 2012-12-27 17:55:54_2012-05-01 17:46:38_S-companysecurity.pdf_2.1MB




Referfence

https://ko.wikipedia.org/wiki/프로퍼티_리스트

http://forensicinsight.org/wp-content/uploads/2013/03/F-INSIGHT-CodeGate-2013-Write-ups.pdf

+ Recent posts