当前位置:安全客 >> 知识详情

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

2017-05-15 10:56:18 阅读:269894次 收藏 来源: 安全客 作者:360追日团队

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

360追日团队官网:http://zhuiri.360.cn/

报告发布日期:2017-5-13

0x1 前言


360互联网安全中心近日发现全球多个国家和地区的机构及个人电脑遭受到了一款新型勒索软件攻击,并于5月12日国内率先发布紧急预警,外媒和多家安全公司将该病毒命名为“WanaCrypt0r”(直译:“想哭勒索蠕虫”),常规的勒索病毒是一种趋利明显的恶意程序,它会使用加密算法加密受害者电脑内的重要文件,向受害者勒索赎金,除非受害者交出勒索赎金,否则加密文件无法被恢复,而新的“想哭勒索蠕虫”尤其致命,它利用了窃取自美国国家安全局的黑客工具EternalBlue(直译:“永恒之蓝”)实现了全球范围内的快速传播,在短时间内造成了巨大损失。360追日团队对“想哭勒索蠕虫”国内首家进行了完全的技术分析,帮助大家深入了解此次攻击!


0x2 抽样分析样本信息


MD5: DB349B97C37D22F5EA1D1841E3C89EB4

文件大小: 3,723,264

影响面:除Windows 10外,所有未打MS-17-010补丁的Windows系统都可能被攻击

功能:   释放加密程序,使用RSA+AES加密算法对电脑文件进行加密勒索,通过MS17-010漏洞实现自身的快速感染和扩散。 


0x03 蠕虫的攻击流程


该蠕虫病毒使用了ms17-010漏洞进行了传播,一旦某台电脑中招,相邻的存在漏洞的网络主机都会被其主动攻击,整个网络都可能被感染该蠕虫病毒,受害感染主机数量最终将呈几何级的增长。其完整攻击流程如下

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


0x04 蠕虫启动安装逻辑分析


1.蠕虫启动时将连接一个不存在的url: http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com 

a)如果连接成功,则退出程序

b)连接失败则继续攻击

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

这是一个比较奇怪的启动逻辑,起初我们猜测这个启动逻辑是蠕虫作者是为了控制蠕虫活跃度的云开关,蠕虫作者可能怕被追踪而放弃注册这个域名。

另外一种可能是蠕虫作者有丰富的病毒检测对抗经验,目前的沙箱分为在线检测和离线检测两种,要做"离线病毒分析"会对沙箱环境做很多处理,在离线的情况下为了保证病毒的网络连通,可能会加入Fake DNS Responses(欺骗DNS响应)的技术,作者使用这个开关来识别沙箱环境是否有网络欺骗行为,保护蠕虫不被沙箱进一步的分析检测发现。

2.接下来蠕虫开始判断参数个数,小于2时,进入安装流程;大于等于2时,进入服务流程.

a)安装流程

i.创建服务,服务名称: mssecsvc2.0

参数为当前程序路径 –m security

ii.释放并启动exe程序

移动当前 C:\WINDOWS\tasksche.exe到 C:\WINDOWS\qeriuwjhrf

释放自身的1831资源(MD5: 84C82835A5D21BBCF75A61706D8AB549),到C:\WINDOWS\tasksche.exe,并以 /i参数启动

b)服务流程

i.服务函数中执行感染功能,执行完毕后等待24小时退出.

ii.感染功能

初始化网络和加密库,初始化payload dll内存.

a)Payload包含2个版本,x86和x64

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

b)功能为释放资源到c:\windows\mssecsvc.exe并执行

启动线程,在循环中向局域网的随机ip发送SMB漏洞利用代码

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

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


0x05 蠕虫利用漏洞确认


通过对其中的发送的SMB包进行分析,我们发现其使用漏洞攻击代码和https://github.com/rapid7/metasploit-framework 近乎一致,为Eternalblue工具使用的攻击包。

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

蠕虫 SMB数据包:

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

Eternalblue工具使用的MS17-010 SMB数据包:

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

https://github.com/RiskSense-Ops/MS17-010/tree/master/exploits/eternalblue/orig_shellcode 

文件内容在DB349B97C37D22F5EA1D1841E3C89EB4中出现

orig_shellcode文件内容: 

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

DB349B97C37D22F5EA1D1841E3C89EB4 文件:

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


0x06 蠕虫释放文件分析


蠕虫成功启动后将开始释放文件,流程如下:

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

释放文件与功能列表,如下:

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


0x07 关键勒索加密过程分析


蠕虫会释放一个加密模块到内存,直接在内存加载该DLL。DLL导出一个函数TaskStart用于启动整个加密的流程。程序动态获取了文件系统和加密相关的API函数,以此来躲避静态查杀。

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

整个加密过程采用RSA+AES的方式完成,其中RSA加密过程使用了微软的CryptAPI,AES代码静态编译到dll。加密流程如下图所示。

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

使用的密钥概述:

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

目前加密的文件后缀名列表:

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

值得注意的是,在加密过程中,程序会随机选取一部分文件使用内置的RSA公钥来进行加密,这里的目的是解密程序提供的免费解密部分文件功能。

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

能免费解密的文件路径在文件f.wnry中

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


0x08 蠕虫赎金解密过程分析


首先,解密程序通过释放的taskhsvc.exe向服务器查询付款信息,若用户已经支付过,则将eky文件发送给作者,作者解密后获得dky文件,这就是解密之后的Key

解密流程与加密流程相反,解密程序将从服务器获取的dky文件中导入Key

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

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

可以看到,当不存在dky文件名的时候,使用的是内置的Key,此时是用来解密免费解密的文件使用的。

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

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

之后解密程序从文件头读取加密的数据,使用导入的Key调用函数CryptDecrypt解密,解密出的数据作为AES的Key再次解密得到原文件。

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


总结


该蠕虫在勒索类病毒中全球首例使用了远程高危漏洞进行自我传播复制,危害不小于冲击波和震荡波蠕虫,并且该敲诈者在文件加密方面的编程较为规范,流程符合密码学标准,因此在作者不公开私钥的情况下,很难通过其他手段对勒索文件进行解密,同时微软已对停止安全更新的xp和2003操作系统紧急发布了漏洞补丁,请大家通过更新MS17-010漏洞补丁来及时防御蠕虫攻击。


360追日团队


360 追日团队(Helios Team)是360公司高级威胁研究团队,从事APT攻击发现与追踪、互联网安全事件应急响应、黑客产业链挖掘和研究等工作。团队成立于2014年12月,通过整合360公司海量安全大数据,实现了威胁情报快速关联溯源,独家首次发现并追踪了三十余个APT组织及黑客团伙,大大拓宽了国内关于黑客产业的研究视野,填补了国内APT研究的空白,并为大量企业和政府机构提供安全威胁评估及解决方案输出。

已公开APT相关研究成果

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


联系方式

360追日团队官网:http://zhuiri.360.cn/



邮箱:360zhuiri@360.cn


微信公众号:360追日团队

扫描右侧二维码关微信公众号

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


本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/3853.html

参与讨论,请先 | 注册 | 匿名评论
发布
用户评论
nslookup2006 2017-06-01 10:36:09
回复 |  点赞

英国小伙22岁Marcus Hutchins注册的(注:高中学历), 周五发作,周六就注册了,之后再被绑票的都是局域网的机器无法访问外网的。国外媒体报道此病毒配图全部引用他们公司网站Malware Tech病毒访问热点地图(因为每个中毒机器都访问此网址,根据IP显示过去1分钟到24小时的访问量和地理图);另外全部称他为Hero;不知为什么国内没有报。 https://intel.malwaretech.com/botnet/wcrypt/?t=24h&bid=all ,到现在24小时内还有访问量; 中国人就当不了英雄,域名要实名认证,网站要实名认证,弄完该绑的都绑完了

吃瓜群众 2017-05-17 13:08:22
回复 |  点赞

感觉免费解密部分用的应该是另一个独立的AESkey,否则可以在本地截获解密钥

myth 2017-05-16 22:40:18
回复 |  点赞

两种算法加密速度差别非常大。但我觉得作者使用的第二对rsa密钥完全多余。另外这份分析报告关于免费解密的部分说的也含糊不清。

Helen 2017-05-16 19:58:56
回复 |  点赞

为什么不用受害者的公钥直接加密文件, 而是要多一步AES KEY?

Helen 2017-05-16 19:58:56
回复 |  点赞

为什么不用受害者的公钥直接加密文件, 而是要多一步AES KEY?

Ping溢出大神 2017-05-16 15:11:03
回复 |  点赞

有人注册啊,一个英国人

随便一个 2017-05-16 13:56:23
回复 |  点赞

蠕虫启动时将连接一个不存在的url: http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com a)如果连接成功,则退出程序 b)连接失败则继续攻击 为什么没有人去注册这个url呢?那样不就感染不了了吗?

随便一个 2017-05-16 13:56:23
回复 |  点赞

蠕虫启动时将连接一个不存在的url: http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com a)如果连接成功,则退出程序 b)连接失败则继续攻击 为什么没有人去注册这个url呢?那样不就感染不了了吗?

神奇小子 2017-05-16 11:10:28
回复 |  点赞

我知道了,如果这样的话,那么解密就必须要从服务器传回作者的私钥了,那肯定不行

Anonymous 2017-05-16 11:10:14
回复 |  点赞

我知道了,如果这样的话,那么解密就必须要从服务器传回作者的私钥了,那肯定不行

神奇小子 2017-05-16 11:07:30
回复 |  点赞

还有个问题,为什么作者要有两个阶段的加解密,即为每个受害者生成一对公钥私钥,然后用私钥加密(aes key), 为什么不只用作者的公钥加密aes key呢?

神奇小子 2017-05-16 11:09:47
回复 |  点赞

我知道了,如果这样的话,那么解密就必须要从服务器传回作者的私钥了,那肯定不行

神奇小子 2017-05-16 11:07:30
回复 |  点赞

还有个问题,为什么作者要有两个阶段的加解密,即为每个受害者生成一对公钥私钥,然后用私钥加密(aes key), 为什么不只用作者的公钥加密aes key呢?

神奇小子 2017-05-16 11:07:30
回复 |  点赞

还有个问题,为什么作者要有两个阶段的加解密,即为每个受害者生成一对公钥私钥,然后用私钥加密(aes key), 为什么不只用作者的公钥加密aes key呢?

查看更多