首页
社区
课程
招聘
[原创]勒索病毒WannaCry深度技术分析——详解传播、感染和危害细节
发表于: 2017-5-16 15:29 22459

[原创]勒索病毒WannaCry深度技术分析——详解传播、感染和危害细节

2017-5-16 15:29
22459

一、综述

       5月12日,全球爆发的勒索病毒WannaCry借助高危漏洞“永恒之蓝”(EternalBlue)在世界范围内爆发,据报道包括美国、英国、中国、俄罗斯、西班牙、意大利、越南等百余个国家均遭受大规模攻击。我国的许多行业机构和大型企业也被攻击,有的单位甚至“全军覆没”,损失之严重为近年来所罕见。
本报告将从传播途径、危害方式和结果、受威胁用户群等角度,逐一厘清这个恶性病毒方方面面的真相,用以帮助大家认识、解决该病毒,防范未来可能出现的变种病毒,同时澄清一些谣传和谎言。

病毒攻击行为和结果

       遭受WannaCry病毒侵害的电脑,其文件将被加密锁死,惯常来说,受害用户支付赎金后可以获得解密密钥,恢复这些文件。但是根据火绒工程师的分析,遭受WannaCry攻击的用户可能会永远失去这些文件。
       WannaCry病毒存在一个致命缺陷,即病毒作者无法明确认定哪些受害者支付了赎金,因此很难给相应的解密密钥,所以用户即使支付了赎金,也未必能顺利获得密钥该电脑系统及文件依旧无法得到恢复。
       至于网上流传的各种“解密方法”,基本上是没用的,请大家切勿听信谎言,以防遭受更多财产损失。一些安全厂商提供的“解密工具”,其实只是“文件恢复工具”,可以恢复一些被删除的文件,但是作用有限。
       因为病毒是生成加密过的用户文件后再删除原始文件,所以存在通过文件恢复类工具恢复原始未加密文件的可能。但是因为病毒对文件系统的修改操作过于频繁,导致被删除的原始文件数据块被覆盖,致使实际恢复效果有限。且随着系统持续运行,恢复类工具恢复数据的可能性会显著降低。

传播途径和攻击方式

       据火绒实验室技术分析追溯发现,该病毒分蠕虫部分及勒索病毒部分,前者用于传播和释放病毒,后者攻击用户加密文件。
       其实,蠕虫病毒是一种常见的计算机病毒。通过网络和电子邮件进行传播,具有自我复制和传播迅速等特点。此次病毒制造者正是利用了前段时间美国国家安全局(NSA) 泄漏的Windows SMB远程漏洞利用工具“永恒之蓝”来进行传播的。
       据悉,蠕虫代码运行后先会连接域名:hxxp://48dK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3W2#2M7h3g2J5k6Y4y4G2k6s2l9&6K9h3k6B7j5i4m8G2M7$3c8X3K9X3S2Y4L8%4y4#2M7X3W2B7k6X3q4W2N6%4u0%4k6i4u0Y4N6$3g2S2i4K6u0W2j5$3!0E0 如果该域名可以成功连接,则直接停止。而如果上述域名无法访问,则会安装病毒服务,在局域网与外网进行传播。
       但是无论这个“神奇开关”是否开启,该病毒都会攻击用户,锁死文件。另外,这个开关程序很容易被病毒制造者去除,因此未来可能出现没有开关的变种病毒。

易受攻击用户群

       目前看来,该病毒的受害者大都是行业机构和大型企业,互联网个人用户受感染报告很少。下面我们从操作系统和网络结构两个角度,来说明容易受到攻击的用户群。
       首先,该病毒只攻击Windows系统的电脑,几乎所有的Windows系统如果没有打补丁,都会被攻击。而Windows Vista、Windows Server 2008、Windows 7、Windows Server 2008 R2、Windows 8.1、Windows Server 2012、Windows Server 2012 R2、Windows Server 2016 版本,用户如果开启了自动更新或安装了对应的更新补丁,可以抵御该病毒。
       Windows10是最安全的,由于其系统是默认开启自动更新的,所以不会受该病毒影响。同时,Unix、Linux、Android等操作系统,也不会受到攻击。
       同时,目前这个病毒通过共享端口传播同时在公网及内网进行传播,直接暴露在公网上且没有安装相应操作系统补丁的计算机有极大风险会被感染,而通过路由拨号的个人和企业用户,则不会受到来自公网的直接攻击。

火绒将持续追杀WannaCry

       目前,对抗“蠕虫”勒索软件攻击的行动仍未结束,在此,火绒安全专家提醒广大用户无需过度担心,“火绒安全软件”已迅速采取措施,完成紧急升级,通过火绒官网下载软件,升级到最新版本即可防御、查杀该病毒。
       自5月12日,WannaCry病毒一出,各机构和用户人心惶惶,**木皆兵,日前更是出现了2.0新变种等耸人听闻的言论。截止到今日,火绒已经收集到的所谓的“WannaCry”最新版本的“变种”,但通过对比分析发现,该“变种“有明显的人为修改痕迹,是好事者在造谣蹭热度。火绒实验室可以负责任地告诉大家,目前还没有出现新版本变种。
       而日后病毒是否会变异出现新“变种”?火绒实验室将持续跟踪新的病毒变种,一旦遇到新变种会随时升级产品。火绒产品默认自动升级,请广大用户放心使用,无需做任何设置。内网用户通过外网下载火绒产品升级到最新版本,然后覆盖安装内网电脑即可。
       此次勒索病毒WannaCry传播速度快,影响范围广,是互联网历史上所罕见的一次“网络安全事故”。对安全厂商而言,是一次极大的考验,“安全”重回主流势在必行,同时也促进了全社会对网络安全意识的提升。

二、样本分析

该病毒分为两个部分:
(1)蠕虫部分,用于病毒传播,并释放出勒索病毒。
(2)勒索病毒部分,加密用户文件索要赎金。

2.1 蠕虫部分详细分析:

       2.1.1 蠕虫代码运行后先会连接域名:hxxp://e3cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3W2#2M7h3g2J5k6Y4y4G2k6s2l9&6K9h3k6B7j5i4m8G2M7$3c8X3K9X3S2Y4L8%4y4#2M7X3W2B7k6X3q4W2N6%4u0%4k6i4u0Y4N6$3g2S2i4K6u0W2j5$3!0E0 如果该域名可以成功连接,则直接退出。

               关于这个“Kill Switch”的存在网络上众说纷纭,我们认为相对可靠的解释是:开关的存在是为了检测安全软件沙箱。这种手法多见于恶意代码混淆器,但是除了看到几个人为修改“Kill Switch”的样本外,该病毒并没有批量生成、混淆的迹象。另外,如果真是为了对抗安全软件沙箱,和以往对抗沙箱的样本比起来,这段代码过于简单,而且出现的位置也过于明显。所以,放置这样一个“低级”的“Kill Switch”具体出于何种原因,恐怕只有恶意代码作者能够解释了。

       2.1.2 如果上述域名无法访问,则会安装病毒服务,服务的二进制文件路径为当前进程文件路径,参数为:-m security,并启动服务。


       2.1.3 释放资源到C:\WINDOWS目录下的tasksche.exe(该程序是勒索病毒),并将其启动。


       2.1.4 蠕虫病毒服务启动后,会利用MS17-010漏洞传播。传播分为两种渠道,一种是局域网传播,另一种是公网传播。如下图所示:

               局域网传播主要代码如下图:

               病毒会根据用户计算机内网IP,生成覆盖整个局域网网段表,然后循环依次尝试攻击。相关代码如下:

               公网传播主要代码如下图,病毒会随机生成IP地址,尝试发送攻击代码。

               SMB漏洞攻击数据包数据,如下图所示:

               Worm病毒的PE文件中包含有两个动态库文件,是攻击模块的Payload,分别是:x86版本的payload,大小0x4060和x64版本的payload,大小0xc8a4。
               两个Payload都是只有资源目录结构没有具体资源的无效PE动态库文件。病毒在攻击前,会构造两块内存,在内存中分别组合Payload和打开Worm病毒自身,凑成有效攻击Payload,代码如下图所示:

               有效攻击Payload模型如下:

               完整的攻击Payload的资源如下图,资源中的第一个DWORD是病毒大小,之后就是病毒本身。

               然后使用MS17-010漏洞,通过APC方式注入动态库到被攻击计算机的Lsass.exe,并执行Payload动态库的导出函数PlayGame,该函数非常简单,功能就是释放资源“W”到被攻击计算机“C:Windows\mssecsvc.exe”,并执行,如下图所示:

               火绒剑监控被攻击计算机的如下:

               被攻击的计算机包含病毒的完整功能,除了会被勒索,还会继续使用MS17-010漏洞进行传播,这种传播呈几何级向外扩张,这也是该病毒短时间内大规模爆发的主要原因。如下图:

               目前,攻击内网IP需要用户计算机直接暴露在公网且没有安装相应操作系统补丁的计算机才会受到影响,因此那些通过路由拨号的个人用户,并不会直接通过公网被攻击。如果企业网络也是通过总路由出口访问公网的,那么企业网络中的电脑也不会受到来自公网的直接攻击。但是,现实中一些机构的网络存在直接连接公网的电脑,且内部网络又类似一个大局域网,因此一旦暴露在公网上的电脑被攻破,就会导致整个局域网存在被感染的风险。

2.2 勒索病毒部分详细分析:

       2.2.1 该程序资源中包含带有密码的压缩文件,使用密码“WNcry@2ol7”解压之后释放出一组文件:

       a)taskdl.exe,删除临时目录下的所有“*.WNCRYT”扩展名的临时文件。
       b)taskse.exe,以任意session运行指定程序。

       c)u.wnry,解密程序,释放后名为@WanaDecryptor@.exe。

       d)b.wnry勒索图片资源。

       e)s.wnry,包含洋葱路由器组件的压缩包。病毒作者将勒索服务器搭建在”暗网”,需要通过tor.exe和服务器进行通信。

       f)c.wnry,洋葱路由器地址信息。

       g)t.wnry,解密后得到加密文件主要逻辑代码。
       h)r.wnry,勒索Q&A。


       2.2.2 通过命令行修改所有文件的权限为完全访问权限。命令行如下:icacls . /grant Everyone:F /T /C /Q

       2.2.3 解密t.wnry文件数据得到含有主要加密逻辑代码的动态库,通过其模拟的LoadLibrary和GetProcAddress函数调用该动态库中的导出函数执行其加密逻辑。
调用勒索动态库代码,如下图所示:

               勒索主逻辑执行,先会导入一个存放在镜像中的RSA公钥,之后调用CryptGenKey生成一组RSA算法的Session key。之后将这组Key的公钥通过CryptExportKey导出,再写入到00000000.pky文件中。将Session key中的私钥用刚导入RSA公钥进行加密,存放在00000000.eky如下图所示:

               如果遍历到的文件扩展名在欲加密的文件扩展名列表中,如下图所示:

               则会将当前文件路径加入到文件操作列表中,在遍历文件结束后一并进行文件操作。代码如下图:

               对于每个需要加密的文件,都会调用CryptGenRadom随机生成AES密钥,之后使用Session Key中的RSA公钥对AES密钥进行加密,存放在加密后的数据文件头中,之后将原始文件数据用该AES密钥进行加密。如下图所示:

               整体加密流程,如下图所示:

               因为病毒是生成加密过的用户文件后再删除原始文件,所以存在通过文件恢复类工具恢复原始未加密文件的可能。但是因为病毒对文件系统的修改操作过于频繁,导致被删除的原始文件数据块被覆盖,致使实际恢复效果有限。且随着系统持续运行,恢复类工具恢复数据的可能性会显著降低。

三、关于“WannaCry”新变种的说明

       早期版本的“WannaCry”病毒存在“Kill Switch”开关,也就是病毒中检测“ae1K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3W2#2M7h3g2J5k6Y4y4G2k6s2l9&6K9h3k6B7j5i4m8G2M7$3c8X3K9X3S2Y4L8%4y4#2M7X3W2B7k6X3q4W2N6%4u0%4k6i4u0Y4N6$3g2S2i4K6u0W2j5$3!0E0”这个网址是否可以访问的代码片段,如果可以访问则不会利用“永恒之蓝”漏洞继续传播。
       现在这个域名已经被注册,这个版本“WannaCry”传播功能等于已经关闭,因为这段代码本身没有加密,所以很可能会被得到改病毒样本的“骇客”修改,放开开关,使病毒继续传播。
       截止到今日,火绒已经收集到的所谓“WannaCry”最新版本的“变种”,正如我们推测的一样,网上两个“热炒"变种, SHA256分别为:

       32f24601153be0885f11d62e0a8a2f0280a2034fc981d8184180c5d3b1b9e8cf
       c8d816410ebfb134ee14d287a34cea9d34d627a2c5e16234ab726cf9fde47ec6

       和早期的“WannaCry”相比
       SHA256:
       24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c
       有明显人为修改痕迹,如下图所示:

       这个样本仅仅是16进制修改了两个字节,让"Kill Switch"失效,这个修改不会影响火绒的检测。
另外一个样本除了修改了"Kill Switch"域名,还修改了病毒携带勒索模块。经过测试勒索代码已经被修改坏了,无法运行。如下图:

       除了以上两个样本,火绒还截获另一个人为修改的” WannaCry “样本,同样被修改的不能运行,火绒依然可以检测。SHA256如下:
99c0d50b088df94cb0b150a203de6433cb97d4f8fd3b106ce442757c5faa35c4
截止到本篇分析完成火绒还没截获所谓关闭“Kill Switch”开关的病毒样本。

四、附录

样本SHA256

Worm
24d004a104d4d54034dbcffc2a4b19a11f39008a575aa614ea04703480b1022c
32f24601153be0885f11d62e0a8a2f0280a2034fc981d8184180c5d3b1b9e8cf
C8d816410ebfb134ee14d287a34cea9d34d627a2c5e16234ab726cf9fde47ec6
Ransom
ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa
4a468603fdcb7a2eb5770705898cf9ef37aade532a7964642ecd705a74794b79
2ca2d550e603d74dedda03156023135b38da3630cb014e3d00b1263358c5f00d
e2d1e34c79295e1163481b3683633d031cab9e086b9ae2ac5e30b08def1b0b47
ec9d3423338d3a0bfccacaf685366cfb8a9ece8dedbd08e8a3d6446a85019d3a
f5cbff5c100866dd744dcbb68ee65e711f86c257dfcc41790a8f63759220881e
f7c7b5e4b051ea5bd0017803f40af13bed224c4b0fd60b890b6784df5bd63494
88be9ee3ce0f85086aec1f2f8409247e8ab4a2a7c8a07af851f8df9814adeee5
5d26835be2cf4f08f2beeff301c06d05035d0a9ec3afacc71dff22813595c0b9
e989935bb173c239a2b3c855161f56de7c24c4e7a79351d3a457dbf082b84d7b
4d67e6c708062e970d020413e460143ed92bebd622e4b8efd6d6a9fdcd07bda8
eeb9cd6a1c4b3949b2ff3134a77d6736b35977f951b9c7c911483b5caeb1c1fb

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 1
支持
分享
打赏 + 2.00雪花
打赏次数 2 雪花 + 2.00
 
赞赏  CCkicker   +1.00 2017/06/19
赞赏  土豆粉   +1.00 2017/05/16
最新回复 (26)
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
求文字对应样本的下载链接
2017-5-16 16:06
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我需要永恒之蓝的附件
2017-5-16 17:12
0
雪    币: 1
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我也需要!!!
2017-5-16 17:18
0
雪    币: 56063
活跃值: (21210)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
5
帖子我从  web安全版块,移到  软件调试逆向版块。这个勒索病毒算二进制逆向领域。
2017-5-16 17:25
0
雪    币: 57
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我就想知道病毒是怎么通过路由器防火墙进入内网的,现在家庭大部分安装路由器,而且宽带运营商屏蔽了445端口,这病毒是不是还通过其他漏洞传播啊!
2017-5-16 17:44
0
雪    币: 20
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
病毒内部的WriteFile不会触发杀软的主防吗?
2017-5-16 18:25
0
雪    币: 4975
活跃值: (6189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
膜拜!
2017-5-16 19:59
0
雪    币: 2575
活跃值: (502)
能力值: ( LV6,RANK:85 )
在线值:
发帖
回帖
粉丝
9
介绍一下病毒是怎么通过比特币付款来验证己付?
2017-5-16 21:37
0
雪    币: 7321
活跃值: (4632)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
感谢分享
2017-5-16 22:31
0
雪    币: 1753
活跃值: (975)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
11
比我在公司·发的分析··
详细N倍~!!
佩服··~!!!
2017-5-17 10:22
0
雪    币: 21532
活跃值: (4635)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
不错,学习了,谢谢分享。
2017-5-17 10:55
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kit
13

病毒利用漏洞获取了系统最高权限吗?注入动态库到被攻击计算机的Lsass.exe,应该是的

2017-5-17 13:00
0
雪    币: 199
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
膜拜大神!  是不是这个病毒感染的方式是先获得网段主机的ip地址表,然后逐个尝试感染(无论主机是否在线都会尝试一次),不是靠广播而是靠单播发送病毒文件的么?
2017-5-17 13:13
0
雪    币: 616
活跃值: (6592)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
15
xiaohuopao 我就想知道病毒是怎么通过路由器防火墙进入内网的,现在家庭大部分安装路由器,而且宽带运营商屏蔽了445端口,这病毒是不是还通过其他漏洞传播啊!
通过路由器联网正好可以阻挡病毒,病毒集中暴发的学校医院反而是内网直接暴露在外网中。
2017-5-17 13:25
0
雪    币: 616
活跃值: (6592)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
16
wyfe 介绍一下病毒是怎么通过比特币付款来验证己付?
没法验证,病毒限定死三个固定账户,所以病毒和病毒制作者没法验证,也无法解密文件。
2017-5-17 13:26
0
雪    币: 616
活跃值: (6592)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
17
kanxue 帖子我从 web安全版块,移到 软件调试逆向版块。这个勒索病毒算二进制逆向领域。
谢谢您
2017-5-17 13:31
0
雪    币: 616
活跃值: (6592)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
18
callwhl 病毒内部的WriteFile不会触发杀软的主防吗?
写文件是个很常见的操作,如果没有设置对应的文件防护规则,不是每个文件的写入都会被杀软监控。
2017-5-17 14:06
0
雪    币: 616
活跃值: (6592)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
19
kit 病毒利用漏洞获取了系统最高权限吗?注入动态库到被攻击计算机的Lsass.exe,应该是的
该病毒针对局域网内的IP建一个表,然后为每个IP依次创建线程,尝试连接445端口,测试是否存在漏洞,条件满足后发送组合好的payload进行攻击,payload内容是一个动态库,因为泄露的永恒之蓝漏洞要求payload是一个动态库,并且将该动态库以APC方式注入远程lsass进程(可选),lsass是system权限。漏洞程序会调用注入动态的导出函数,这个病毒的导出函数的作用就是释放病毒自身到windows目录下并执行。
2017-5-17 14:06
0
雪    币: 616
活跃值: (6592)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
20
黑芒楼 膜拜大神! 是不是这个病毒感染的方式是先获得网段主机的ip地址表,然后逐个尝试感染(无论主机是否在线都会尝试一次),不是靠广播而是靠单播发送病毒文件的么?
该病毒针对局域网内的IP建一个表,然后为每个IP依次创建线程,尝试连接445端口,测试是否存在漏洞,条件满足后发送组合好的payload进行攻击,payload内容是一个动态库,因为泄露的永恒之蓝漏洞要求payload是一个动态库,并且将该动态库以APC方式注入远程lsass进程(可选),lsass是system权限。漏洞程序会调用注入动态的导出函数,这个病毒的导出函数的作用就是释放病毒自身到windows目录下并执。
2017-5-17 14:07
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
请问生成的  .pky  和  .eky  文件是写入到那个路径?
2017-5-17 18:01
0
雪    币: 2248
活跃值: (498)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
22
国内AV一股清流
2017-5-18 19:17
0
雪    币: 7818
活跃值: (2869)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
23
为什么我IDA加载此病毒的时候,我winmain没有显示开关域名呢?
2017-5-19 00:06
0
雪    币: 117
活跃值: (3562)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
中文的講法,只要有一個人付過錢,拿到過PRIVATE  KEY並公開,則該WORM就沒用了,不是嗎?
2017-5-19 07:27
0
雪    币: 117
活跃值: (3562)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
另外,SESSION  PRIVATE  KEY,在SHOW出OOOPS  後,是否還在MEMORY中,若否則結束。
若是,則是否能透過SEARCH和INJECT的方式去驅動,使其執行解密?
2017-5-19 07:32
0
游客
登录 | 注册 方可回帖
返回