Case ④ 각각의 Partition의 VBR이 모두 손상된 경우
- 복원 전 MBR : Partition Table Layout
Bootable Flag |
Starting CHS |
Partition Type |
Ending CHS |
Starting LBA |
Size in sector |
00 |
01 01 00 |
07 |
FE 3F 07 |
3F 00 00 00 |
C9 F5 01 00 |
00 |
00 01 08 |
05 |
FE 3F 0D |
08 F6 01 00 |
86 78 01 00 |
- 하드 전체 Layout
- 하드디스크 정보 (229,824 Sectors, 112.2MB)
Type |
Name |
Status |
Start |
Stop |
Relative |
size |
07 |
NTFS |
00 |
000101 |
073FFE |
63 |
128457 |
05 |
FAT32 |
00 |
080100 |
0D3FFE |
128520 |
96390 |
- 인식 오류 발생 원인
Encase로 불러왔을 때, 아무런 파티션도 인식하지 못한 상태이다.
해당 디스크의 MBR을 확인해 보았다. MBR에는 2개의 파티션 정보가 나타나 있다. 해당 정보에 따르면, 첫 번째 파티션 시작 위치는 63섹터, 두 번째 파티션 시작 위치는 128520 섹터이다. 그러나 해당 섹터(VBR)는 모두 손상되었다.
즉, MBR은 손상되지 않았지만, 각각 파티션들의 VBR이 손상되었다.
a. MBR의 Partition table을 보고, 각 Partition의 시작 위치 확인
b. 첫 번째 파티션의 시작 위치인 63 sector에서 VBR 손상 확인
c. 두 번째 파티션의 시작 위치인 128520 sector에서 VBR 손상 확인
- 복원 과정
VBR이 손상되었을 때에는, VBR 백업본을 이용하여 복원할 수 있는 가능성이 존재한다. NTFS의 경우 파티션의 가장 마지막 섹터에 백업 되며, FAT32의 경우 보통 VBR에서 6번째 섹터에 기록되어 있다. 각각 파티션의 백업 VBR의 존재를 확인 후 손상된 VBR의 위치에 덮어쓰는 방법으로 복원할 수 있다.
a. 첫 번째 파티션의 VBR (63 sector) 바로 다음 섹터 확인
// NTLDR 관련 정보가 있는 것으로 보아 NTFS인 것으로 추측.
NTFS의 경우 VBR의 백업본이 맨 마지막 sector에 저장되어 있음
b. 첫 번째 파티션의 맨 마지막 섹터 (128519 sector) 확인
// NTFS 파일시스템 파티션 VBR 이 백업되어 있음
c. 두 번째 파티션의 시작위치(128520 sector)로부터 6 sector 뒤 확인
// FAT32 파일시스템 파티션 VBR이 백업되어 있음
d. WinHex로 dd 이미지를 읽음
(Encase Forensic Training버전에서는 Disk Emulate 기능 없으므로 직접 수정이 불가하므로 WinHex를 이용하여 VBR 백업본을 직접 손상된 VBR에 덮어써서 복원 후 마운트해야 함)
e. Encase를 통해 이미 확인한 VBR 백업본을 원래의 VBR 위치에 덮어씌움
// NTFS의 VBR 백업본
// FAT32의 VBR 백업본
- 복원 완료
a. Encase로 확인
Winhex에서 저장 후 Encase에서 Raw Image로 불러들여 읽음
// 정상적으로 C, D 드라이브가 인식된 것을 확인
b. Linux의 Loop Device로 Mount하여 정상 인식되는지 확인
b-1. dd 파일의 정보 확인 (Encase로 확인한 바와 동일함)
c.f) MMLS filesystemrecovery.dd 를 이용하여도 Partition 정보 확인 가능
MMLS는 Sleuthkit Tool 중 하나로, 분석할 디스크 레이아웃과 전체 파티션 스키마 취득, 물리적 디스크만 분석 가능 (스냅샵으로 획득한 이미지 파일에서는 사용 못함)
img_stat도 스냅샷 작성한 파일과 원본 디스크 또는 파티션 정보 확인 가능
b-2. 첫 번째 파티션의 offset(시작위치sector를 byte로 환산)을 지정하여 Mount 시킴
c.f) 파일 시스템을 마운트하는 것이므로, offset을 지정하지 않는 경우 해당 이미지는 하나의 파일 내에 두 개의 파일시스템이 존재하게 되어 마운트 자체가 불가능함
“dd if=filesystemrecovery.dd of=recovery.dd bs=512 start=63 size=128457”와 같이 offset을 지정하지 않고, 첫 번째 파티션만 따로 dump하여 mount 가능
b-3. 마운트된 첫 번째 파티션 확인 (정상 인식)
b-4. 두 번째 파티션 Mount 후 확인 (정상 인식)