1. Kerberos中继攻击新变种:DNS CNAME记录滥用详解
在Active Directory环境中,Kerberos认证机制长期被视为比NTLM更安全的身份验证方案。然而近期披露的新型攻击技术彻底颠覆了这一认知——攻击者通过操纵DNS CNAME记录,可以强制客户端为攻击者控制的服务请求Kerberos票据,从而绕过传统防护措施。这种攻击方式在Windows 10/11和Server 2022/2025的默认配置下均可成功实施,影响范围涵盖SMB、HTTP和LDAP等核心服务协议。
1.1 漏洞核心原理剖析
该漏洞的根源在于Windows客户端处理DNS CNAME记录时的行为特性。当客户端查询某个服务的主机名(如fileserver.corp.local)时,如果收到DNS响应中包含CNAME记录(例如将fileserver.corp.local指向attacker.corp.local),客户端会直接使用CNAME指向的主机名(attacker.corp.local)作为服务主体名称(SPN)来构造TGS请求。
攻击者通过中间人攻击(如ARP欺骗或MITM6)篡改DNS响应,可以实现:
- 在CNAME记录中指定攻击者控制的主机名
- 在A记录中指定攻击者控制的IP地址
- 迫使受害者为攻击者服务请求Kerberos票据
这种技术绕过了传统基于SPN的防护机制,因为票据请求看起来是针对"合法"的SPN发起的。实际上,攻击者通过控制DNS响应,间接控制了SPN的解析过程。
关键点:Kerberos协议本身不验证服务端身份的真实性,而是依赖DNS解析结果。这正是该攻击得以成功的设计缺陷。
1.2 攻击链完整拆解
典型的攻击流程包含以下六个阶段:
-
网络定位:攻击者通过ARP欺骗或MITM6等手段获得中间人位置,能够拦截和修改受害者的DNS查询
-
DNS投毒:当受害者尝试访问合法服务(如http://fileserver.corp.local)时,攻击者的恶意DNS服务器返回:
code复制fileserver.corp.local. 300 IN CNAME attacker.corp.local. attacker.corp.local. 300 IN A
