Computer/#Go2 포렌식

Filesystem Recovery (NTFS) - HASTATI

wrkk 2018. 7. 22. 16:40

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) 섹터 계산