본문 바로가기

디지털 포렌식 (Forensic)/디스크 포렌식 (Disk)

[디스크 포렌식] 3.20 악성코드 감염 MBR 복구

728x90
반응형

3.20 악성코드란?

MBR 영역과 VBR을 모두 특정 문자열로 덮어씌워서 부팅이 불가능하도록 만드는 악성코드

 

3.20 악성코드에 감염된 가상머신 파일을 HxD로 열면 섹터 0에 VMDK 파일의 예약 영역이 위치합니다.

 

VMDK 파일의 예약 영역을 제외한 가상머신의 0번째 섹터의 MBR 구조를 보고 싶다면 FTK Imager로 VMDK 파일을 열어주면 됩니다.

 

FTK Imager로 확인해보니 MBR 영역이 모두 HASTATI라는 문자열로 덮여있습니다.

 

검색 기능으로 검색을 해보니 HASTATI로 뒤덮인 영역이 2개 더 있었습니다.

 

처음 HASTATI 영역은 MBR 영역, 2번째와 3번째 HASTATI 영역은 파티션 정보를 담고 있는 영역이라고 추측해 볼 수 있습니다.

 

그럼 파티션을 복구해 보겠습니다. 먼저 1번 파티션을 복구하도록 하겠습니다.

 

파티션을 복구하기 위해서 부팅 가능 여부, 파티션 타입, 파티션 시작 주소, 파티션 총 섹터 수를 구해야 합니다.

 

1. 부팅 가능 여부

복구하려는 디스크가 OS가 설치된 시스템이므로 부팅 플래그 값은 0x80으로 설정하겠습니다.

 

2. 파티션 타입 확인

파티션 타입은 기본적으로 파티션 시작 위치에서 +6을 한 주소에 백업본이 존재하면 FAT32 파일시스템, 존재하지 않는다면 NTFS 파일시스템입니다.

 

2번째 HASTATI 영역의 섹터 위치는 2048번 섹터입니다. 2048번 섹터에 +6을 하면 2054번 섹터입니다.

 

 

+6을 한 2054번 섹터에 백업본이 존재하지 않으므로 이 파티션은 NTFS 파일시스템입니다. (0x07)

 

3. 파티션 시작 주소

 

2번째 HASTATI 영역을 보면 0x100000으로 시작함을 알 수 있습니다. 

 

실제 디스크는 섹터 단위로 이동하므로 16진수로 표현된 0x100000이라는 값을 섹터 단위로 변환해주면 됩니다.

 

0x100000 / 0x200 을 해주면 0x800이라는 값이 나오게 됩니다.

 

4. 파티션 총 섹터 수

총 섹터 수는 3번째 HASTATI 영역인 206848 섹터입니다.

 

NTFS 파일 시스템에서는 파티션 백업본이 파티션의 마지막에 저장되기 때문입니다.

 

즉 총 섹터의 개수는(0x6500000(2번째 파티션 시작 주소) - 0x100000(1번째 파티션 시작 주소)) / 0x200(섹터 단위 변환) = 0x32000 이 됩니다.

 

두 번째 파티션 정보도 위와 같은 방법으로 복구한 뒤, HASTATI로 뒤덮인 MBR 영역과 각 파티션들의 내용을 복구해주면 됩니다.

728x90
반응형