NTFS Walker를 사용한 파일 복구

2024. 4. 11. 00:18보안/포렌식

728x90

파일 시스템마다 형식이 다르기때문에 복구하는 방법 역시 다르다.

NTFS Walker를 사용하여 파일을 복구해보자.

EXE, DOCX, JPG, ZIP, PNG 파일을 각각 복구해볼 것이다.

NTFS Walker에서 확인할 수 있다! 이제 Shift + Delete를 통해 삭제해보자.

삭제된 것으로 나온다 !

하나하나 해보자. 제일 위에 있는 PNG파일을 복구해보자.

hxd에서 NTFS 이미지 파일을 열어주면

Hxd에서 NTFS파일을 열어준 모습

이 드래그한 부분이 MBR영역인데 파티션 정보를 표현하는 부분이다. 16Bytes로 구성되어 있다.

5~8번 부분이 VBR섹터 번호이다. 0x80이므로 128섹터로 이동해보자.

VBR영역

VBR영역으로 이동했다.

4번째 줄 8Bytes부분이 Start of MFT부분으로 계산 시 사용된다.

복구하고자 하는 파일 부분을 찾아 가기 위해 아래를 계산한다.

0x55 54 01 00 00 00 00 00 * 8 + 128 + 38 * 2

* 8 = 클러스터 단위이기 때문에 

+ 128 = VBR 영역까지 128섹터이기 때문에 

+ 38 = 복구하고자 하는 파일의 #MFT * 2(NTF Walker에서 확인 가능)

계산하면 697204이 나온다.

이동해보면 PNG.png라고 나와있다. *2빼먹어서 한참 고생했다.

확장자인 png 다움부분에 0x80 부터 0x22까지가 데이터 영역이다.

0x22는 runlist 라고 하여 데이터영역을 가르켜 주게 된다.

0x22를 통해 0x88 05 를 구할 수 있다.

runlist 기준으로 앞 8Bytes는 파일의 실제크기에 해당한다.

0x 62 45 0E 00 00 00 00 00 == 935266

 

0x88 05 * 8 + 128 == 11456

섹터 이동을 해주면

첫번째 블록을 누르고 블록 선택을 누른 후 파일의 실제 크기를 입력해준다.

그럼 끝까지 선택되고, 이 부분을 복사하여 새로운 파일에 복사해 준 후 , 저장해주면

성공적으로 복구했다 !

다른 형식들의 파일은 #MFT가 연속적이기 때문에 * 2를 해서 하나씩 띄어서 같은 방법으로 진행하면 된다.

728x90

'보안 > 포렌식' 카테고리의 다른 글

[Dreamhack] lolololologfile Write-up  (0) 2024.04.17
[Dreamhack] Enc-JPG  (0) 2024.04.11
GPT  (1) 2024.04.01
MBR  (0) 2024.04.01
NTFS 파일 시스템 구조  (0) 2024.04.01