微软AD CS再现漏洞!普通账户可直接拿下整个域,已有PoC

导语:2026年7月24日,安全研究人员H0j3n和Aniq Fakhrul正式公开了Certighost漏洞的完整利用代码。这个潜伏在Active Directory证书服务中的认证缺陷,仅需一个普通域用户账户,无需任何管理员权限,就能假冒域控制器身份申请证书,进而通过DCSync获取krbtgt密钥——整个Active Directory域就此易手。


一、漏洞概述

1.1 背景

Certighost的漏洞编号为CVE-2026-2026-54121,微软已于2026年7月14日发布修复补丁。然而,真正的问题在于:这个漏洞太容易被利用了

研究人员于2026年5月14日向微软报告了该漏洞,微软于5月22日确认,7月14日悄然修复,7月24日研究人员公开了完整的利用代码。从报告到公开,整整十周——而利用这个漏洞的条件,低得令人发指:

  • 只需要一个普通域用户账户(Domain Users组即可)
  • 不需要任何管理员权限
  • 不需要受害者交互
  • 在默认配置下即可利用

1.2 影响评估

项目详情
CVE编号CVE-2026-54121
CVSS评分8.8(高危)
漏洞类型认证授权缺陷(Improper Authorization)
影响范围Windows Server 2012 ~ 2025(含Server Core)、Windows 10 1607/1809
利用前提普通域账户 + 网络可达企业CA
利用结果假冒域控制器 → DCSync → 域完全沦陷

攻击成功后,攻击者获得的是域控制器级别的身份。这意味着:

  • 可以执行DCSync,导出所有用户密码哈希
  • 可以获取krbtgt账户密钥,制造黄金票据永久驻留
  • 可以为任意用户/机器颁发证书,实现持久化
  • 整个Active Directory域的控制权,归攻击者所有

二、技术分析:AD CS chase路径的认证缺陷

2.1 AD CS基础:证书即身份

在深入漏洞原理之前,我们需要理解一个核心概念:在AD CS体系中,证书就是身份证明

Active Directory证书服务(AD CS)是微软的公钥基础设施实现,与Active Directory深度集成,为域内用户和计算机颁发X.509证书。这些证书可用于加密、签名、安全通信和身份认证。

当你用证书向Key Distribution Center(KDC)进行身份认证时,KDC会将证书中的身份映射到一个Active Directory账户——映射成功,就发放Kerberos TGT。这意味着:谁控制了证书中的身份字段,谁就控制了映射到的那个账户。

2.2 chase路径:证书颁发机构的后门

AD CS有一个称为”chase”的目录对象解析回退机制。

在某些跨域控制器证书申请场景中,证书颁发机构(CA)可能需要对请求者的身份进行第二次目录查询。这个查询受两个请求属性控制:

  • cdc(Client DC):指定CA应该联系的主机
  • rmd(Remote Domain):指定CA应该查找的主体

当这两个属性同时存在于证书请求中时,CA会通过SMB和LDAP协议联系cdc指定的主机,查找rmd指定的主体,然后使用查到的身份数据来构建证书

问题就出在这里:CA在联系cdc指定的主机之前,完全没有验证这个主机是否真的是它声称的那个域控制器

2.3 完整攻击链

第一步:普通域用户创建机器账户(默认MachineAccountQuota=10)
         ↓
第二步:攻击者在自己的机器上运行LDAP和LSA伪造服务
         ↓
第三步:向CA提交证书请求,携带cdc=攻击者IP、rmd=目标DC
         ↓
第四步:CA连接到攻击者的SMB/LDAP服务,攻击者将真实DC的身份数据发回
         ↓
第五步:CA使用真实DC的objectSid和dNSHostName构建证书
         ↓
第六步:攻击者用这张证书通过PKINIT向KDC认证——此时KDC认为这就是那台DC
         ↓
结果:获得域控制器身份,可执行DCSync获取krbtgt哈希

关键在于机器账户的中介作用:攻击者创建(或控制)的机器账户,是一个有效的域主体,能够通过CA的身份验证检查——即使它根本不是那台被假冒的域控制器。

Certighost攻击流程图

2.4 微软的修复

微软7月14日的更新在certpdef.dll中添加了CRequestInstance::_ValidateChaseTargetIsDC函数,在CA跟随chase之前进行验证:

  • 拒绝IP字面量:不能再使用IP地址,必须是DNS名称
  • 拒绝超长名称和LDAP元字符:防止畸形输入绕过
  • 精确匹配DNS名称:目标必须正好匹配一个Active Directory计算机对象的dNSHostName
  • 验证SERVER_TRUST_ACCOUNT标志:该计算机对象的userAccountControl必须包含值8192
  • SID比较:后续还会进行SID比对,防止对象替换

三、PoC下载

Certighost利用工具由安全研究人员H0j3n和Aniq Fakhrul开发并公开,可自动化完成从证书申请到DCSync的完整攻击链。

PoC下载地址:

https://github.com/aniqfakhrul/CVE-2026-54121

工具特性:

  • 自动化发现企业CA和目标域控制器
  • 创建机器账户或复用已有账户
  • 启动SMB/LDAP监听器完成relay攻击
  • 自动提交携带cdc/rmd属性的证书请求
  • 输出PFX证书文件和Kerberos凭据缓存
  • 支持DCSync直接导出krbtgt哈希

依赖安装:

pip install --break-system-packages 
  git+https://github.com/fortra/impacket.git 
  cryptography pyasn1 asn1crypto pycryptodome dnspython

3.1 一键利用

python3 certighost.py 
  -d abc.local 
  -u normaluser -p '[PASSWORD]' 
  --dc-ip 192.168.8.128

3.2 利用后的下一步

拿到域控制器证书后,攻击者可以:

# 使用PKINIT认证获取TGT
python3 gettgtpkinit.py -dc-ip 192.168.8.128 abc.local/wdc01$ -pfx-file wdc01.pfx wdc01.ccache

# 使用TGT执行DCSync导出krbtgt哈希
python3 secretsdump.py -k -just-dc-user 'ABC/ krbtgt' wdc01.abc.local@wdc01.abc.local

# 或者导出所有用户哈希
python3 secretsdump.py -k -just-dc abc.local@wdc01.abc.local

拿到krbtgt哈希后,黄金票据永驻——即使管理员修改密码,攻击者依然可以通过伪造TGT保持对域的持久控制。


四、检测与防御

4.1 紧急修复(首选)

立即在所有AD CS服务器上安装微软2026年7月14日安全更新。这是唯一经过充分测试的根治方案。

4.2 临时缓解措施

如果无法立即打补丁,可以禁用chase回退:

certutil -setreg policyEditFlags -EDITF_ENABLECHASECLIENTDC
Restart-Service CertSvc -Force

警告:这可能破坏合法的跨域控制器证书申请流程,建议先在测试环境验证。

4.3 检测规则(Sentinel KQL)

以下KQL查询可检测AD CS chase滥用行为:

MicrosoftWindows
| where EventID == 4886  // Certificate Services approved a certificate request
| where Param4 contains "Chase" or Param5 contains "CDC"
| project TimeGenerated, Computer, Subject, Param3, Param4, Param5
| order by TimeGenerated desc

4.4 排查重点

  • Event ID 4886:CA批准了包含chase属性的证书请求
  • 异常的LDAP/SMB出站连接:从CA到非DC地址的连接
  • 短时间内大量机器账户创建
  • 来自非DC主机的DCSync操作

五、写在最后

Certighost再次证明了一个老生常谈的道理:最危险的漏洞,往往藏在最不起眼的功能里

AD CS的chase路径,本是为了解决跨域控制器场景下的证书申请问题。然而这个”方便”的功能,在没有充分认证验证的情况下,就成了攻击者的通途大道。

一个普通域用户,仅凭一台加入域的机器和默认的MachineAccountQuota,就能假冒域控制器、获取krbtgt密钥、彻底接管整个Active Directory域——这不是漏洞是什么?

对于红队成员而言,这是继PetitPotam、Nightmare和ESC8之后又一个AD CS经典利用路径。对于蓝队而言,请立即检查你们的AD CS服务器是否已经打上了7月的补丁——CERTIGHOST没有CVE在野利用报告,但这不代表它没有被利用。

版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容