Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2020-0796-BOF — Cobalt Strike Beacon Object File,实现CVE-2020-0796 SMBGhost本地权限提升,具备令牌窃取和会话提升双重武器化途径。 | Kitploit
工具/GitHubGitHub/rsmudge/cve-2020-0796-bof
权限提升漏洞利用框架漏洞利用Shellcode后渗透利用渗透测试红队Payload 开发二进制利用
GitHubrsmudge/cve-2020-0796-bof

CVE-2020-0796-BOF

Cobalt Strike Beacon Object File,实现CVE-2020-0796 SMBGhost本地权限提升,具备令牌窃取和会话提升双重武器化途径。

701965年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

这是Raphael对SMBGhost LPE的尝试。

我从Metasploit框架的源代码开始:

cve-2020-0796: SMBv3压缩缓冲区溢出 (SMBGhost) (CVE 2020-0796) https://github.com/rapid7/metasploit-framework/tree/master/external/source/exploits/CVE-2020-0796 [BSD许可]

然后,我做了以下工作:

  1. 我将反射型DLL转换为Cobalt Strike 4.1的Beacon对象文件。

这需要以Dynamic Function Resolution的MODULE$Function格式声明多个Win32 API。 好的一面是,由于DFR负责处理这些,部分代码中调用NTDLL的内容得以减少。:)

我从get_handle_addr中移除了未使用的1000项指针数组。之前这导致cl.exe因局部变量超过8KB限制而插入 __chkstk函数。BOF无法使用该函数。

随后我引入了一些Beacon专用API(例如BeaconPrintf、BeaconInjectProcess等),以便使用Beacon原生方式执行操作。

由于缺少libc相关内容(因为BOF的限制),我不得不编写了几个函数来弥补。

  1. 我将代码分为两种不同的武器化路径:

在Beacon中使用'smbghost'别名,不带参数,运行此漏洞利用仅影响Beacon进程令牌。如果利用成功, 当前进程令牌将获得之前不具备的超级权限。例如,你现在可以注入到其他进程(甚至其他桌面会话), 或者在winlogon.exe下生成子进程。由于漏洞并非每次运行都能成功,你可能需要多次运行smbghost。

或者,使用'elevate smbghost',通过Cobalt Strike的Aggressor Script中提供的权限提升API来获取新的 Beacon会话。这对于快速演示没问题,符合产品工作流程等……但它会注入到winlogon.exe中。注入到 winlogon.exe并非此特定提升的不变量。我怀疑所有公开的POC都这样做,因为CreateRemoteThread无法跨越 进程边界工作,并且谁愿意为父进程欺骗编写额外的样板代码呢?winlogon.exe是证明我们拥有提升权限的 简单低垂果实。

要使用Visual Studio编译:

从x64交叉工具命令提示符下运行make.bat。

这将输出expolit.x64.o到dist/目录。

我使用了Visual Studio 2013。其他编译器/版本未经测试。我没有尝试/测试x86。

下载工具