GhostPetya骷髅头病毒分析

版权声明: https://blog.csdn.net/m0_37552052/article/details/84983199

病毒名:GhostPetya
病毒信息:Win32 EXE
病毒MD5:C8AD4F6EFD75D5693A0C6D67C82906FE

这是主函数入口,看到如下红框,调用的函数的地址都是动态生成的,只能使用OD进行调试了。
1

一路单步步过,没做什么操作,一开始我调试时老是跑飞,不知道病毒心代码的入口在哪,最后,才发现下图红框EnumWindowStationsW函数处是入口。EnumWindowStationsW的作用是为窗口注册触发一个回调函数,这里的回调函数是0x4364AC。
2

我们如果直接在IDA中反汇编0x4364AC处的代码,会发现是乱码,这是由于这段代码是经过加密的。解密操作在EnumWindowStationsW上面的两个函数,先使用VirtualProtect将0x43163C开始的一片内存的属性改为RWX,然后对0x43163C处的数据进行解密。
3

解密算法如下。
4

解密后的0x4364AC函数如下,先是动态获取要调用的函数地址,然后创建一个子进程,为后续注入恶意代码作准备。
5

进程注入方式是基于Windows事务(Transaction)的Process-Doppelganging注入技术。
6

注入的恶意代码为一个PE文件,这段代码也是经过解密才可视的。
7

这是注入后的效果图,新的子进程update3.exe的0x40000处是注入的恶意代码,内存属性为WCX,查看字符串,可以发现有勒索提示信息。
8

最后通过修改EIP的方式来运行该注入的PE文件。
9

只要我一运行ZwResumeThread函数,那个恶意PE的代码就会开始运行。
10

恶意PE运行后,我的主机突然关机了。
11

重新开机后,系统进不了,而是提示在修复系统,其实是病毒在篡改MBR数据。
12

完毕后弹出一个骷髅头的提示框。
13

索要0.1个比特币。
14

我把那个恶意PE的代码dump下来了,结构很简单清晰,调用CreateFileA打开前3磁盘以及U盘的文件句柄。
15

然后向这几个磁盘的引导区写入恶意代码,以达到劫持MBR的目的。
16

篡改完毕后,立即重启电脑,使电脑执行骷髅头代码。
17

猜你喜欢

转载自blog.csdn.net/m0_37552052/article/details/84983199