관리 메뉴

IT창고

PETYA 랜섬웨어 디스크 복구 본문

보안/Digital forensic

PETYA 랜섬웨어 디스크 복구

방구석여포 2018. 7. 8. 18:32

PETYA 랜섬웨어가 걸린 디스크를 복구하도록 하겠습니다.

랜섬웨어 PETYA 악성코드는 2016년 04월에 처음 발견되었으며 우리나라에서도 감염된적이 있고 MBR영역을 감염시킵니다.


PETYA에 걸린 가상머신입니다. 


랜섬웨어가 걸리고 파일들의 암호화가 걸리며 재부팅을 하면 나타나게 되는 화면입니다.


아무키나 입력하면 금전을 요구하는 문구들이 있으며 key값을 입력해야하는 복호화가 되는 방식입니다.



PETYA에 감염되면 총 0x7202 오프셋까지 감염이 됩니다. 복구하는 방법은 암호화된 MBR을 XOR연산을 통해 복호화를 하고 악성 데이터가 덮어 쓰인 영역을 모두 0으로 채워주면 됩니다. 즉 MBR~VBR사이를 0으로 채우면 됩니다.


 

ftk imager로 랜섬웨어가 걸린 디스크파일을 열어보고 0x37연산원본이 있는 곳인 0x7000으로 이동해보았습니다. 

ctrl + G 를 눌러서 바로 이동할수있습니다. 56번 섹터의 마지막 시그니처가 0x62 0x9D로 되어있는걸 확인할수있습니다.


HxD에디터로 열어서 확인해보겠습니다.

지금 PETYA 랜섬웨어가 걸린 PC는 VMware 가상머신입니다. 가상머신은 0섹터가 MBR이 아닙니다.

해당 가상머신에서 MBR을 찾으려하면 40~47 오프셋을 확인해야합니다. 리틀엔디안으로 3C80 -> 15488번 섹터가 MBR입니다.


아까 ftk tool로 확인했던 연산원본이 있는 섹터는 56번 섹터로 15488+56 = 15544번 섹터가 연산원본 섹터가 됩니다.

VMware가상머신에 대해 자세히 알고싶다면 아래를 사이트를 참고합니다http://forensic.korea.ac.kr/DFWIKI/index.php/%EA%B0%80%EC%83%81%EB%A8%B8%EC%8B%A0


이제 0x629D를 XOR연산을 해보겠습니다. 

62 9D를 바이너리로 바꾸면 0110 0010  1001 1101이고 37 37을 바꾸면 0011 0111  0011 0111입니다.


0110 0010  1001 1101

0011 0111  0011 0111  xor 연산 

-------------------------------

0101 0101  1010 1010 -> 55 AA


0x62 0x9D는 0x55 0xAA였다는걸 확인할수있습니다.

이제 56번 섹터의 내용을 모두 0x37 XOR연산을 해주면 복호화가 됩니다.

원본 파일을 XOR 연산해줍니다.


XOR연산을 해주면 정상적으로 복호화가 된걸 확인할수있습니다.


이제 악성 데이터가 덮어 쓰인 영역을 모두 0으로 채워넣기만 하면 됩니다. 

HxD의 블록선택으로 악성데이터가 있는 영역 모두 선택해주고 00을 넣어주면 됩니다.

MBR영역에는 아까 복화화한 내용을 넣어주면 됩니다.


여기까지 감염된 MBR복구 과정이였습니다. 이제 제대로 실행이되는지 가상머신을 다시 돌려보겠습니다.

PETYA의 경고화면도 안보이며 정상적으로 부팅이 되는걸 확인할수있습니다. 


Comments