Filesystem Recovery (NTFS) - HASTATI
Startup 디스크 포렌식 실습
악성코드 감염 PC 복구
사용 툴: FTK Imager, HxD
※ 실제 3.20 사이버테러 때 사용된 악성코드로 감염시킨 환경은 아님
- 해당 실습은 메타데이터 부분을 맡고 있는 MBR, VBR이고 이를 복구 시키기 위한 실습
- 실습 파일은 파티션 2개로 아래와 같은 구조로 되어있고, MBR, VBR01, VBR02(붉은박스) 모두 "HASTATI." 문자열로 덮어쓰여짐
제공된 파일이 VMware 파일이므로 HxD로 읽을 경우 섹터 계산이 좀 복잡하여 FTK Imager를 이용하여 계산
가. MBR 복구
· MBR 복구: 제공해준 파일(446 부트코드 제공) 나머지 파티션 정보를 입력
· 파괴된 MBR(Sector 0)
· 제공된 MBR과 붉은 박스를 채워넣어야 하고 해당 데이터를 입력하기 위해 부팅여부, 파티션타입, VBR 시작위치, 파티션의 섹터 수를 구해야 함
· 추가로 CHS 타입을 쓰지 않기 때문에 0으로 표기
나. VBR01 복구
· VBR 복구: 파티션 타입을 알아낸 후 VBR 위치 찾기
· 파괴된 VBR01(Sector 2048)
· 첫 번째 VBR의 백업본을 찾기 위해서 3번째 "HASTATI." 문자열이 시작되는 섹터의 전 섹터임(가장 상 위에 있는 그림의 첫 번째 화살표)
· 백업 VBR01(Sector 206848)
다. VBR02 복구
· VBR 복구: 파티션 타입을 알아낸 후 VBR 위치 찾기
· 파괴된 VBR02(Sector 206848)
· 두 번째 VBR은 NTFS 시그니쳐(EB 52 90 4E 54 46 53 20)를 이용하여 찾음(여러 방법이 있을 수 있음)
· 해당 실습 파일엔 정말 많은 해당 시그니쳐가 존재하고 필자는 가장 마지막에 있고, 시그니쳐가 섹터의 첫 번째 위치하는 곳으로 정함
· 백업 VBR02(Sector 125827072)
· 아래 그림은 시그니쳐를 찾으면서 발견된 섹터들...(다수 존재)
첫 번째 그림은 그럴듯 하나 주위에 데이터 존재하여 일단 패스, 두 번째 그림은 시그니쳐 위치가 달라서 패스
라. MBR에 입력할 데이터 계산
★ 모두 VBR에서 6섹터 떨어진 곳에서 백업본이 존재하는지 확인한 결과 데이터가 존재하지 않아 FAT가 아닌 것으로 확인(둘 다)
가) 첫 번째 VBR 필요 데이터
- 부팅 가능: 0x80
- 파티션 타입: NTFS(0x07)
- VBR 시작 섹터 0x800(2048)
- 첫 번째 파티션 섹터 수: VBR 백업본 마지막 offset(0x6500000) - VBR offset(0x100000) / 1섹터 크기(0x200) = 0x32000
나) 두 번째 VBR 필요 데이터
- 부팅 가능: 0x80
- 파티션 타입: NTFS(0x07)
- VBR 시작 섹터 : VBR offset(0x6500000) / 1섹터 크기(0x200) = 0x32800
- 두 번째 파티션 섹터 수: VBR 백업본 마지막 offset(0xefff00000) - VBR offset(0x6500000) / 1섹터 크기(0x200) = 0x77CD000
이를 MBR에 아래와 같은 위치에 입력
정리
1) MBR의 중요 필드 데이터 입력(부팅가능, 파티션 타입, VBR 시작 위치, 파티션 섹터 수)
2) 파티션의 Filesystem이 무엇인지 추측
3) 섹터 계산