问题背景
某制造企业内网 AD 域(Windows Server 2019 域控 + Windows 11 工作站)长期运行。安全团队在例行红蓝对抗演练中发现:攻击者仅用一个普通域用户账号,即可在 4 分钟内枚举出 17 个高权限服务账号的 Kerberos 票据,并成功破解其中 3 个域管理员等效权限的哈希。整个过程未触发任何杀毒或 EDR 告警,暴露了「仅依赖边界防火墙 + 终端杀毒」的传统防御体系对域内横向移动的严重盲区。
故障现象
- SPN 枚举无感:攻击者使用
setspn.exe -T domain -Q */*或 BloodHound 在普通域用户权限下即可列出所有注册 SPN 的服务账号(包括 SQL、Exchange、IIS 应用池账号)。 - Kerberoasting 低权限即可执行:使用普通域账号请求目标服务账号的 TGS 票据,票据中包含服务账号的 NTLM 哈希加密部分,可离线破解。
- 破解成功率高:3 个服务账号密码为弱口令或「公司名+年份」模式,John the Ripper 在 30 秒内即破解成功,获得域管理员权限。
- 无告警:全程未触发 Windows Defender、深信服 EDR 或 SIEM 规则,安全运营团队完全不知情。
排查过程
第一步:确认攻击路径
使用 BloodHound 导入域控导出数据,绘制攻击图:
- 起点:普通域用户
corp\li - 中间:
corp\sqlsvc(SQL Server 服务账号,SPN 注册MSSQLSvc/sql01.corp.local) - 终点:
corp\domainadmin(域管理员组成员)
第二步:复现 Kerberoasting
在测试机上以普通域用户身份执行:
|
|
导出 .kirbi 文件后,使用 kirbi2john.py 转换为 John 格式,成功在 22 秒内破解出明文密码 Corp2023!。
第三步:定位防御缺失
- Windows Defender:默认仅监控已知恶意工具(mimikatz、Rubeus),对
setspn+kerberos::list的组合无特征。 - EDR:深信服 EDR 未配置「异常 SPN 请求频次」与「低权限账号请求高权限服务票据」的关联规则。
- 域控审计:
Audit Kerberos Authentication Service与Audit Kerberos Service Ticket Operations均未开启,事件 ID 4768/4769 缺失。
解决方案
1. 立即止血(当天完成)
- 重置所有高权限服务账号密码(长度 ≥ 25 字符,包含大小写+数字+符号)。
- 禁用不必要的 SPN(仅保留必要服务账号的 SPN)。
- 对
sqlsvc、iissvc等服务账号启用 约束委派(Constrained Delegation),禁止非约束委派。
2. 检测规则落地(3 天内)
在域控上启用高级审计策略:
|
|
部署 SIEM(或 Windows Event Forwarding + WEF)规则:
- 规则 1:5 分钟内同一源 IP 请求 ≥ 10 个不同 SPN 的 TGS 票据 → 高危告警。
- 规则 2:普通域用户请求注册在高权限组(Domain Admins / Enterprise Admins)成员账号的 TGS 票据 → 立即告警。
- 规则 3:
Event ID 4769中Ticket Options包含0x40810000(可转发票据)且目标服务账号不在白名单 → 告警。
3. 长期加固(2 周内)
- 密码策略差异化:服务账号强制使用 组管理服务账号(gMSA) 或至少 30 字符随机密码 + 定期轮换。
- 约束委派白名单:仅允许必要服务(如 SQL Server 访问文件服务器)配置约束委派,禁止任意服务账号拥有非约束委派权限。
- LAPS + JIT 管理:所有服务器本地管理员密码改用 LAPS,域管理员日常使用普通账号 + JIT 提权(Privileged Access Workstation + Just-In-Time)。
- BloodHound 定期扫描:每月运行 BloodHound,标记「Kerberoastable」高风险账号,纳入季度加固计划。
根因分析
根本原因在于域内默认信任模型 + 服务账号密码弱 + 缺乏 Kerberos 流量审计三者叠加:
- AD 域默认允许任何已认证用户请求任意服务账号的 TGS 票据(Kerberos 协议设计如此)。
- 早期为方便运维,服务账号密码设置简单且长期未轮换。
- 安全团队对「域内横向移动」场景缺乏针对性检测规则,仅依赖终端杀毒与边界防护。
预防措施
| 措施 | 优先级 | 预期效果 |
|---|---|---|
| 服务账号改用 gMSA 或 ≥30 字符随机密码 | P0 | 彻底杜绝 Kerberoasting 破解可能 |
| 启用域控 Kerberos 高级审计 + SIEM 规则 | P0 | 攻击行为 5 分钟内可发现 |
| 约束委派白名单化 + 禁用非约束委派 | P1 | 降低票据转发风险 |
| 每月 BloodHound 扫描 + 红蓝对抗演练 | P1 | 持续发现配置漂移 |
| 域管理员日常操作使用 PAW + JIT | P2 | 降低域管凭据长期驻留风险 |
总结
本次 Kerberoasting 攻击复盘再次印证:域内安全不是「杀毒 + 防火墙」就能解决的。只要服务账号密码可被破解、SPN 可被枚举、Kerberos 流量无审计,攻击者就能在极短时间内完成从普通用户到域管理员的权限提升。
真正的防御在于把「默认可被攻击」的状态变成「需要配置才能攻击」——通过 gMSA、约束委派、Kerberos 审计、BloodHound 持续扫描,把 Kerberoasting 从「低成本高成功率」变成「高成本低成功率」,才能真正守住域内最后一道防线。
参考资料