Petya及Notpetya的核心差异分析首席安全官频道

这段时间针对恶意软件NotPetya的分析文章已经出了很多了,首席安全官频道这篇文章的内容相当于只是对目前已存在内容的一次补充,而本文所要讨论的重点就是Petya和Notpetya这两款新型勒索软件之间的核心差异。

在几个月之前,我曾发表过一篇关于“Petya感染MBR(主引导记录)”的文章。在那篇文章中,我解释了勒索软件感染计算机启动过程的方法,以及它是如何执行自己的内核代码的。而在今天这篇文章中,我将给大家介绍这两款恶意软件之间所存在的关键技术差异。

差别#1:XOR密钥

Petya和NotPetya都会读取MBR,并使用一个简单的XOR密钥来对MBR进行加密。但两者之间的区别就在于,Petya使用0×37来作为加密密钥,而NotPetya使用的是0×07。

Petya的加密密钥:

1.png

1.png

NotPetya的加密密钥:

2.png

2.png

差别#2:迷你内核的扇区空间

Petya运行的是迷你内核代码,而并非原始内核代码。这些代码负责处理整个加密过程、伪造CHKDSK信息、以及显示骷髅头和勒索信息。NotPetya的迷你内核负责的事情跟Petya差不多,只不过它不负责显示那个闪烁的骷髅头而已。

除此之外,Petya的迷你内核代码从扇区0×22开始,而NotPetya的却是从扇区0×02(紧邻MBR扇区)开始。

差别#3:重启风格

在向受感染磁盘中写入了MBR和迷你内核代码之后,Petya和NotPetya都会通过让受感染系统重启来激活恶意软件的第二个感染阶段。

Petya在初始化重启过程时使用的是NtRaiseHardErrorAPI,而NotPetya使用了CreateProcessW API来发送命令“shutdown.exe /r /f”,并通过这行命令实现了计划重启。

Petya的重启过程:

 

3.png

3.png

NotPetya的重启过程:

4.png

4.png

差别#4:显示骷髅头

Petya在伪造CHKDSK的操作完成之后便会在目标用户的屏幕上显示一个红色的骷髅头。NotPetya在完成了磁盘加密操作之后同样会显示伪造的CHKDSK信息,但在此之后并不会显示骷髅图案。

下图显示的是Petya的虚拟内存截图,其中包含有伪造CHKDSK的字符串信息、勒索信息、以及扭曲的骷髅头图形。

Petya的虚拟内存截图:

5.png

5.png

下图显示的是NotPetya的虚拟内存截图,其中包含有用于伪造CHKDSK的数据以及相关的勒索信息,而原本应该包含骷髅头图案的那部分空间却是空白的。

Petya的虚拟内存截图:

6.png

6.png

差别#5:勒索信息

Petya和NotPetya的勒索信息是完全不同的,具体请看下面给出的截图。

Petya的勒索信息:

7.png

7.png

NotPetya的勒索信息:

8.png

8.png

总结

虽然Petya和NotPetya有这么多的不同之处,但从其他角度来看,它们两个也有很多相似的地方。比如说在破坏性方面,它们两个的杀伤力都是非常强的,而且两者都会通过重写MBR来使受感染设备瘫痪。

对付这种类型的恶意软件,最好的方法就是将你的重要文件进行离线存储。需要注意的是,无论你不小心感染了这两种勒索软件的哪一种,你都不要轻易地按照攻击者的要求支付赎金,因为就算你支付了赎金也没人能够保证你能够拿回那些属于你的文件。

IoC

Petya:

MD5: af2379cc4d607a45ac44d62135fb7015
Detection: W32/Petr.A!tr

NotPetya:

MD5: 71b6a493388e7d0b40c83ce903bc6b04
Detection: W32/Petya.EOB!tr 

* 参考来源:fortinet, FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

2017-07-16 10:14 阅读:405