Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-54121-CertiGhost — CVE-2026-54121 (Certighost) AD CS DC 模拟 PoC。已修补的 SAN 处理 + MAQ 安全的账户复用。 | Kitploit
工具/GitHubGitHub/marcgoam/cve-2026-54121-certighost
身份验证与授权权限提升漏洞分析漏洞利用横向移动渗透测试对抗性攻击
GitHubmarcgoam/cve-2026-54121-certighost

CVE-2026-54121-CertiGhost

CVE-2026-54121 (Certighost) AD CS DC 模拟 PoC。已修补的 SAN 处理 + MAQ 安全的账户复用。

查看仓库
102132个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-54121 (Certighost) - 修复版 fork

这是针对 CVE-2026-54121(又称 Certighost)的概念验证工具的一个可用 fork。 原始研究与 PoC 由 @H0j3n 和 @aniqfakhrul 完成,详细分析见:

  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26。

此 fork 修复了 SAN 处理问题——该问题会阻止 PKINIT 在遵循所请求 SAN 的 CA 上成功;强化了 --target-san 的解析;并重新设计了计算机账户的处理方式,使其不再耗尽 ms-DS-MachineAccountQuota。

使用方法

以 root 身份执行,因为伪造的 LDAP 和 SMB 服务需要特权端口 389 和 445。

sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10

成功完成后,目标证书(.pfx)和 Kerberos 缓存(.ccache)会写入当前工作目录。

此脚本的功能

  1. 复用单个稳定的计算机账户(CERTIGHOST$,在首次运行时创建),或使用通过 --computer-name 指定的账户。
  2. 启动两个伪造的监听器:一个位于 445 端口的 SMB/LSA 服务器,以及一个位于 389 端口的 LDAP 服务器。
  3. 以该计算机账户的身份发送证书请求,嵌入指向受控 IP 的自定义 cdc 属性(通过 --listener 指定;如省略则自动检测),以及携带目标 DC DNS 名称的 rmd 属性。
  4. CA 会回连到伪造的 LSA/LDAP 监听器。监听器以所创建账户的身份进行身份验证(通过真实 DC 上的 Netlogon 进行验证),并转而以目标 DC 的身份信息(sAMAccountName、SID、dNSHostName)回答 CA 的查询。
  5. CA 颁发一个属于该 DC 的有效证书。
  6. 脚本使用 DC 的 pfx 执行 PKINIT,以请求 .ccache 和 NT 哈希。

此 fork 中的变更

1. SAN 修复(使 PKINIT 成功)

原始版本在生成证书 SAN 时,同时将 CSR 的 subjectAltName 扩展和 SAN:dns= 请求属性设置为伪造计算机的主机名,而不是目标 DC 的 FQDN。因此,在遵循所请求 SAN 的 CA 上,所颁发的证书携带的是伪造账户的 dNSHostName,导致 PKINIT 将其映射到错误的主体并以如下错误失败:

KDC_ERR_CLIENT_NAME_MISMATCH(Reserved for PKINIT)

现在 SAN 使用目标 DC 的 dNSHostName(rmd_value / target_dns),这正是 PKINIT 将计算机账户映射到的主体。所颁发的证书现在呈现 DNS:<dc>.<domain>,且 AS-REQ 以 DC 身份完成。

2. 健壮的 --target-san

--target-san 现在接受 MEEREEN、MEEREEN$ 或 FQDN meereen.essos.local(通过 sAMAccountName 或 dNSHostName 匹配),而不再仅限于短名称 NAME 形式。

3. 计算机账户复用(不再耗尽 MAQ)

原始版本在每次运行时都会创建一个全新的随机 GHOST********$ 账户。由于通过 ms-DS-MachineAccountQuota 创建的计算机账户归域管理员所有(而非创建者),低权限用户无法删除它们,因此重复运行会因大量孤立账户而迅速耗尽配额(默认为 10)。

此 fork 复用单个稳定账户(CERTIGHOST$,仅在其不存在时创建),因此配额不会增长,多次运行之间也无需清理。

4. 遗留账户警告

首次创建该账户时,脚本会打印一条警告,提示该账户会保留在 AD 中:

[!] WARNING: computer account CERTIGHOST$ was created and is left in AD.

该账户将保留以供后续运行复用。若要彻底删除它,请使用域管理员(对象所有者)执行:

Get-ADComputer CERTIGHOST | Remove-ADComputer -Confirm:$false

要求

  • Python 3
  • impacket
  • cryptography, pyasn1, asn1crypto, pycryptodomex

参考

  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54121
  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26
  • https://github.com/aniqfakhrul/CVE-2026-54121 (原始 PoC)

免责声明

仅用于授权的安全测试和教育目的。请仅对您拥有明确测试许可的系统使用本工具。

下载工具