관리 메뉴

IT창고

감염된 디스크 복구 (3.20 전산대란) 본문

보안/Digital forensic

감염된 디스크 복구 (3.20 전산대란)

방구석여포 2018. 7. 8. 20:21

2013년 3월 20일에 한국의 주요 언론 및 기업의 전상망이 마비되고 대다수의 컴퓨터들이 감염되었던 사건이 있었습니다.

해당 악성코드는 MBR, VBR영역을 모두 특정 문자열로 변경시켜 부팅이 되지 못하게 합니다.


망가진 하드디스크를 복구해보도록 하겠습니다. 

실습해볼 환경은 가상머신입니다.


확인해보면 MBR영역이 특정 문자열로 변경되어있는걸 확인해볼수있습니다.


HxD에디터로 먼저 MBR 및 VBR위치를 확인해보도록 하겠습니다.


3C80 -> 15488번 섹터가 MBR위치에 해당됩니다.


이 위치로 가보면 MBR이 특정문자열로 바꿔있는데 VBR도 특정문자열로 변형되었으며 VBR위치는 위의 문자열 [ 48 41 53 54 41 54 49 2E ]로 찾아보겠습니다.


2곳에서 문자열로 변형된 섹터를 찾았습니다.

파일시스템이 어떤것인지 알기위하여 6섹터를 더 가봤지만 백업본은 찾을수없었기에 NTFS타입이란걸 알수있었습니다.


이제 NTFS의 시그니처 [EB 52 90 4E 54 46 53]로 VBR백업본을 찾아봅니다.

오프셋00의 0D는 NTFS파일시스템 구조로 보면 Sector per Cluster로 기본적인 클러스터의 크기는 8이다 하지만 08임에도 VBR백업본이 아닌경우도 존재하며 섹터의 크기를 고려하여 찾아봐야 합니다.


찾아낸 VBR백업본 파일들을 문자열로 변형된 VBR1, 2위치에 넣어줍니다.

VBR이 끝났다면 이제 MBR을 복구할 차례입니다.

MBR의 BootCode 446Byte는 NTFS하드디스크에서 추출하여 사용하겠습니다.

만약 BootCode 446Byte가 바로 없을 경우 디스크관리에서 가상디스크를 만들어서 NTFS 부트코드를 추출합니다.

이제 마지막으로 파티션 테이블 정보만 있으면 됩니다.

VBR이 2개가 있으므로 파티션도 2개가 있을텐데 먼저 파티션 정보 중 LBA시작위치는 문자열덕에 알수있었고 총 섹터의 수만 알면 됩니다.

 

1번 파티션 

 2번 파티션

부팅플래그 

 08

00 

CHS시작주소 

00 00 00 

00 00 00 

파티션타입 

07 

07 

CHS마지막주소 

00 00 00 

00 00 00 

LBA시작주소 

00 80 00 00 

 00 28 03 00

총 섹터 수 

00 20 03 00 

00 D0 FC 04 


15488번 섹터의 MBR부분도 복원이 되었습니다.


이제 망가진 부분이 모두 복구가 되었으므로 가상PC를 부팅을 해보면 제대로 부팅이 되지 않습니다.

이유는 하드 디스크별 고유한 GUID값이 있는데 이 값이 다르면 부팅이 되지않습니다. GUID값의 위치는 MBR 440~443Byte이며 GUID 정보를 저장하고있는 하이브 파일 windows\system32\config\ 경로에 SYSTEM파일로 저장이 됩니다. 


VBR, MBR모두 제대로 복원이 되면 파티션의 정보를 확인할수있습니다. 여기의 경로에 들어가서 SYSTEM파일을 카빙하여 가져옵니다.

작업PC로 파일을 가져왔다면 윈도우 검색창에 regedit을 입력하면 레지스트리 편집기가 나옵니다. 

파일에 하이브 로드로 SYSTEM파일을 선택하고 저는 키값으로 test라 정했으며 키값으로 정한곳 안에 MountedDevices가 있습니다. 보통 부팅 파티션은 C드라이브로 하는 경우가 많기에 C디바이스를 먼저 발펴보면 앞에 4Byte정도의 GUID값이 보입니다.

이 값을 MBR 440~443Byte에 넣어주면 됩니다.


하지만 운영체제가 없다고 나옵니다 이것은 $BOOTMSG 파일이 없어 부팅코드가 메모리에 로드되지 않아서 그렇습니다 이를 부팅시키기 위해서는 윈도우 부팅cd, usb를 이용하여 복구모드로 들어가야만 합니다.

Comments