ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

SRC 挖洞:Certighost AD CS 域控制器伪造深度复盘,CVE-2026-54121 一个普通域用户怎么拿走整个企业域

SRC 挖洞:Certighost AD CS 域控制器伪造深度复盘,CVE-2026-54121 一个普通域用户怎么拿走整个企业域 作者 akihi白帽攻防录讲师某甲方网络安全工程师合合 SRC 年度第一、腾讯 SRC 连续三年前十单漏洞赏金 4w擅长 Web/App/PC 客户端漏洞挖掘。专注企业域安全、AD CS 证书滥用、Kerberos 认证攻击。本文基于公开 CVE 信息与技术原理深度复盘供安全研究与防护参考。一、漏洞时间线2026 年 7 月微软补丁星期二修复了一个 Active Directory Certificate ServicesAD CS的严重漏洞 CVE-2026-54121代号 Certighost。这个漏洞让一个普通的域用户——不需要管理员权限——就能让企业 CA 颁发一张域控制器身份的证书。拿到这张证书攻击者就能伪造域控制器身份执行 DCSync 窃取整个域的所有密码哈希包括域管和 krbtgt 账户——等于完全控制整个企业域。时间事件影响版本2026-07-14微软 7 月补丁星期二修复AD CS Enterprise CA2026-07-24安全社区公开技术分析——2026-07-27研究者发布公开 PoC——2026-08-04Nextron 发布检测规则——2026-09-28安全社区汇总 AD CS 漏洞——这个漏洞最可怕的地方在于它是一个信任边界失效——CA 在颁发证书时本来应该验证你说你是 DC那你真的是 DC 吗。但 Certighost 漏洞里CA 会跟着证书请求里的 cdc 属性去连接攻击者指定的服务器而不验证这个服务器是不是真的域控制器。结果就是攻击者自己搭一个假服务器骗 CA 说我就是那个 DCCA 就真的颁发了 DC 身份的证书。二、攻击链全景让我们先用一张流程图还原完整的攻击路径攻击者在企业内网有一个普通域用户账号 │ ▼ 第一步准备伪造环境 │ 攻击者需要 │ - 一个普通域用户账号 │ - 一台能控制的机器 │ - 能搭伪造的 Netlogon/LDAP 服务 │ - 知道目标 DC 的名字和 SID │ │ 关键配置 │ CA 开了 EDITF_ENABLECHASECLIENTDC │ 这个标志位让 CA 跟随 │ 证书请求里的 cdc 属性 ▼ 第二步提交恶意证书请求 │ 攻击者用普通域用户 │ 向 Enterprise CA 提交证书请求 │ │ 证书请求里包含 │ - cdc 属性指向攻击者的伪造服务器 │ - rmd 属性指向目标 DC 的机器对象 │ │ 意思是 │ CA 大人你要验证我的身份 │ 就去问这个服务器我的服务器 ▼ 第三步CA chase 机制触发 │ CA 收到请求后 │ 因为配置了 chase 机制 │ 它会跟着 cdc 属性 │ 去连接攻击者指定的服务器 │ │ CA 在连接时 │ 用 SMB/LDAP 协议 │ 向伪造服务器验证身份 │ │ 但伪造服务器是攻击者控制的 │ 它返回 │ - 目标 DC 的 objectSid │ - 目标 DC 的 dNSHostName │ │ CA 信了 ▼ 第四步CA 颁发 DC 身份证书 │ CA 认为验证通过了 │ 就颁发了一张证书 │ 证书里包含 │ - 目标 DC 的 SID │ - 目标 DC 的 DNS 名称 │ │ 这张证书是 CA 签名的 │ 在整个域里都受信任 ▼ 第五步PKINIT 获得 DC 身份 TGT │ 攻击者用这张证书 │ 通过 PKINIT 协议 │ 向 KDC 申请 Kerberos TGT │ │ KDC 看到证书是 CA 签的 │ 里面的身份是 DC │ 就真的发了一个 DC 的 TGT │ │ 攻击者现在 │ 就是域控制器了 ▼ 第六步DCSync 窃取所有密码 │ 有了 DC 身份 │ 攻击者就有权限 │ 执行目录复制同步DCSync │ │ 能偷到 │ - 域管的密码哈希 │ - 所有域用户的密码哈希 │ - krbtgt 账户的密码哈希 │ │ 有了 krbtgt │ 就能伪造 Golden Ticket │ 永久控制整个域 ▼ 攻击者完全控制整个企业域 │ ├─ 冒充任何用户身份 ├─ 访问所有域内资源 ├─ 创建后门管理员账户 └─ 持久化控制整个森林关键结论这个漏洞的本质是身份验证逻辑错误——CA 的 chase 机制本来是为了解决怎么验证请求者身份的问题但它信任了请求者自己指定的服务器而不验证这个服务器是不是真的域控制器。就像你去办身份证窗口说你证明一下你是谁你说你去问那个人你朋友然后你朋友说他就是某某某窗口就信了——这就是信任模型的问题。三、AD CS 与证书认证原理3.1 什么是 AD CSActive Directory Certificate Services 是微软的公钥基础设施组件功能AD CSActive Directory 证书服务企业 CAEnterprise CA企业级证书颁发机构证书申请用户/设备向 CA 申请证书chase 机制CA 验证请求者身份的回退机制PKINIT用证书进行 Kerberos 认证3.2 什么是 chase 机制chase 是 CA 验证身份的回退机制// chase 机制是什么 // 正常流程 // - 用户申请证书 // - CA 验证用户身份 // - 颁发证书 // 但有些时候 // - CA 没法直接确定请求者是谁 // - 比如机器账户申请证书 // - 或者是跨域的场景 // chase 机制 // - 证书请求里可以带 cdc 属性 // 要联系的 AD 服务器 // - 还可以带 rmd 属性 // 要解析的机器对象 // // CA 就会 // 1. 连接 cdc 指定的服务器 // 2. 查询 rmd 指定的对象 // 3. 拿到对象的身份信息 // 4. 基于这个信息颁发证书 // 问题在哪里 // - cdc 属性是请求者指定的 // - CA 不验证这个服务器是不是真的 DC // - 就直接连接了 // - 然后信任返回的信息 // // 这就是 Certighost 的根因3.3 什么是 PKINIT 和 DCSync这两个是攻击链的关键环节// PKINIT 是什么 // Kerberos 认证 normally // - 用户输密码 // - KDC 验证密码哈希 // - 发 TGT // PKINIT 是 // - 用户用证书认证 // - KDC 验证证书签名 // - 如果证书是受信任的 CA 签的 // - 就发对应身份的 TGT // // 所以 // - 有了 DC 身份的证书 // - PKINIT 就能拿到 DC 的 TGT // DCSync 是什么 // 正常情况下 // - 域控制器之间 // - 会同步目录数据 // - 比如密码修改了 // - 要同步到其他 DC // DCSync 攻击 // - 如果你有 DC 的权限 // - 你就能发起目录复制 // - 从其他 DC 拉取所有用户的密码哈希 // // 这就是为什么 // 有了 DC 身份 // 就能偷整个域的密码四、漏洞深度分析4.1 漏洞根因cdc 属性未验证根据安全研究者的分析漏洞的根本原因是 CA 不验证 chase 目标// 有缺陷的逻辑伪代码 // 证书申请处理流程 // 1. 收到证书请求 // 2. 检查请求里有没有 cdc 属性 // 3. 如果有 cdc 属性 // - 连接 cdc 指定的服务器 // - 查询 rmd 指定的对象 // - 拿到对象的 SID 和 DNS 名 // 4. 颁发包含这个身份的证书 // 问题在哪里 // // 步骤 3 应该验证 // - cdc 指定的服务器 // 是不是真的域控制器 // // 但实际代码 // - 直接连接了 // - 不验证服务器身份 // - 信任返回的所有信息 // // 修复方式 // 微软加了 // CRequestInstance::_ValidateChaseTargetIsDC // 这个函数 // 专门验证 chase 目标是不是真的 DC4.2 触发条件EDITF_ENABLECHASECLIENTDC不是所有 CA 都受影响需要特定配置// 漏洞触发条件 // 这个漏洞需要 // - CA 配置了 // EDITF_ENABLECHASECLIENTDC 标志位 // - 这个标志在 EditFlags 里 // - 是 bit 0x00100000 // // 这个标志是干什么的 // - 启用客户端指定 DC的 chase // - 也就是 // 证书请求里可以带 cdc 属性 // CA 就去连接那个服务器 // // 为什么很多企业开了 // - 因为这是可选配置 // - 有些企业为了跨域场景 // - 或者为了兼容性 // - 就开了 // // 但开了就有风险 // - 普通域用户就能利用4.3 完整攻击链从普通域用户到完全控制域// 完整攻击步骤 // 前置条件 // - 攻击者有普通域用户账号 // - 企业用了 AD CS Enterprise CA // - CA 开了 EDITF_ENABLECHASECLIENTDC // 第一步环境探测 // - 攻击者用普通账号登录 // - 枚举域内的 CA // - 检查 CA 配置 // - 确认有这个标志位 // 第二步搭伪造服务器 // - 攻击者在自己的机器上 // - 搭伪造的 Netlogon/LDAP 服务 // - 准备好返回目标 DC 的信息 // 第三步提交证书请求 // - 用 Certify 之类的工具 // - 提交带 cdc/rmd 属性的请求 // - cdc 指向自己的伪造服务器 // 第四步拿到 DC 证书 // - CA 跟着 cdc 来连接 // - 伪造服务器返回真实 DC 的身份 // - CA 就颁发了证书 // 第五步PKINIT 认证 // - 用 Rubeus 之类的工具 // - 通过 PKINIT 拿到 DC 的 TGT // 第六步DCSync // - 用 mimikatz/impacket // - 执行 DCSync // - 偷所有密码哈希 // - 包括 krbtgt // 第七步持久化 // - 用 krbtgt 哈希 // - 伪造 Golden Ticket // - 永久控制整个域4.4 影响范围项目详情CVE 编号CVE-2026-54121漏洞类型权限提升 / 认证绕过影响产品Windows AD CS Enterprise CA影响配置开启 EDITF_ENABLECHASECLIENTDC 的 CA发现者H0j3n 和 Aniq Fakhrul利用条件普通域用户账号用户交互不需要CVSS 评分8.8高公开 PoC有公开可用的 PoC影响域控制器冒充完全控制域五、修复方案分析微软在 2026 年 7 月补丁星期二中修复了这个问题修复项修复方式chase 目标验证增加 _ValidateChaseTargetIsDC 验证身份信任边界不再信任请求者指定的服务器证书颁发控制严格验证证书请求者身份5.1 AD CS 安全设计原则// AD CS 安全原则 // 1. 最小权限 // 不要给普通用户太多证书模板权限 // 按需授予 // 2. 严格验证 // 颁发证书前 // 一定要验证请求者身份 // 不能信任请求者自己说的 // 3. 配置审计 // 定期审计 CA 配置 // 检查有没有危险的标志位 // 4. 及时更新 // AD CS 漏洞影响极大 // 要及时打补丁 // 5. 监控异常 // 监控异常的证书请求 // 监控 PKINIT 认证异常5.2 域安全最佳实践// 域安全检查清单 // 1. 及时打补丁 // 微软每月补丁星期二 // 一定要及时更新 // 2. 审计 AD CS 配置 // 用 Certify/Certipy 之类的工具 // 检查 CA 配置有没有问题 // 3. 最小权限原则 // 普通用户不要给太多权限 // 域管账号要严格管控 // 4. 监控异常行为 // 监控 DCSync 行为 // 监控异常的 Kerberos 认证 // 监控异常的证书请求 // 5. 分段防御 // 域管账号不要在普通机器登录 // 用 PAM 堡垒机管理 // 6. 定期渗透测试 // 定期测试域安全 // 发现并修复配置问题六、SRC 审计启示录6.1 域安全审计清单在 SRC 挖洞过程中针对企业域的审计清单#检查项检测方法1AD CS 配置是否安全用 Certify 枚举 CA 和模板2有没有危险的证书模板检查 EKURG、ENROLLEE_SUPPLIES_SUBJECT3CA 有没有危险标志位检查 EDITF_ENABLECHASECLIENTDC 等4有没有过度权限检查普通用户的权限5监控有没有异常检查安全日志有没有告警6.2 常见 AD CS 漏洞类型// 常见的 AD CS 漏洞 // 1. 证书模板滥用 // 证书模板配置不安全 // 普通用户能申请高权限证书 // 2. ESC1-ESC8 系列 // 各种证书模板错误配置 // 导致的权限提升 // 3. CA 配置错误 // 比如 Certighost 这种 // CA 本身的配置问题 // 4. 证书认证绕过 // 用证书冒充其他用户 // 不需要密码 // 5. PKINIT 相关 // 证书认证流程的问题6.3 暴露面分级暴露级别情况风险严重普通用户能冒充 DC整个域被攻破高普通用户能申请管理员证书域管权限被偷中特定用户能申请高权限证书有限提权低信息泄露辅助攻击七、防护建议及时打补丁安装 2026 年 7 月或之后的 Windows 更新审计 CA 配置检查 EDITF_ENABLECHASECLIENTDC 标志位是否必要最小权限普通用户不要给太多证书申请权限监控异常证书请求监控异常的证书申请行为定期渗透测试用 Certify/Certipy 测试 AD CS 配置分段防御域管账号严格管控用 PAM 堡垒机八、总结CertighostCVE-2026-54121是 AD CS 安全的一个经典案例企业公钥基础设施本来是用来增强安全性的但配置错误反而成了攻击入口。在企业域安全领域AD CS 是最高价值的攻击面之一——一个配置错误的 CA能让普通域用户直接变成域管。理解证书信任模型、PKINIT 认证、DCSync 攻击是做企业域安全的基本功。在 SRC 挖洞实践中企业内网的 AD CS 审计是赏金最高的方向之一——一个能拿域管的漏洞对企业来说价值极高。
返回列表