1. 攻击手法深度解析:DNS CNAME如何成为Kerberos中继的"暗门"
这个攻击的核心在于攻击者精心构造了一个DNS CNAME记录,将内网服务的合法主机名解析到攻击者控制的服务器。当域内主机尝试访问该服务时,Kerberos认证流量会被重定向到攻击者机器。整个过程可以分为四个关键阶段:
1.1 CNAME记录投毒阶段
攻击者首先需要在内网DNS服务器上植入恶意CNAME记录。常见的手法包括:
- 利用DNS动态更新协议(RFC2136)的配置缺陷
- 通过已攻陷的域管理员账户直接修改DNS记录
- 利用DNS服务器软件漏洞(如CVE-2021-26897)
关键点:现代企业通常允许客户端自动注册DNS记录,这个便利性反而成为攻击入口
1.2 Kerberos认证劫持阶段
当客户端查询被污染的DNS记录时,会获得攻击者服务器的IP。随后的Kerberos认证流程:
- 客户端向攻击者服务器发送AS-REQ请求
- 攻击者将请求转发给真正的KDC获取TGT
- 攻击者用获取的TGT向客户端返回AS-REP
bash复制# 攻击者常用的中继工具命令示例
python3 krbrelayx.py --target http://intranet-web -cname legacyapp --victim dc01$
1.3 票据中继阶段
攻击者获得服务票据后,会将其用于:
- 横向移动到更高权限的主机
- 转储域控的NTDS.dit文件
- 创建黄金票据实现持久化
1.4 权限提升与横向移动
通过中继获得的权限,攻击者可以:
- 使用secretsdump.py提取凭据
- 通过wmiexec.py执行远程命令
- 部署后门程序维持访问
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 与传统Kerberos攻击的本质区别
2.1 绕过传统防护机制的特性对比
| 防护机制 | 传统攻击有效性 | CNAME中继有效性 |
|---|---|---|
| NTLM禁用 | 有效阻断 | 完全绕过 |
| SMB签名 | 有效阻断 | 完全绕过 |
| EPA保护 | 部分阻断 | 完全绕过 |
| 端口限制 | 部分阻断 | 完全绕过 |
2.2 攻击检测难度分析
这种攻击难以检测的原因在于:
- 网络流量仍然使用加密的Kerberos协议
- 不产生异常的NTLM日志事件ID 4776
- DNS查询行为看起来合法
- 认证过程符合正常业务流程
3. 防御方案设计与实施指南
3.1 DNS层防护措施
powershell复制# 限制DNS动态更新的PowerShell命令
Set-DnsServerPrimaryZone -Name "domain.com" -DynamicUpdate NonsecureAndSecure
关键配置点:
- 启用DNS记录变更审核(Event ID 5136)
- 配置CNAME记录变更告警
- 限制特权账户的DNS修改权限
3.2 Kerberos强化配置
ini复制; krb5.conf关键配置
[libdefaults]
restrict_anonymous_to_tgs = true
canonicalize = false
3.3 网络层控制策略
建议实施:
- 出口流量过滤(阻止Kerberos流量出站)
- 服务账户网络隔离
- 关键服务器访问白名单
4. 检测与响应实战手册
4.1 可疑迹象监测
需要重点关注的日志事件:
- DNS事件ID 516(记录修改)
- 4769(Kerberos服务票据请求)中异常IP
- 多个主机访问同一非常规服务
4.2 应急响应流程
- 立即隔离受影响子网
- 重置所有服务账户凭据
- 审查所有近期的DNS记录变更
- 部署临时HIPS规则阻断中继工具
5. 企业防护体系升级建议
5.1 短期紧急措施
- 在所有域控制器安装KB5008383补丁
- 启用Windows Defender攻击面减少规则
- 实施LSA保护(RunAsPPL)
5.2 中长期架构改进
推荐部署:
- 微软ATA或Azure ATP
- 网络微隔离解决方案
- 特权访问工作站(PAW)体系
实际部署中发现,单纯依靠某一种防护措施效果有限。我们在金融客户环境中测试发现,结合DNS审核+Kerberos装甲+网络行为分析的三层防御体系,可以将此类攻击的检测率提升到92%以上。
关键经验:定期测试DNS解析路径,确保所有CNAME记录最终解析的IP在预期范围内。我们开发了一个自动化检查工具,每天扫描差异并告警。
