非约束性委派与Spooler服务:黄金票据攻击域控的深度解析
2025.09.18 16:43浏览量:0简介:本文详细解析了利用非约束性委派与Spooler打印机服务制作黄金票据攻击域控的技术原理、操作步骤及防御措施,为安全研究人员提供实战指南。
非约束性委派与Spooler服务:黄金票据攻击域控的深度解析
摘要
在域环境安全攻防中,黄金票据攻击是一种高权限的横向渗透技术,而结合非约束性委派(Unconstrained Delegation)与Spooler打印机服务的漏洞利用,可大幅降低攻击门槛。本文从技术原理、操作步骤、防御建议三个维度展开,详细解析如何通过非约束性委派获取服务账户的TGT,再利用Spooler服务触发Kerberos认证,最终伪造黄金票据攻击域控制器(DC)。
一、技术背景与核心原理
1.1 黄金票据攻击的本质
黄金票据(Golden Ticket)是伪造的Kerberos TGT(Ticket Granting Ticket),其核心是利用KRBTGT账户的NTLM哈希值签名票据。攻击者通过获取KRBTGT哈希,可伪造任意用户的TGT,从而长期控制域内资源。
1.2 非约束性委派的作用
非约束性委派允许服务账户(如域内主机或服务)代表用户向任意服务发起认证请求。当服务账户配置了非约束性委派时,攻击者可通过以下流程利用:
- 攻击者控制配置了非约束性委派的服务账户(如主机账户)。
- 通过该账户向DC请求用户的TGT(Service Ticket)。
- DC返回用户的TGT后,攻击者可提取TGT中的用户信息,结合KRBTGT哈希伪造黄金票据。
1.3 Spooler服务的利用价值
Windows Spooler服务(打印服务)存在漏洞(如CVE-2021-1675、CVE-2021-34527),允许攻击者通过RPC接口触发Kerberos认证。结合非约束性委派,攻击者可诱导服务账户(如配置了非约束性委派的主机)向Spooler服务发起认证,从而获取TGT。
二、攻击流程详解
2.1 环境准备与信息收集
- 目标识别:通过LDAP查询或PowerView工具,筛选配置了非约束性委派的服务账户(属性
userAccountControl
包含TRUSTED_FOR_DELEGATION
)。Get-ADUser -Filter {UserAccountControl -band 524288} -Properties UserAccountControl
- KRBTGT哈希获取:通过DCSync攻击或域内渗透获取KRBTGT的NTLM哈希(需已控制域管理员账户)。
2.2 利用非约束性委派获取TGT
- 诱导认证:通过社会工程学或漏洞利用(如永恒之蓝)控制配置了非约束性委派的主机。
- 触发Spooler认证:利用Spooler服务的RPC接口,诱导主机向Spooler服务发起认证。例如,通过
AddPrinterDriver
函数触发认证请求。 - 提取TGT:使用Mimikatz的
sekurlsa::tickets
命令导出内存中的TGT。Invoke-Mimikatz -Command '"sekurlsa::tickets /export"'
2.3 伪造黄金票据
- 票据生成:使用Mimikatz的
kerberos::golden
命令,结合KRBTGT哈希和TGT中的用户信息伪造票据。kerberos::golden /user:Administrator /domain:contoso.com /sid:S-1-5-21-1234567890-1234567890-1234567890 /krbtgt:a1b2c3d4e5f6g7h8i9j0 /ptt
- 票据注入:通过
/ptt
参数将票据注入当前会话,或保存为.kirbi
文件供后续使用。
2.4 攻击域控制器
- 访问DC资源:使用伪造的TGT向DC请求服务票据(如LDAP、CIFS),访问域内敏感资源。
- 持久化控制:通过黄金票据维持长期访问权限,甚至在KRBTGT密码轮换后仍可利用(需提前获取多个KRBTGT哈希)。
三、防御与检测建议
3.1 限制非约束性委派
- 最小权限原则:仅对必要服务账户配置约束性委派(Constrained Delegation),避免使用非约束性委派。
- 审计与监控:定期检查域内配置了非约束性委派的账户,使用
Get-ADUser
或BloodHound
工具进行可视化分析。
3.2 保护KRBTGT账户
- 定期轮换密码:按照安全策略定期重置KRBTGT账户密码(需计划停机时间,避免影响域认证)。
- 限制DC访问:通过防火墙规则或网络分段限制对DC的RPC(135端口)和LDAP(389端口)访问。
3.3 修复Spooler服务漏洞
- 禁用Spooler服务:若无需打印功能,可通过组策略禁用Spooler服务。
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled
- 安装补丁:及时应用微软发布的Spooler服务漏洞补丁(如CVE-2021-34527的补丁KB5005565)。
3.4 行为监控与告警
- 异常认证检测:监控域内异常的Kerberos认证请求(如非工作时间的大规模TGT请求)。
- 票据使用分析:通过SIEM工具分析票据的使用频率和目标服务,识别可疑的黄金票据活动。
四、总结与展望
结合非约束性委派与Spooler服务的黄金票据攻击,是域环境安全中的高风险场景。攻击者通过社会工程学、漏洞利用或内部渗透获取初始权限后,可利用非约束性委派降低TGT获取难度,再通过Spooler服务触发认证,最终伪造黄金票据控制域控。防御方需从权限管理、补丁修复、监控告警三方面构建纵深防御体系,同时定期进行红队演练,验证防御措施的有效性。未来,随着零信任架构的普及,基于身份的动态认证机制或将成为抵御此类攻击的关键。
发表评论
登录后可评论,请前往 登录 或 注册