Kerberos协议安全攻防全景解析从黄金票据到域控加固的实战指南1. Kerberos协议核心机制与安全架构Kerberos作为现代企业网络中最广泛使用的认证协议之一其安全机制设计直接影响整个Active Directory域的安全性。这套基于票据的认证系统包含三个关键组件KDC密钥分发中心域控制器上运行的核心服务包含AS认证服务和TGS票据授予服务TGT票据授予票据由krbtgt账户的NTLM Hash加密包含用户身份和会话密钥ST服务票据由目标服务的NTLM Hash加密用于访问特定资源认证流程中的五个关键阶段及其加密要素AS-REQ/AS-REP客户端用自身NTLM Hash加密时间戳KDC返回TGTTGS-REQ/TGS-REP客户端提交TGT获取服务票据AP-REQ/AP-REP客户端向服务出示票据完成认证# Kerberos认证流程简图 Client - AS: AS-REQ(加密时间戳) AS - Client: AS-REP(TGT) Client - TGS: TGS-REQ(TGT, 服务SPN) TGS - Client: TGS-REP(ST) Client - Server: AP-REQ(ST)2. 黄金票据攻击手法深度剖析黄金票据攻击本质是伪造TGT票据其技术原理源于Kerberos协议设计中的信任链断裂点攻击条件矩阵必要条件获取方法防御检测点域名称nltest /dsgetdc:domain日志监控DC定位请求域SIDwhoami /user或Get-DomainSIDSID泄露事件告警krbtgt的NTLM Hashlsadump::dcsync /user:krbtgtDCSync操作监控任意用户名可伪造不存在用户异常用户登录检测Mimikatz实战命令kerberos::golden /user:FakeAdmin /domain:corp.com /sid:S-1-5-21-... /krbtgt:a9b30e... /ptt攻击成功后攻击者将获得绕过所有账号策略限制可任意加入特权组如Domain Admins持久化生存不受krbtgt密码更改影响3. 白银票据攻击与Kerberoasting对比白银票据攻击特征仅需服务账号Hash非域管权限只对特定服务有效如CIFS、HTTP不经过KDC验证更难检测# Impacket白银票据生成示例 python ticketer.py -nthash a9b30e... -domain-sid S-1-5-21-... -domain corp.com -spn cifs/fileserver.corp.com fakeuser与Kerberoasting的差异对比维度白银票据Kerberoasting所需权限服务账号Hash普通域用户权限攻击目标伪造ST直接访问服务爆破服务账号密码检测难度无KDC交互难以发现大量TGS请求易触发告警缓解措施服务账号强密码HSM保护启用AES加密账号监控4. MS14-068漏洞利用全景分析这个经典漏洞源于PAC验证机制的缺陷攻击者可伪造高权限PAC实现权限提升漏洞利用链普通域用户构造恶意PAC利用KDC签名验证绕过CVE-2014-6324将伪造的TGT提交给KDC获取域管理员权限的服务票据# MS14-068利用工具示例 python ms14-068.py -u usercorp.com -p Password123 -s S-1-5-21-... -d dc.corp.com现代防御方案安装KB3011780补丁启用PAC签名验证默认启用监控异常TGT请求模式5. 企业级防御体系构建分层防御策略网络层控制限制域控制器TCP/88、UDP/88端口访问部署网络行为分析NBA系统检测异常Kerberos流量主机层加固# 启用Kerberos审计策略 Auditpol /set /subcategory:Kerberos Authentication Service /success:enable /failure:enable Auditpol /set /subcategory:Kerberos Service Ticket Operations /success:enable /failure:enable账号安全最佳实践定期轮换krbtgt密码每180天服务账号使用gMSA组托管服务账户启用Protected Users安全组日志监控关键事件事件ID 4768TGT请求异常事件ID 4769ST请求异常事件ID 4672特权登录6. 攻击检测与应急响应实战黄金票据检测技术// KQL查询异常TGT请求 SecurityEvent | where EventID 4768 | where TicketEncryptionType 0x17 // 异常加密类型 | where Status 0x0 | where TicketOptions ! 0x40810000 // 非正常票据选项白银票据识别方法服务端日志分析事件ID 4624登录类型3服务账号SPN异常使用监控客户端Kerberos缓存检查应急响应流程立即重置krbtgt密码两次确保复制完成撤销所有现有Kerberos票据klist purge分析攻击路径与影响范围更新所有服务账号凭证7. 红队视角的进阶攻击手法跨域黄金票据利用域间信任关系中的SID过滤缺陷需要Enterprise Admins组权限可跨域控制整个林资源Kerberos委派滥用graph LR A[攻陷服务A] --|约束委派| B[获取服务B访问权] A --|基于资源委派| C[控制关键服务器]防御创新技术微软云信任Cloud Trust模型特权访问工作站PAW部署证书为基础的Kerberos认证PKINIT