Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

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

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

2017-05-16 12:02:04

阅读:1036次
点赞(0)
收藏
来源: 安全客





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

作者:MerJerson





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

作者: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流量。


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

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

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


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

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

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


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

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


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

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

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


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

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

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


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

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

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


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

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


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

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

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


0x5 病毒传播时流量分析

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


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

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


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

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


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

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


0x6 病毒行为分析

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


0x7 病毒逆向分析

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

http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com

得到的结果为:


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

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


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

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

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


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

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


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

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

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


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

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


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

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


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

进入sub_407480,发现

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

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


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

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

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


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

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


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

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


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

名为byte_42E54。

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


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

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

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


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

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

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

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


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

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


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

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


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

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


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

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

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


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

Aes加密过程(函数sub_402A76)


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

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

Rsa加密过程(函数sub_403A77)


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

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

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

文件解密:


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

Sub_401A45为获取密匙


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

Sub_40170A函数为解密函数


0x5 总结

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


传送门

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

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



tail


【病毒分析】WanaCrypt0r勒索病毒分析
【病毒分析】WanaCrypt0r勒索病毒分析
本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/3857.html

Viewing all articles
Browse latest Browse all 12749

Trending Articles