BadSuccessor漏洞:未修复的微软Active Directory攻击可导致域控沦陷
低权限用户可滥用dMSA功能实现域管理员提权
网络安全研究人员发现,在默认配置的Windows Server 2025 Active Directory(AD,活动目录)环境中存在一条新的攻击路径。攻击者可利用该漏洞危害环境中的任意用户,最终导致整个域控系统沦陷。
Akamai研究员Yuval Gordon在最新报告中指出:"该问题可能影响绝大多数依赖AD架构的企业组织。在我们检测的91%环境中,都发现了域管理员组之外具备攻击所需权限的用户。"该攻击利用了Windows Server 2025引入的"委托托管服务账户"(Delegated Managed Service Accounts,dMSA)新特性——该功能本是为防范Kerberoasting攻击(攻击者从AD环境中提取服务账户凭证哈希后进行离线破解)而设计。
研究团队发现,dMSA账户从被替代服务账户继承权限时,其实现方式允许无缝迁移和使用先前颁发的票据,却未执行足够严格的验证。这使得攻击者可以成功冒充包括域管理员在内的任何用户。微软虽承认该问题,但将其评定为中等严重性,认为无需紧急修复,理由是CreateChild权限相关风险已有文档说明。但Akamai研究人员指出,当前行业标准实践或工具均未将此权限视为关键风险。
不完整的dMSA迁移过程欺骗密钥分发中心
创建dMSA账户时,它会继承被替代服务账户的权限。这个迁移过程涉及更新dMSA对象属性的多个步骤,包括:
msDS-DelegatedMSAState
:标记迁移状态(未知/进行中/已完成)msDS-ManagedAccountPrecededByLink
:标识被替代账户msDS-GroupMSAMembership
:指定可认证为该账户的主体
迁移完成后,任何尝试以旧服务账户认证的设备都会收到包含KERB-SUPERSEDED-BY-USER
字段的错误信息,提示其改用dMSA重新认证。此时AD使用的Kerberos协议中的密钥分发中心(KDC)会为dMSA账户生成特权属性证书(PAC),其中包含被替代账户及其关联组的安全标识符(SID),实质上授予新账户所有旧账户权限。
漏洞关键在于:攻击者可以任意修改自建dMSA账户的这两个属性,诱使KDC误判任意服务账户已完成迁移。Akamai团队将这种技术命名为"BadSuccessor",并强调:"攻击者只需控制dMSA对象即可掌控整个域,无需实际迁移过程或验证机制。"
未部署dMSA的环境同样面临风险
研究团队警告,即使企业尚未创建任何dMSA账户,攻击者仍可利用OU(组织单元)中的CreateChild权限自行创建。默认情况下,dMSA账户存储在托管服务账户容器,但通过path参数也可在OU内创建。具备OU内CreateChild权限的低权限用户创建dMSA后,可:
- 修改
ManagedAccountPrecededByLink
属性指向目标账户(如域管理员) - 将
msDS-DelegatedMSAState
设为已完成状态(值2) - 通过KDC认证获取包含目标账户所有权限的会话票据
研究人员指出:"仅需修改两个属性,新建对象就能继承全部特权。我们未更改任何组成员关系,未提升现有账户权限,也未触发传统提权警报。"
攻击者还能获取加密凭证
更严重的是,攻击者不仅能获取目标账户权限的会话票据,还能通过票据中的KERB-DMSA-KEYPACKAGE
结构获取该账户的加密密码(存储在previous-keys
字段)。虽然新建dMSA本不应存在"历史密钥",但为保持迁移前颁发的会话票据有效性,系统会继承被替代账户的密钥——这使得攻击者可能获取域内所有用户和计算机的密钥。
缓解措施建议
目前微软尚未发布补丁,Akamai建议企业采取以下措施:
- 使用其提供的PowerShell脚本识别具备dMSA创建权限的主体及对应OU
- 将该权限严格限制于可信管理员账户
- 部署系统访问控制列表(SACL)监控以下行为:
- 新建
msDSDelegatedManagedServiceAccount
对象 - 修改
msDSManagedAccountPrecededByLink
属性 - 为含
KERB-DMSA-KEY-PACKAGE
结构的dMSA生成票据授予票据(TGT)
- 新建