본문 바로가기

Forensic/기초

디스크 복구 - 파티션(NTFS)

※아래의 내용은 Startup 디스크 포렌식 (이별 지음)을 공부하며 남긴 기록이다.

 

파티션 복구

하드디스크의 복구 중 가장 기본이 되는 FAT32와 NTFS 포맷의 파티션이 손상되었을 경우 어떻게 복구하는지 실습해보았다.

 

(1) NTFS 파티션 복구

NTFS  파티션이 손상되었을 경우 복구하는 방법을 아래와 같다. 

 

학습목표 : BR 영역이 손상된 파티션 복구

실습파일 : NTFS_Partition.zip > NTFS Partition Revovery.001

실습도구 : FTK Imager, HexEditor

실습결과 : FTK Imager에서 파티션 및 파일 목록 확인

 

FAT 32 파티션 복구와 차이가 있다면 FAT32와 같이 해당 파티션 정보는 가지고 있으나, 파티션의 시작 부분이 손상된 경우이다. 

 

GUI 파티션 상태를 확인하기 위해 FTK Imager로 이미지를 확인한다. 

손상된 NTFS 파티션 정보

Evidence Tree의 파티션 정보가 Unrecognized file system인걸로 보아 파티션 정보가 손상된 것을 확인할 수 있다.

또한 해당 파티션 정보가 있는 64byte에는 총 1개의 파티션만이 정보가 들어가 있는 것을 확인할 수 있다.

앞서 공부한 파티션 테이블 정보를 토대로 분석하하면 시작 주소는 [3F 00 00 00] 이고 해당 파티션이 0x07인 것으로 보아 NTFS 파일 시스템을 가지며 부트 플래그가 80이니 부팅 가능한 파티션이다. 실습 파일의 파티션 시작 주소가 [3F 00 00 00]인 것을 알아냈으니 63섹터로 이동해보자. 

 

63섹터 정보

파티션 시작 정보가 들어 있는 BR영역에 이상한 문자열로 가득 채워진 것으로 보아 BR 영역이 손상되어 있음을 알 수 있다. NTFS의 경우 FAT32와 다르게 BR 백업본을 해당 파티션 시작 주소의 6번째가 아닌 파티션 정보의 제일 마지막 섹터에 저장하게 된다.  파티션 테이블에는 파티션에 대한 총 섹터 개수가 저장되어 있다. 즉 해당 총 섹터 개수를 구하게 되면 해당 BR 백업 본 위치를 알 수 있다. 실습 파일의 총 섹터 개수는 [C0 3F 3C 00] 임을 알 수 있다.   

총 섹터 개수 C0 3F 3C 00 = 3948480 Sector 이다. 이는 해당 파티션(볼륨)의 섹터 수 이며 , 전체 하드디스크에 대한 섹터 수가 아니다. 그러므로 우리가 원하는 해당 파티션의 마지막 위치로 이동하기 위해서는 해당 파티션 시작 주소에 총 섹터 개수를 더해줘야한다.

시작 주소 (63) + 총 섹터 (3,948,543) 이라는 주소가 나오며 해당 주소에서 공통으로 해당하는 MBR의 섹터 1개를 뺴줘야한다. 3,948,543 -1  = 3,948,542

 

정상적인 BR 백업 정보 

해당 섹터로 이동하게 되면 BR 백업본을 확인할 수 있다. 복구는 FAT32와 마찬가지로 해당 섹터를 63섹터에 덮어쓰면 된다. 

붙여 넣기는 63 섹터의 첫 라인에 커서를 위치하고 Past Write(Ctrl+B)로 붙여넣어 원본 BR 정보로 덮어쓴다. 원본 BR 정보를 덮어쓴 후 ctrl+s로 저장 후  FTK imager로 보이지 않던 파티션과 파일목록들을 확인하면 된다. 

복구된 NTFS 파티션 

*파티션 테이블에서 파티션 정보가 있고 BR 영역만 손상되었을 경우는 간단하게 복구가 가능하나,  파티션 테이블이 손상되었을 경우 시그니처로 검색하여 파티션 테이블을 완성해야 한다. 

 

 

NTFS 파티션 복구 방법 요약

1. FTK 이미지로 손상된 이미지를 확인한다.

2. 손상된 이미지를 수정하기 위해 HxD로 이미지를 열어 확인한다.

3. 파티션 테이블의 파티션 정보를 확인하여 , 부팅 가능한지 , 어떤 종류의 파일 시스템인지 , LBA 시작 주소를 확인한다.

4.NTFS의 경우 FAT32와 다르게 BR 백업본을  파티션 정보의 제일 마지막 섹터에 저장하게 된다.

5. 총 섹터 개수를 구한다. 해당 파티션의 마지막 위치로 이동하기 위해 해당 파티션 시작 주소에 총 섹터 개수를 더해준다. 그리고 공통으로 해당하는 MBR 섹터 1개를 빼준다. 

 

 

공부하면서 느낀점은 MBR 과 BR에 대해 아직 개념이 덜 잡힌 느낌이당..... 좀 더 찾아봐야지...

 

MBR: BR을 호출하기 위한 Boot code, Partition Table을 가지며, 디스크의 첫 512 Bytes를 차지한다

BR: 각 파티션의 첫 번째 섹터에 위치한다 

 

오홍...