[ * ] 문제 확인

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

+ Recent posts