#About


『2020년 10월 1일

날씨 : 맑음

국군의 날이다. 옛날부터 별로 큰 감흥을 느끼는 날은 아니다. 오늘도 매년 돌아오는 여느 국군의 날처럼 싱겁게 지나가는 듯 했다. 그런데 오늘 컴퓨터 선생님께서 내 주신 수행평가가 마음에 걸린다. 국군의 날을 맞아 특별히 제작된 숙제라고 하셨다. 과제의 내용은 '난중일기에 숨겨진 메세지를 찾아오라'는 것이었다. 문제를 푼 사람에게는 어마무시한 상품이 주어진다고 말씀도 덧붙이셨다. 어떻게 숙제를 해결해야할 지 막막하다. 일단 최근에 배운 데이터 은닉 기법을 복습한 후에, 차근차근 문제 파일을 분석해보아야겠다.

오늘의 일기 끝!』


컴퓨터 선생님께서 내주신 과제를 해결하고 Flag를 알아내시오! 




#Solution


[그림 1] - 문제 파일 확인


제공 받은 파일을 보면 diary.exe를 가진 실행파일임을 확인할 수 있고 추출을 하게되면 아래와 같이 파일이 추출된 것을 확인할 수 있다


[그림 2] - 문제 파일 확인 2


텍스트 파일 10개를 확인할 수 있었으며 각 파일을 열어 보았을 때 아래와 같은 일기를 확인할 수 있다


[그림 3] - 텍스트 파일 내용 확인


10개의 텍스트 모두 위와 같은 일기가 적혀있었고 년도와 텍스트 파일 속 컨텐츠를 통해 난중일기라는 것만 알 수 있었다


처음에 문제를 풀 때 가장 어렵게 느껴졌었고 문제를 풂에 있어 오랜 기간이 소요된 문제 였다. 문제를 풀 수 있었던 것은 


NTFS 파일 시스템을 공부하다 ADS라는 개념을 알게 되었고, 이를 통해 해결할 수 있었다. ADS는 Alternate Data Stream의 약자로 NTFS 구조에서의 


다중 데이터 스트림을 지원하며 이는 파일이 하나 이상의 데이터를 담을 수 있음을 의미한다. 따라서 이를 이용하여 원하는 데이터를 다른 파일 안에


 숨길 수 있으며  그 예로 Windows XP에서는 ADS를 이용한 정상파일의 데이터 스트림 뒤에 악성파일의 실행 스트림이 붙어, 정상 파일을 실행했을 경우 


악성파일의 데이터스트림까지 읽어오는게 가능했다 하지만 Windows 7이후로부터는 해당 기능은 존재하지만 XP와 같이 파일의 실행은 불가능하다


[그림 4] - 데이터 스트림 확인


dir /r 옵션을 통해 해당 폴더에 숨겨진 데이터 스트림을 확인할 수 있었으며, 아래의 AlternateStreamView를 통해 스트림 데이터를 추출할 수 있었다


http://www.nirsoft.net/utils/alternate_data_streams.html


[그림 5] - 데이터 스트림 확인 및 추출


[그림 6] - 추출 된 데이터 스트림 확인


zip 파일을 열어보려고 했지만 분할파일이며 ~~ 열 수 없다는 메시지가 떠서 HxD로 확인결과 zip파일의 헤더 시그니처인 50 4B 03 04가

 

아닌 다른 데이터 쓰여져 있음을 통해 조금의 멘붕을 겪은 뒤 다시 [그림 6]을 살펴 본 결과 z01, z02, ~ ... z.09의 번호가 매겨져 있는것을 확인했다


[그림 7] - ZIP 파일의 시그니처가 아님을 확인


번호를 확인한 뒤 HxD 상에 모두 드래그 앤 드롭으로 올렸더니 z01 파일에서 zip파일의 헤더 시그니처를 확인할 수 있었다


[그림 8] - ZIP 파일의 시그니처 확인


이를 통해 z01, z02, ... ~는 분할 된 데이터의 순서를 의미함을 짐작하고 차례대로 바이너리를 아래와 같이 붙여준 뒤 test.zip파일로 저장했다


[그림 9] - 데이터 스트림 결합


결합해 준 결과 test.zip파일에서 Yi.jpg 파일을 확인할 수 있었으며 안에 플래그가 적혀 있었다


[그림 10] - FLAG 값 확인


Answer = 나의 죽음을 적에게 알리지 마라



'Wargame' 카테고리의 다른 글

[Cresendo] Registry Problem 01  (0) 2017.11.14
[Cresendo] NTFS Log 1  (0) 2017.11.14
[Cresendo] MFT Problem 01  (0) 2017.11.13
[Cresendo] WER Problem 03  (0) 2017.11.13
[Cresendo] WER Problem 02  (0) 2017.11.13

+ Recent posts