在本文中我将为大家复现在前段时间被曝出的,方程式0day Eternalblue的利用过程。Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞。从涵盖的操作系统版本来看,Eternalblue针对的范围也非常广泛。从Windows XP到Windows Server 2012都为其攻击对象。而Windows 10和Windows Server 2016,则并不在其利用范围。但很可能在不久后Eternalblue可能会被再次修改,因此我们应该时刻保持警惕!
Eternalblue(永恒之蓝)只是影子经纪人公布的Windows零日漏洞利用工具系列中的一款。除此之外,以“永恒”为前缀名的漏洞利用工具还有例如Eternalromance, Eternalchampion 和 Eternalsynergy,所有这些都是针对近期的Windows操作系统的。为了配置和执行对攻击目标的成功利用,其中有一款名为Fuzzbunch的漏洞利用框架,该框架基于Python 2.6开发与Metasploit框架颇为相似。在以下演示中,我将首先安装最基本的漏洞利用环境并配置Fuzzbunch,最终我将会通过Empire&Meterpreter来获取Windows 7的反弹shell。
配置Fuzzbunch并创建基本利用环境为了达到更好的实验效果,我们将需要配备以下系统环境:
Windows 7 64-bit 作为被攻击目标。IP:10.11.1.253
Windows 7 作为Windows攻击机,并运行Fuzzbunch。IP: 10.11.1.251
Kali Linux 作为另一台攻击机,并运行Empire framework。IP: 10.11.1.16
在我们正式开始实验之前,我们还需要在Windows 和Kali Linux攻击机上进行一些相应的环境部署。
Windows 7相关环境的安装配置在Windows 7攻击机上,我们需要安装Python 2.6和PyWin32 v212。安装文件可以在这里下载:
Python 2.6: https://www.python.org/download/releases/2.6/
PyWin32 v212: https://sourceforge.net/projects/pywin32/files/pywin32/Build%20212/
按照基本安装步骤首先安装Python,然后再安装PyWin32。这里需要注意的是,安装PyWin32务必以管理员身份进行,否则可能会出现报错。如果你需要再次运行安装后的脚本,则可以在以下目录中找到:
C: \Python26\Scripts 在Kali Linux上安装Empire Framework在Kali Linux上,我们需要安装可从Github获取的Empire框架:
Empire framework: https://github.com/EmpireProject/Empire
在Kali Linux上安装Empire Framework非常简单,只需运行./setup/install.sh脚本即可一键安装,然后运行./empire就可以启动Empire。
配置Fuzzbunch接下来,我们就可以到Github上下载Shadow Brokers泄露的NSA工具并将其解压到桌面。这里需要注意的是,当你从Github下载转储时,你必须要在包含fb.py(Fuzzbunch)文件的Windows目录中,创建一个名为“listeningspost”的新文件夹。
最后编辑名为fuzz bund.xml的Fuzzy Bunch配置文件,并设置相应的ResourcesDir和LogDir参数:
现在我们就可以通过命令行来执行fb.py文件,启动Fuzzbunch。至此应该没有任何报错:
如果你看到了关于缺少DLL或导入的错误提示,请确保是否已正确安装了PyWin32,并且安装后脚本是否成功完成。
配置和执行Eternalblue至此,我们已经具备了Eternalblue漏洞利用的所有条件。执行Eternalblue需要一个目标IP和回调IP地址。这里的目标地址则为10.11.1.253(Windows 7 64-bit),而反弹地址则为 10.11.1.251(Windows 7)。
接下来需要我们配置和指定是否重定向,和日志记录相关的一些参数,并在Fuzzbunch中创建一个新的项目。我们不会使用重定向,因此输入“no”,然后按Enter键继续。继续按回车键保持默认选项。然后我们选择选项4(或没有现有项目时为0)创建一个新项目,并将其命名为任何你喜欢的项目名称,并选择为你的新项目使用默认的日志记录位置。
要查看全部加载的插件/exploit类型,可以使用’use’命令。选择使用Eternalblue插件,请键入以下命令:
use Eternalblue接着Fuzzbunch会询问我们是否提示进行变量设置,我们选择yes。传输方式我们选择1‘FB’。
最后会询问我们,是否要执行插件:
如果一切顺利,Fuzzbunch将输出Eternalblue成功的提示:
配置Empire 侦听和反向DLL shell