Digital_forensic/CTF

[Dreamhack] lolololologfile Write-up

neck392 2024. 12. 19. 16:57

1. lolololologfile

2022 Christmas CTF

<문제 설명>
<문제 파일>

 

<이백만년만에 쓰는 롸업>

2. Explanation

문제 설명을 확인해보면 flag가 담긴 PDF 파일을 삭제하였다고 한다. FTK Imager로 분석해보았을 때 휴지통 아티팩트에도 남겨진 데이터가 없는 것으로 보아 휴지통에서도 완전히 삭제된 파일이라 유추할 수 있다. 따라서 비할당된 영역(unallocated space)을 통하여 PDF 파일 복구를 시도한다.

 

완전히 삭제된 파일은 경우에 따라 복구할 수 있다. NTFS 뿐만이 아니라 FAT 등의 파일 시스템은 실제 클러스터에 저장된 내용을 삭제하는 것이 아니라 파일에 할당된 클러스터를 사용 가능한 상태로 바꾸어 클러스터들이 다른 파일에 할당될 수 있게 한다. 따라서, 이미 덮어 써진 파일은 복구가 불가능하지만 그렇지 않은 삭제된 파일들은 복구할 수 있다.

삭제되어 데이터와 클러스터와의 연결이 끊어진 데이터들은 비할당 영역에 존재한다.

 

즉, 비할당 영역은 디렉토리 엔트리 정보가 사라지고 파일 데이터만 남아있는 공간을 뜻한다. 주로 포맷 이전의 데이터, 디렉토리 엔트리 정보 즉 메타데이터가 사라진 데이터들이 남아있다. FAT 영역에서 0x00의 값을 갖는 클러스터가 비할당 클러스터인데, 이 부분을 분석하면 데이터 카빙이 가능하다.

 

문제 파일을 FTK Imager로 열어본다.

<비할당된 영역 확인>

비할당 영역에 위와 같이 남겨진 데이터들이 존재함을 식별할 수 있다.

 

<PDF 파일 시그니처 식별>

02067 파일의 바이너리 데이터를 확인해보면 PDF 파일의 헤더 시그니처를 식별할 수 있다. PDF 파일 구조를 기반으로 PDF 파일의 푸터 시그니처도 찾아본다.

<PDF 파일의 푸터 시그니처 식별>.

"CTRL+F"를 통하여 PDF 파일의 푸터 시그니처인 "25 25 45 4F 46"을 찾아본 결과 05082 파일에서 발견할 수 있다.

따라서, "02067" 파일과 "03405", "04466", "05082" 파일들을 Export하여 하나의 파일로 합치는 과정을 수행한다.

 

<하나로 합친 무제1 파일>

각 파일들의 바이터리 데이터를 순차적으로 연결하여 "무제1"로 저장한뒤에 .pdf 파일로 확장자를 추가한다.

해당 파일을 열어보면

<flag 획득>

다음과 같이 flag를 획득할 수 있다.