본문 바로가기
9. 디지털 포렌식

디지털 포렌식 Sub 5 - Petya 랜섬웨어 감염 MBR 복구

by Robert8478 2023. 12. 14.

실습 파일 - PET.zip > PET.vmdk
목표 - MBR이 손상된 파일시스템 복구

Petya 악성코드 감염으로 변경되는 MBR 구조- 0~0x6FFF 까지는 악성 데이터로 덮어씌운다.
0x7000~0x7200 오프셋에는 0x37로 XOR된 MBR 원본이 저장된다.
0x7200byte까지 감염되도록 코딩되어 있으나 실제로는 0x7202 byte가 감염

복구 과정은 두가지로 1.XOR 암호화된 MBR 정보 복호화 후 0번 섹터인 MBR 위치에 복사
2. MBR 영역 다음 섹터부터 악성코드로 덮인 영역 모두 0으로 덮어씌움

1. 우선 FTK Imager로 PET.vmdk를 열자, 그다음 ctrl+g (go to offset) 누른 뒤 07000 누른뒤 hex 에 체크후 OK

0x7000 오프셋으로 이동하면 위처럼 0x37로 XOR된 원본의 MBR 정보가 있다. 7000부터 71ff까지 copy hex로 복사한다.

그리고 HxD에 XOR_mbr 이라는 이름으로 붙여넣어주었다. 그 후, 실습파일의 PETYA.exe와 XOR_mbr을 같은 디렉터리에 놓고 PETYA.exe를 실행해서 ORI_mbr을 생성한다. XOR 암호화 MBR 복호화한 원본 파일이다.

원본 MBR을 얻었으니 vmdk에서 MBR 위치를 찾기 위해 0번 섹터에서 헤더의 일부분을 복사한다.

그 후, HxD에서 PET.vmdk를 열고 ctrl+f 로 찾기 후 붙여넣어서 찾아준다. 데이터 타입은 16진수탭으로 가서 찾는다.
이런 방식으로 시그니처 기반으로 MBR 위치를 찾을 수 있다.

발견된 곳은 15488 섹터로 이곳에 ORI_mbr 파일을 덮어씌워준다. ORI_mbr을 HxD로 열어주면 된다.

2. 악성 데이터가 덮인 15489~15545 섹터까지 모두 0으로 채워주면 정상 부팅이 될 것이다.
전체 변경을 하기 위해 HxD의 편집 > 블록단위 선택에서 15545 섹터까지 선택 후
편집 > 선택 채우기 에서 0으로 채워주면 된다.

추가적으로 실습파일중 GoldenEye 랜섬웨어도 실습해보자.