
Windows Kerberos认证中存在一个关键漏洞,该漏洞显著扩大了Active Directory环境中凭据中继攻击的攻击面。攻击者通过滥用Windows客户端在Kerberos服务票据请求期间处理DNS CNAME响应的方式,可以诱使系统为攻击者控制的服务器请求票据,从而绕过传统防护措施。
攻击流程图(来源:Cymulate)
攻击向量分析
该漏洞的核心在于一个基本行为:当Windows客户端收到DNS CNAME记录时,它会遵循别名。客户端使用CNAME主机名作为服务主体名称(SPN)来构造票据授予服务(TGS)请求。能够拦截DNS流量的攻击者可以利用这一点,迫使受害者向攻击者选择的目标请求服务票据。
这种技术需要攻击者通过ARP欺骗、DHCPv6欺骗(MITM6)或类似方法建立DNS中间人攻击能力。
受害者被重定向到攻击者的服务器,服务器返回401强制Kerberos认证(来源:Cymulate)
当受害者尝试访问合法域资产时,恶意DNS服务器会返回一个指向攻击者控制主机名的CNAME记录,以及一个解析为攻击者IP地址的A记录。这导致受害者使用为攻击者目标服务准备的票据向攻击者基础设施进行认证。
攻击能力与影响
| 影响范围 | 描述 |
|---|---|
| 远程代码执行 | 通过ADCS Web注册(ESC8)实现远程代码执行 |
| 中继攻击 | 跨协议中继(HTTP→SMB,HTTP→LDAP) |
| 横向移动 | 未经授权的访问和网络传播 |
| 身份冒充 | 无需密码即可冒充用户 |
测试证实,该漏洞在Windows 10、Windows 11、Windows Server 2022和Windows Server 2025的默认配置下均可成功利用。当未强制执行签名或通道绑定令牌(CBT)时,攻击可成功针对SMB、HTTP和LDAP等未受保护的服务。该漏洞已于2025年10月向微软负责任的披露。
DNS投毒将受害者重定向到恶意目标,强制发起Kerberos TGS请求(来源:Cymulate)
作为回应,微软为HTTP.sys实现了CBT支持,并在2026年1月的安全更新中为支持的Windows Server版本发布了补丁(CVE-2026-20929)。然而,这种缓解措施仅解决了HTTP中继场景,底层的DNS CNAME强制原语仍未改变,其他协议仍然存在漏洞。
概念验证
研究人员在GitHub上发布了具有CNAME投毒能力的MITM6工具修改版。该工具支持针对特定域或所有DNS查询的定向CNAME投毒,包含用于ARP欺骗集成的纯DNS模式,并支持关键基础设施连接的直通功能。利用该工具需要Python 3.x和Linux操作系统。
adcs-server.mycorp.local的A记录指向攻击者IP(来源:Cymulate)
Cymulate研究实验室建议组织采取分层防御措施:
| 安全层级 | 推荐控制措施 | 目的 |
|---|---|---|
| SMB安全 | 在所有服务器(不仅是域控制器)上强制执行SMB签名 | 防止SMB中继和中间人攻击 |
| 目录服务 | 要求LDAP签名并在支持的地方强制执行LDAPS通道绑定令牌(CBT) | 防止LDAP中继和凭据拦截 |
| Web服务 | 对所有内部HTTP服务强制使用HTTPS和CBT | 减轻通过HTTP的NTLM中继攻击 |
| DNS基础设施 | 强化DNS服务器并考虑使用DNS over HTTPS(DoH) | 降低DNS欺骗和流量操纵风险 |
| Kerberos监控 | 监控针对异常SPN的异常TGS请求 | 检测潜在的Kerberos滥用或横向移动 |
| 威胁检测 | 对跨协议认证模式设置警报 | 识别NTLM/Kerberos中继和协议滥用尝试 |
这项研究揭示了一个关键的安全现实:Kerberos本身并不能防止中继攻击,防护措施的实施取决于服务级别。
DNS投毒后,受害者连接到攻击者的恶意HTTP或SMB服务器(来源:Cymulate)
仅禁用NTLM是不够的,组织必须明确地在每个支持Kerberos的服务上强制执行反中继保护,才能有效消除中继风险。
参考来源:
New Kerberos Relay Attack Uses DNS CNAME to Bypass Mitigations – PoC Released
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf
客服小蜜蜂(微信:freebee1024)

