【病毒分析】WanaCrypt0r勒索病毒分析

http://p2.qhimg.com/t01fcc9286aadf1697c.png

作者:MerJerson

预估稿费:700RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


传送门

【权威报告】WanaCrypt0r勒索蠕虫完全分析报告

【安全资讯】遭遇WannaCry(想哭)蠕虫怎么办?防御百科帮你忙!


0x1 前言

近日,外媒和多家安全公司命名的“WanaCrypt0r”勒索病毒,席卷了全国,企事业单位以及教育网成为重灾区。该病毒利用NSA泄露“永恒之蓝”黑客武器攻击windows系统的445端口,如果没有安装MS17-010相应的补丁,用户不需要任何操作,只要开机上网,病毒就可以感染到本地,加密文件,进行勒索。

此次大规模爆出的病毒为典型的蠕虫类勒索病毒,通过网络进行传播。接下来我们针对流量,对病毒行为进行分析。


0x2 实验环境

操作系统:Windows 7 旗舰版 Services Pack 1

Wireshark 1.12.5

VMware Workstation 12 

Process Monitor


0x3 病毒触发时流量分析

此次拿到的病毒样本为较早的版本,Twitter上自称@malwaretechblog的英国研究员发现了隐藏的一个“触发开关”。蠕虫启动时会连接固定的url:

http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com 

如果连接成功则退出程序,连接不成功将继续攻击。

所以最开始我们先对此进行验证。

虚拟机在联网的状态下触发病毒,等待几分钟后并没有发现异常,此时打开wireshark查看期间的流量信息。

请求域名时会向DNS服务器进行解析,所以我们先过滤DNS流量。

http://p0.qhimg.com/t01fa8fa4cce0b6b826.png

很明显,期间有一条DNS请求被捕获,直接查看返回包,回执域名的ip为 54.153.0.145  (此IP为DNS解析到的,不固定,先前回执的还有144.217.254.3和144.217.74.156)

得到IP,那么我们过滤看一下,病毒对这个域名到底有什么数据交换,过滤144.217.254.3,得到结果:

http://p3.qhimg.com/t01af7d4142f674698a.png

请求过程很简短,三次握手建立连接后进行GET请求,得到返回数据。之后RST强制断掉了连接。

该域名是那名英国安全研究员之后注册的,有趣的是,GET得到的数据:sinkhole.tech – where the bots party hard and the researchers harder.

http://p7.qhimg.com/t019400ff685a9d2576.png

恢复快照,回滚到原始环境,之后我们断网状态下,再次运行病毒。

http://p3.qhimg.com/t01abcfa605a3d22206.png

很成功的触发了病毒。此时我们再去查看期间的流量信息:

先过滤DNS,查看有无域名访问请求:

http://p4.qhimg.com/t01dba1654e349ea6da.png

同样是有的,只不过此时断开网络,没有DNS解析回执信息而已。

之后我们查看全部流量,发现大量的异常数据包:

http://p0.qhimg.com/t018563e3e7a76c417c.png

发现了两种异常流量,第一种基于ARP的主机发现,以及针对445端口的TCP SYN式扫描。根据情报,我们知道,WanaCrypt0r是利用的“永恒之蓝”黑客武器。蠕虫病毒首先周期性的通过ARP探测本网段活跃的主机,与此同时,扫描一些地址的445端口,如果扫描到的主机开启445端口,则病毒会尝试进行植入。

对流量进行统计,针对TCP活动进行观察:

http://p5.qhimg.com/t015542a9d4a4c3c291.png

针对大量的外网IP进行455端口探测。

http://p5.qhimg.com/t016d24b6b10993d2d7.png

http://p7.qhimg.com/t0105d438e6f6b3892c.png

返回快照,多次触发漏洞发现,探测外部ip的地址每次都不尽相同,应该是蠕虫为了扩大传播范围,不仅扫描当前网段进行攻击,而且还随机扫描公网主机进行传播。


0x5 病毒传播时流量分析

已经被感染的主机A的ip为192.168.43.101,开始未被感染的主机B的ip为192.168.43.32。两台机子开启后,监视之间流量,可以发现:

http://p0.qhimg.com/t01e0c5c1fede68fc9d.png

主机A对主机B进行了455的端口探测,此时主机B对主机A有一个SYN + ACK 数据包的回复。之后主机A建立连接,发送SMB数据包进行攻击,值得注意的是,在对话过程中,有一个包为:

http://p2.qhimg.com/t01ffe892b3185fcfab.png

对比之前Eternalblue工具使用的MS17-010 SMB数据包:

http://p4.qhimg.com/t0168718bbdf67efa78.png

基本可以断定,此次蠕虫使用的攻击代码是Eternalblue工具使用的攻击包。


0x6 病毒行为分析

在被攻击机中,创建一个“qweasd”的文件夹,其中放置一些jpg格式的图片,便于之后我们分析加密行为,同时开启Process Monitor进行对进程行为的监视。

http://p2.qhimg.com/t0177e1b1ed12a1c537.png

之后十分顺利的被感染了。

http://p3.qhimg.com/t0138ecfa84b086a0a2.png

查看Process Monitor的记录,我们知道病毒执行时的文件为mssecsvc.exe,所以直接搜索带有mssecsvc.exe的操作行为:

http://p4.qhimg.com/t011eef3098cc608537.png

最先找到三条,正式将mssecsvc.exe写入本地的过程,目录为C:Windows,并且之后,mssecsvc.exe创建了名为tasksche.exe的可执行文件,并在稍后启动了他。

http://p0.qhimg.com/t0168d0a9157ed97a7c.png

先前我们在桌面创建一个名为“qweasd”的文件夹,此时里面的文件已经被加密了,在Process Monitor搜索“qweasd”相关的操作:

http://p6.qhimg.com/t01422ce173214cb74c.png

此时我们发现tasksche.exe对“qweasd”文件夹进行了大量的查询操作,tasksche.exe正是之前mssecsvc.exe释放出来的应用, tasksche.exe之后进行了大量的文件操作,那么可以推断tasksche.exe应该和病毒的加密部分有关系。

http://p3.qhimg.com/t012c14e8419695388f.png

病毒遍历了“qweasd”文件夹,得到了其下的文件名,之后便创建了QQWWEE1 (1).jpg.WNCRY的加密文件。之后QQWWEE1 (1).jpg和QQWWEE1 (1).jpg.WNCRY频繁的读写操作,应该是加密的过程。但是之后有一条操作值得我们注意:

http://p0.qhimg.com/t014ba6c977da080951.png

病毒对原始文件有一个写入操作,长度为1024。此时病毒就破坏了原始文件的完整性,具体行为,之后我们在逆向中查看。


0x7 病毒逆向分析

既然病毒每次运行时都会请求固定的域名,那么这个域名一定是被硬编码到程序里的,所以直接Search字符串:

http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com 

得到的结果为:

http://p5.qhimg.com/t0172dcff5c01bdf873.png

将aHttpWww_iuqerf的内容的偏移地址回送给esi,此时aHttpWww_iuqerf中存储的正是域名,F5查看反汇编代码。

http://p4.qhimg.com/t018b2e7834e65a7264.png

函数名WinMain,域名被InternetOpenUrlA函数调用,程序根据v5值进行下一步操作,InternetOpenUrlA返回为真,结束程序,否则,进行下一步操作。这正验证了前面的“秘密开关“。

此时打开Graphs,查看当前函数所在的结构:

http://p9.qhimg.com/t0133605bf0da0f2e6f.png

在sub_408090中的sub_408000调用RegisterServiceCtrlHandlerA函数,来注册一个功能服务,进入相应查看:

http://p7.qhimg.com/t012470633096272002.png

发现是创建一个名为mssecsvc2.0的服务。

从sub_408090 → sub_408000 下发现了sub_407BD0函数,反汇编为:

http://p1.qhimg.com/t016c1314a26e15f57c.png

根据代码,此函数开了两个线程在一直跑什么东西,进入查看后发现

http://p8.qhimg.com/t01f4b0339988aaffb9.png

v6, v19, v10, v11为sub_407660函数生成的随机数,赋值给Dest,经 inet_addr转化为ip地址,传入sub_407480函数。

http://p8.qhimg.com/t0174e584a26fbaffba.png

进入sub_407480,发现

  *(_WORD *)&name.sa_data[0] = htons(0x1BDu)

(445的16进制为1BD)所以,此处应为病毒随机对外网ip445端口进行扫描。

http://p2.qhimg.com/t01cab7e45efb4fa854.png

追溯sub_407480函数,发现sub_4076B0有调用,当sub_407480返回为真,则证明扫描到的主机的455端口开放,病毒会有一系列操作。

sub_407540下的多个函数下有send行为,接着进行追溯。

http://p0.qhimg.com/t017b98449a90b4bb71.png

跳转到byte_42e544,发现此处为伪造数据的地址,根据之前抓包分析的流量:

http://p0.qhimg.com/t0185d61a9388c075d9.png

在IDA中搜索,得到playload存储的地址为:

http://p4.qhimg.com/t014ea48adf53431eaf.png

名为byte_42E54。

在send行为中查询byte_42E54的调用情况

http://p8.qhimg.com/t016b86664713e96797.png

发现在sub_401B70处有调用,至此,对其他主机进行漏洞攻击感染分析到此结束。

在病毒行为分析时,我们注意到进行加密的模块是由mssecsvc.exe释放的tasksche.exe执行的,所以在IDA中直接搜索“tasksche.exe ”

http://p9.qhimg.com/t01046a92c145199f75.png

http://p0.qhimg.com/t014a97aab9cebb0d41.png

发现了生成文件的行为,目录是在C:Windows下。 

之前我们通过Process Monitor发现,病毒会有遍历文件及文件夹频繁的操作,所以在逆向的时候注意下相应的API:

http://p0.qhimg.com/t0165e8cb3ed7055bb5.png

感染的时候我们发现,并不是所有的文件都会进行加密,比如dll文件就没有被加密。此时猜测,病毒只是加密特定后缀的文件,可能是白名单模式,也可能是黑名单模式,在IDA中搜索dll,如果是白名单模式,dll应该被硬编码到病毒中的。但没有查询到相应代码,则病毒可能采取的是黑名单模式,png图片被加密了,那么我们搜索png:

http://p7.qhimg.com/t01b81dc1f71153b811.png

确实如此,向上查看,我们发现,这些被加密的后缀变量名为:

http://p2.qhimg.com/t014337a91c74a749b9.png

同时在sub_4010FD中调用了,调入其中果然发现了过滤行为:

http://p3.qhimg.com/t0167cce5791bae871e.png

http://p2.qhimg.com/t01f588979b1fce6ac1.png

木马随机生成一个256字节的密钥,并拷贝一份用RSA2048加密,RSA公钥内置于程序中。(函数sub_4019E1)

http://p6.qhimg.com/t01363efdb731deaff3.png

Aes加密过程(函数sub_402A76)

http://p6.qhimg.com/t01235bba328e3b2340.png

http://p5.qhimg.com/t01fe4c5a9a5193c678.png

Rsa加密过程(函数sub_403A77)

http://p2.qhimg.com/t019c07a7519b4cbfb1.png

在sudb_4041A6函数中调用了sub_4019E1、sub_402A76、sub_403A77,所以sub_403A77是密文写入文件函数。

以上就是文件加密过程分析

文件解密:

http://p2.qhimg.com/t01600f3ad4831595ab.png

Sub_401A45为获取密匙

http://p3.qhimg.com/t014e0465714ecaeb1c.png

Sub_40170A函数为解密函数


0x5 总结

初次分析病毒,开始并没有思路,拿到样本直接逆向很头痛。因为该病毒为典型的Worm病毒,我们尝试先去分析病毒流量,进程操作等行为,之后针对性的一层层去逆向。从外往里慢慢剖析,文中记录了大量的思路,分享给大家。刚做逆向,还请各位看官指出不足。


传送门


【权威报告】WanaCrypt0r勒索蠕虫完全分析报告

【安全资讯】遭遇WannaCry(想哭)蠕虫怎么办?防御百科帮你忙!


(完)