【病毒分析】WanaCry勒索蠕虫分析报告

回顾

首先再欣赏一下那个经典的贴心的专业的勒索界面

当时一个同学的同学中勒索,第一时间给我打电话问我怎么办,我看到这图,心里拔凉,当时就猜想肯定是这Shadow Brokers晒出的工具的锅,感觉这下肯定又得蔓延一波,却没想到影响竟然如此严重!哈哈其实微软早就放出了补丁,只是人们的安全意识实在是不敢恭维。。这件事再次给我们敲响了警钟!!就像大大说的!“没有网络安全,就没有国家安全!”

再回顾整个事件:

5月12日,英国、意大利、俄罗斯等全球多个国家爆发勒索病毒攻击,中国的校园网也未能幸免,部分高校电脑被感染,有学生毕业论文被病毒加密,只有支付高额赎金才能恢复。

勒索者源头来自暗网,攻击具备兼容性、多语言支持,多个行业受到影响,国内的ATM机、火车站、自助终端、邮政、医院、政府办事终端、视频监控都可能遭受攻击。

下面是这次病毒的影响范围:

中国受到的攻击最严重,而全国的教育网成为了重灾区,主要就是因为高校很多机器还在运行着比较老的系统,并且445端口还没关闭,让蠕虫病毒有了可乘之机。这下让很多面临毕业刚刚写好毕业论文的高校学子直接哭晕在厕所。。。同时也告诉我们一件事,那就是即使备份自己的而重要文件是多么的重要啊!

但我们看到关于这个病毒的相关报道的时候,有两个词出现频率很高,445端口,SMB。这两个名词到底什么意思呢,下面简单介绍一下:
445端口有什么用?
445端口是一个毁誉参半的端口,有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉!
SMB是什么?
服务器信息块(SMB)是一个网络文件共享协议,它允许应用程序和终端用户从远端的文件服务器访问文件资源。微软最初将SMB定位为Windows Server 2008和Vista系统中通用互联网文件系统(CIFS)的后续产品。最新版本的SMB 3.0在Windows Server 2012操作系统中出现,并且与Windows 8客户端共同工作。
接下来,我们看一下病毒分析报告。

抽样分析样本信息

MD5: DB349B97C37D22F5EA1D1841E3C89EB4

文件大小: 3,723,264

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

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

蠕虫的攻击流程

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

蠕虫启动逻辑分析

1.蠕虫启动时将连接固定url: http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com

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

b)连接失败则继续攻击

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

另外一种可能是蠕虫作者有丰富的病毒检测对抗经验,目前的沙箱分为在线检测和离线检测两种,要做”离线病毒分析”会对沙箱环境做很多处理,在离线的情况下为了保证病毒的网络连通,可能会加入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

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

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

蠕虫利用漏洞确认

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

蠕虫 SMB数据包:

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

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

文件内容在DB349B97C37D22F5EA1D1841E3C89EB4中出现

orig_shellcode文件内容:

DB349B97C37D22F5EA1D1841E3C89EB4 文件:

蠕虫释放文件分析

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

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

关键勒索加密过程分析

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

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

使用的密钥概述:

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


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

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

蠕虫赎金解密过程分析

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

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


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


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

总结

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

关于这个漏洞的具体利用,可以看我的这篇文章

参考及感谢

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


声明:
文章标题:【病毒分析】WanaCry勒索蠕虫分析报告
文章作者:RookieHacker
文章链接:http://rookiehacker.coding.me/blog/2017/05/19/wanacry/
文章版权属本博主所有,有问题或者建议欢迎在下方评论。欢迎转载、引用,但请标明作者和原文地址,谢谢。


喜欢,就支持我一下吧~