2024. 4. 11. 00:18ㆍ보안/포렌식
파일 시스템마다 형식이 다르기때문에 복구하는 방법 역시 다르다.
NTFS Walker를 사용하여 파일을 복구해보자.
EXE, DOCX, JPG, ZIP, PNG 파일을 각각 복구해볼 것이다.
NTFS Walker에서 확인할 수 있다! 이제 Shift + Delete를 통해 삭제해보자.
삭제된 것으로 나온다 !
하나하나 해보자. 제일 위에 있는 PNG파일을 복구해보자.
hxd에서 NTFS 이미지 파일을 열어주면
이 드래그한 부분이 MBR영역인데 파티션 정보를 표현하는 부분이다. 16Bytes로 구성되어 있다.
5~8번 부분이 VBR섹터 번호이다. 0x80이므로 128섹터로 이동해보자.
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를 해서 하나씩 띄어서 같은 방법으로 진행하면 된다.
'보안 > 포렌식' 카테고리의 다른 글
[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 |