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

'Computer > #Go2 포렌식' 카테고리의 다른 글

Filesystem Recovery (NTFS) - MBR Recovery  (0) 2018.08.18
Filesystem Recovery (NTFS) - PeTya  (0) 2018.08.12
Filesystem Recovery (NTFS)  (0) 2018.07.21
Filesystem Recovery (FAT32)  (0) 2018.07.21
USB artifacts  (0) 2014.08.14

+ Recent posts