1. 攻击手法深度解析:CNAME记录如何成为Kerberos中继跳板
这种攻击的核心在于滥用DNS系统中的CNAME别名记录特性。攻击者首先在内网中注册一个恶意主机,为其设置指向合法服务(如文件共享服务器)的CNAME记录。当客户端尝试访问这个伪装服务时,Kerberos认证流程会被劫持:
- 客户端查询"fileshare.contoso.com"的DNS记录
- DNS返回指向"malicious-server.contoso.com"的CNAME记录
- 客户端向恶意服务器发起Kerberos认证请求
- 攻击者将认证请求中继到真正的文件服务器
- 文件服务器返回的TGS票据被攻击者截获
关键点:传统安全设备通常只验证SPN是否匹配,而不会检查底层DNS记录是否被篡改。这使得CNAME重定向可以绕过常规的Kerberos防护机制。
2. 攻击链完整复现与技术细节
2.1 前置条件准备
- 获取一个普通域账户权限(可通过钓鱼等方式)
- 在内网DNS服务器上注册恶意主机记录
- 配置CNAME指向高价值目标(如域控、文件服务器)
2.2 具体攻击步骤
- 使用PowerShell添加恶意DNS记录:
powershell复制Add-DnsServerResourceRecord -ZoneName "contoso.com" -CName -Name "fake-fileshare" -HostNameAlias "dc01.contoso.com"
- 搭建中继服务器监听88端口:
bash复制python krbrelayx.py --target http://real-server.contoso.com --cname fake-fileshare.contoso.com
- 等待域内用户访问伪装服务时截获票据
2.3 漏洞利用关键点
- 需要目标网络允许普通用户注册DNS记录
- 依赖客户端自动跟随CNAME重定向的特性
- 利用Kerberos协议不验证DNS记录真实性的缺陷
3. 防御方案与缓解措施
3.1 即时缓解方案
mermaid复制graph TD
A[启用DNS动态更新限制] --> B[配置DNS注册ACL]
B --> C[禁用非特权用户的CNAME创建权限]
C --> D[部署网络层Kerberos流量监控]
3.2 长期加固建议
- 实施DNS注册白名单制度
- 部署支持Kerberos协议深度检测的IDS/IPS
- 定期审计域内所有CNAME记录
- 启用SMB签名等附加认证机制
4. 企业安全防护升级路线
对于大型企业网络,建议分三个阶段实施防护:
| 阶段 | 措施 | 实施周期 |
|---|---|---|
| 应急 | 禁用非必要CNAME记录 | 24小时内 |
| 加固 | 部署Kerberos流量审计 | 1-2周 |
| 根治 | 迁移至基于证书的认证 | 6-12个月 |
注意:任何防护措施都应先在测试环境验证,避免影响生产系统可用性。