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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Certighost-CVE-2026-54121 — Splunk 检测报告,针对 CVE-2026-54121 (CertiGhost):AD CS 证书追踪滥用导致整个域沦陷。包含实验室验证的检测、分类排查步骤,以及针对真实 DC 的事件调查。 | Kitploit
工具/GitHubGitHub/atlasvector/certighost-cve-2026-54121
身份验证与授权防御工具漏洞分析入侵检测事件响应日志分析
GitHubatlasvector/certighost-cve-2026-54121

Certighost-CVE-2026-54121

Splunk 检测报告,针对 CVE-2026-54121 (CertiGhost):AD CS 证书追踪滥用导致整个域沦陷。包含实验室验证的检测、分类排查步骤,以及针对真实 DC 的事件调查。

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
322个月前尚未审核

文档类型:检测用例 相关 CVE:CVE-2026-54121 (Certighost) 作者:Youssef Benchater

检测用例:Certighost (CVE-2026-54121)

本文档描述了为 CVE-2026-54121 构建的 Splunk 检测。它遵循标准检测用例格式,因此可以像真实检测工程团队维护检测目录那样,将其纳入检测目录中。

目录

概述

  • 检测 ID / 名称
  • 目的
  • MITRE ATT&CK 映射

检测构建

  • 所需日志源
  • 检测逻辑
  • 发现与设计说明
  • 触发条件
  • 严重性

响应与验证

  • 响应 / 分类处置步骤
  • 测试证据
  • 关联仪表板

路线图

  • 计划中的检测链
  • 未来改进

元数据

  • 负责人
  • 最后审查 / 版本
  • 参考资料

检测 ID / 名称

告警:Certighost ( CVE-2026-54121 )


目的

检测对 CVE-2026-54121 中描述的 AD CS 证书注册追踪机制的滥用。该规则会标记 CA 上的证书生命周期事件,其中请求方提供的追踪目标(cdc 属性)无法解析到合法的域控制器,这正是 Certighost 所使用的确切机制,使 CA 向低权限请求方签发包含域控制器身份数据的证书,从而导致完全域沦陷和接管。

该检测锚定在 cdc 追踪目标上,而不是计算机账户创建上,因为 Microsoft 针对 CVE-2026-54121 的公告 将账户前提条件列为默认 ms-DS-MachineAccountQuota 值或攻击者已控制的账户。以账户创建为键的规则会完全漏掉第二条路径,并且还依赖于账户创建和利用发生在同一时间窗口内。cdc 检查覆盖两条路径,且没有这种依赖关系。


MITRE ATT&CK 映射

该规则覆盖攻击链中的证书请求和签发阶段。

战术技术(ID)证据
权限提升滥用提权控制机制 (T1548)低权限域用户通过伪造 AD CS 证书提升至域控制器权限
凭据访问窃取或伪造身份验证证书 (T1649)Certighost 的核心 - 使用 cdc/rmd 属性获取包含 DC 身份材料的证书
凭据访问OS 凭据转储:DCSync (T1003.006)使用 DC 账户的 TGT 执行 MS-DRSR 复制 - 提取 krbtgt 及所有账户哈希
凭据访问黄金票据 (T1558.001)利用 krbtgt 哈希,攻击者可无限期伪造 Kerberos TGT,在密码重置后仍能存活
防御规避使用替代身份验证材料:传递票据 (T1550.003)使用基于证书的 TGT 以 DC 身份进行身份验证,然后使用该 TGT 执行 DCSync
持久化创建账户:本地账户 (T1136.001)通过 ms-DS-MachineAccountQuota 创建机器账户,用于对恶意 LDAP 端点进行身份验证
横向移动使用替代身份验证材料 (T1550)DC 证书授予等同于域控制器账户的完整网络访问权限
发现域账户 (T1087.002)初始 LDAP 枚举发现 CA、DC、域 SID、GUID 及 MAQ 值

所需日志源

  • 索引: wineventlog-lab
  • 源类型: WinEventLog
  • 日志源: WinEventLog:Security
  • 主机:DC01
  • 此规则搜索直接查询的 Windows 事件代码:
    • 4886(收到证书请求)
    • 4887(证书已颁发)
    • 4888(证书请求被拒绝)

日志源已在 Splunk 中确认实时可用,主机 DC01,存在 EventCodes 4886/4887,已为请求 ID 12、13、14 提取追踪目标 172[.]66[.]66[.]33


检测逻辑

index=wineventlog-lab sourcetype=WinEventLog source="WinEventLog:Security"
  (EventCode=4886 OR EventCode=4887 OR EventCode=4888) cdc
  
| fields _time EventCode Request_ID Requester Attributes Subject host Message
| rex field=Message "(?m)^cdc:(?<chase_cdc>\S+)"
| where isnotnull(chase_cdc) AND lower(chase_cdc)!="dc01.atlasvec.lab"
| stats min(_time) as _time
        values(Requester)  as requester
        values(Attributes) as template
        values(chase_cdc)  as chase_target
        values(Subject)    as cert_subject
        values(EventCode)  as codes
        values(host)       as ca_host
  by Request_ID
  
| eval status   = case(mvfind(codes,"4887")>=0,"ISSUED",
                       mvfind(codes,"4888")>=0,"DENIED",
                       true(),"PENDING")

| eval severity = "critical"
| sort - _time
| rename ca_host as "CA Host", Request_ID as "Request ID",
         requester as "User Requester", template as "Certificate Template",
         chase_target as "Chase Target (cdc)", cert_subject as "Issued Subject",
         status as "Outcome", severity as "Severity",
         _time as "Timestamp"
| table "Timestamp" "CA Host" "Request ID" "User Requester" "Certificate Template" "Chase Target (cdc)" "Issued Subject" "Outcome" "Severity"

告警配置:已启用、计划/Cron、触发条件 = 结果数量大于 0


发现与设计说明

  • 事件按 Request ID 分组,因此一次恶意请求的完整生命周期(received,随后 issued 或 denied)会显示为单行。

  • 此检测的初始版本将 Event ID 4741(计算机账户已创建)作为前置条件,依据是公开的概念验证展示了账户创建作为攻击链的一部分。然而,Microsoft 针对 CVE-2026-54121 的公告将机器账户前置条件列为默认的 ms-DS-MachineAccountQuota 值或攻击者已控制的机器账户。

    攻击者若走第二条路径,会使用其已控制的机器账户,不会生成 4741 事件。该规则已更新为仅锚定 cdc chase 目标,从而在设计上覆盖两种利用路径。

    这也消除了对账户创建与证书滥用发生在同一时间窗口内的依赖。攻击者可以在利用尝试之前或之后数天创建机器账户,规则仍会触发。


触发条件

基础搜索范围限定为 DC01 上的 AD CS 安全审计事件(4886、4887、4888),并预筛选出包含字面字符串 "cdc" 的事件,因为只有 chase 滥用尝试才会在 Message 字段中携带该属性。

对于每个匹配事件,搜索会从 Message 字段的 cdc: 行中提取 chase 目标。该值缺失或匹配合法 DC FQDN(dc01.atlasvec.lab)的事件会被排除。

cdc 值指向任何其他目标的事件会被标记,因为这正是 CA 被指示在合法 DC 基础设施之外执行 chase 的确切条件,也是此 CVE 的核心利用点。


严重性

严重 - 固定值,直接设置在搜索逻辑中。不按等级计算,此规则产生的每个匹配都被视为严重,因为它检测的条件(CA 跟随请求者控制的 chase 到非 DC 目标)本身就是利用原语。


响应 / 分诊步骤

  1. 在告警输出中确认请求者账户。检查它是标准域用户、机器账户还是服务账户,以及该账户是否有任何合法理由请求证书。
  2. 对同一时间窗口运行 DC01 - Suspicious Accounts Activities 关联搜索,检查同一时间戳前后 DC01 上是否有相关账户或进程活动。
  3. 运行 DCSync / 复制权限检查,确定请求者或任何相关账户是否执行或尝试执行 DS-Replication-Get-Changes / DS-Replication-Get-Changes-All 活动,这将表明攻击者已越过证书签发阶段进入凭据提取阶段。
  4. 如果 Outcome 为 ISSUED,则将已签发的证书视为已泄露。它包含伪造的域控制器身份数据,可用于以 DC 身份进行身份验证。
  5. 升级以进行遏制:吊销已签发的证书,禁用或重置请求者账户,并确认 ms-DS-MachineAccountQuota 和证书模板 ACL,因为两者都是此攻击的前置条件。

测试证据

已针对本实验室于 2026-08-02 捕获的真实请求生命周期数据进行验证:

Certighost PoC 针对 atlasvec.lab 执行:恶意 LDAP/SMB 服务器已启动,使用伪造的 cdc 值请求证书,以 DC01$ 执行 PKINIT,获取 NTLM 哈希

上述 PoC 运行端到端确认了完整攻击链,从恶意服务器搭建到证书请求再到凭据提取。下方的 Splunk 证据显示了在 CA 侧捕获的同一请求生命周期。

请求 ID 12、13、14 的原始事件 4887:cdc:172[.]66[.]66[.]33,主题 CN=DC01.atlasvec.lab 颁发给每个 GHOST 账户

  • 请求 ID 11(请求者 ATLASVEC\Administrator)显示追踪目标为 DC01.atlasvec.lab,即合法的 DC,并且正确地未触发该规则。

请求 ID 11 的原始事件 4887:cdc:DC01.atlasvec.lab 匹配合法 DC 的 FQDN,被过滤器正确排除

告警输出表:请求 ID 12、13、14 被标记,追踪目标 172[.]66[.]66[.]33,结果 ISSUED,严重性 critical

完整的测试方法、已检查的前置条件以及更多截图单独记录在文档 2:检测验证报告中。


关联仪表板

与该检测一同构建了一个配套的监控仪表板。它通过两个视图覆盖 Certighost 攻击链:一个 DC 监控选项卡,跟踪 AD CS 证书事件、DCSync 指标和机器账户活动;以及一个 SOC 概览选项卡,按严重性展示所有已触发的告警。

攻击前基线

利用前的 DC 监控选项卡。所有四个 KPI 均为零:未触发任何与 DC 相关的告警,无追踪证书事件,无 DCSync 复制,未创建机器账户。

攻击前的 DC 监控选项卡,所有 KPI 均为零,未触发任何告警

DC 监控选项卡,继续显示干净的基线,时间窗口 11:00-12:00

攻击后状态

下载工具