BLOG

BootSector가 망가진 NTFS 파일시스템 복구 본문

Digital Forensic

BootSector가 망가진 NTFS 파일시스템 복구

Radbit 2023. 11. 3. 17:53

NTFS 파일시스템 전반적인 것에 대해서는 따로 작성되어있고 될 것임.

본 글에서는 BootSector 통해 파일시스템 복구에만 집중함.

 

우선 들어가기 전 Boot Sector가 손상되는 원인을 알아보도록 한다.

1. Malware / Virus 감염으로 인한 BS 파괴

2. 컴퓨터가 작동하는 동안 갑작스런 인터럽트 발생

3. OS 설치 또는 업데이트 도중 오류

4. 저장장치의 물리적 손상

등 여러 오류가 있음

 

Boot Sector는 보통 자신의 복사본인 Backup Bootsector를 같은 드라이브에 보유하고 있음.
(전체가 망가지지 않았다면)

 

본격적인 파일시스템 복구에 들어가기 앞서 사용할 파일/소프트웨어는 다음과 같다

- dd 이미지 파일

- FTK Imager

- HxD Hex Editor

 

 

FTK Imager에 탑재된 이미지 파일

FTK Imager로 확인해봤을 때, 해당 이미지 파일 내 파일시스템이 망가져 내부의 파일들을 확인할 수가 없음

 

이미지 파일 Hex 값

1BE = 446 부터 첫번째 파티션 테이블 엔트리가 시작된다. 확인해보자

 

1. 1BE 오프셋 : 0x00 값으로, 부팅이 불가한 파티션임.

# 0x80(활성 가능한 파티션) / 0x00(부팅 불가) / 그 외(비정상) 

 

2. 1C2 오프셋 : 0x07 값으로, HPFS/NTFS/exFat 파일 시스템을 뜻함. 파티션 타입이 들어가는 위치.

# https://en.wikipedia.org/wiki/Partition_type

 

3. 1C6 - 1C9 오프셋 : 0x80 값으로, 파티션의 첫번째 섹터LBA 주소를 나타냄.

# 빅 엔디안 형식으로 보여주니 리틀 엔디안으로 변형해서 값을 확인하면 00 00 00 80 -> 80(hex) -> 128(dec)임.

파티션 시작 LBA(VBR)

섹터 이동 시, 있어야할 위치에 아무 데이터가 없는 것을 확인 가능.

일단 다시 파티션 테이블 엔트리 분석

 

4. 1CB - 1CE 오프셋 : 0x00,0x08,0x03,0x00 값으로 , 파티션의 전체 섹터 크기.

# 이또한 리틀 엔디안으로 확인 03 08 00이므로 -> 30800(hex) -> 198,656(dec)임.

 

파티션의 마지막 섹터에는 VBR 백업본이 존재한다.

이를 찾기 위해서는 다음과 같은 공식으로 값 계산을 한다.

BR위치 + NTFS의 전체 섹터크기-1 = NTFS BR 백업본

128 + 198,656 -1 = 198,783

 

5. 해당 섹터로 이동한다

VBR 백업본

백업본 확인이 잘 된다. 해당 섹터를 복사한 뒤 시작 섹터였던 128 섹터로 이동해

붙여넣어준다 (HxD 에서는 [붙여넣기 쓰기] 이용)

 

 

저장한 뒤 FTK Imager로 다시 탑재해본다.

정상적으로 확인된다.

 

- 여담 

포렌식 툴 중에 X-ways Forensics 라는 소프트웨어가 있는데, 해당 소프트웨어는 VBR이 망가진  파티션이 있고

해당 파티션의 백업 VBR이 있으면, 자동으로 복원해서 파일시스템을 보여준다. 

(원본 이미지파일은 손상시키지 않은 채 ReadOnly라서 탑재하고 VBR을 복원한다해도 무결성이 손상되지 않음.)

 

또한 TestDisk라는 파일을 이용해 자동으로 복구할 수 있다. 이는 다른 글에서 다루도록 하겠다.

'Digital Forensic' 카테고리의 다른 글

트럼프 집회 총격범의 핸드폰 포렌식 사례  (0) 2024.07.28
AFF4(Advanced Forensic Format) 훑어보기  (0) 2024.05.19
Windows Event Log (1) - 개요  (0) 2023.07.31
NTFS #1  (0) 2022.10.03
Windows11 WSA Client 간단 분석  (0) 2022.04.11