Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

无约束委派

无约束委派

Jun 21, 2025

无约束委派代表严重的网络安全风险。通过采取措施滥用 Active Directory 在 AD 环境中应用于用户和计算机对象的委派控制,攻击者可以进行横向移动,甚至获得对域的控制权。

本文博客文章将探讨这种攻击领域(非约束委派,unconstrained delegation),并为安全团队和管理员提供缓解该安全风险的有效策略。

什么是非约束委派(unconstrained delegation)?

委派(Delegation)使用户或计算机能够冒充其他账户,以访问资源(例如后端数据库服务器)。委派有多种实际应用,Microsoft 将在本文博客中进行介绍

在用户或计算机账户上使用“委派(Delegation)”选项卡,你可以配置非约束委派(unconstrained delegation)或约束委派(constrained delegation):

  • 通过选择“Trust this computer for delegation to any service (Kerberos delegation only),”你正在启用非约束(unconstrained)
  • 此外,你也可以通过指定特定的 Service Principal Names (SPNs) 来限制用户或计算机可以冒充的服务范围,这称为 受限 委派

Unconstrained Delegation 1

请注意,另一种选择是 基于资源的受限委派(RBCD)。在该模式下,会在资源本身上配置委派,而不是在访问该资源的账户上配置。RBCD 可以使用 Windows PowerShell 进行设置。

无约束委派(unconstrained delegation)有哪些风险?

针对无约束委派(unconstrained delegation)可以实施多种攻击:其中一些在 harmj0y 的这篇博客文章中有介绍,以及 Sean Metcalf 描述了其他一些。让我们看两个例子。

示例 1:滥用无约束委派(unconstrained delegation)以攻破整个 AD 林

安全研究人员展示了 在一个林中使用无约束委派(unconstrained delegation)攻破某台机器的攻击者,如何能够攻破另一个林以及其中的每个域。如果已经建立了双向信任(two-way trust),攻击者可以利用 MS-RPRN 打印机漏洞,使域控制器(DC)将认证信息回传给攻击者,从而使其能够使用 DCSync 来攻破受信任的域。例如,如果贵公司收购了一家小公司,并将其域加入到贵公司的域中,那么攻击者一旦攻破了小环境中的某台系统,就可能接管贵公司整个林——这当然绝不是好事。

已发布一篇 KB article 来提供该漏洞的修复方案。在 Windows Server 2012 及更高版本中,也有安全设置可以防止此问题,但它可能 会默认启用。

示例 2:利用无约束委派(unconstrained delegation)实现横向移动

再看另一个场景。如果在某台计算机上启用了无约束委派(unconstrained delegation),那么只要任一账号连接到该计算机,该账号从密钥分发中心(Key Distribution Center,KDC)获得的票据授予票据(ticket-granting ticket,TGT)就会被存储在内存中,以便该计算机后续使用。若该机器遭到入侵,攻击者就可以获取这个 TGT 并滥用它来造成大量损害——尤其是在该 TGT 属于高权限用户时。

例如,假设某位域管理员(Domain Admin)通过访问共享文件夹,来使用公共互联网文件系统(Common Internet File System,CIFS)访问一台特定计算机。如果未启用无约束委派(unconstrained delegation),那么内存中只会存储票据授予服务器(ticket-granting server,TGS);该票据只能提供对本地计算机上 CIFS 服务的访问,因此对手无法利用它进行横向移动。我们可以通过使用 Mimikatz 命令 sekurlsa::tickets /export 来看到这一点。该命令只会返回用户的服务票据(TGS):

Unconstrained Delegation 2

但是,如果启用了无约束委派(unconstrained delegation),该命令会返回管理员帐户的 TGT,攻击者可以在 Pass-the-Ticket 攻击中使用它,从而入侵整个域。

Unconstrained Delegation 3

为了从连接到系统的任何用户那里收集 TGT,攻击者可以使用以下 PowerSpoit 命令:

Unconstrained Delegation 4

启用无约束委派所需的权限

要管理对象的委派控制,用户需要以下权限:

  • SeEnableDelegationPrivilege(用户权限)由域控制器的本地 security policy控制,并通过 Group Policy setting “Enable computer and user accounts to be trusted for delegation”进行管理,如下所示。
  • 能够更新计算机的 msDS-AllowedToDelegateTo 和 userAccountControl 属性;在这里存储了该 组策略设置

Unconstrained Delegation 5

查找不受约束的委派

要了解在哪里启用了不受约束的委派,可以使用下面的 PowerShell 脚本。它会检查所有计算机的用户帐户控制(UAC)值,以查看在哪些地方在不受限制的情况下启用了委派。

Unconstrained Delegation 6

您可能还需要查看是谁被授予了 SeEnableDelegationPrivilege 权限。为此,您可以使用 PowerSploit 和 Get-DomainPolicy 命令。

降低不受约束委派风险的最佳实践

为降低因“未受约束的委派”(unconstrained delegation)带来的风险,建议:

  • 调查是否确实需要“未受约束的委派”(unconstrained delegation)。在许多情况下,“未受约束的委派”是被误开启的,可以选择彻底禁用,或将其转换为“受约束的委派”(constrained delegation)或“基于资源的受约束委派”(resource-based constrained delegation)。 请注意:不建议将“受约束的委派”(constrained delegation)配置到域控制器(DC)上。原因是,一旦攻击者攻破了受约束委派账户,就能够在 DC 上对任何用户进行冒充,并访问 DC 上的任意服务。
  • 使用“此账户是敏感账户,且不能被委派”(This account is sensitive and cannot be delegated)选项,防止敏感账户被用于委派。
  • 将特权用户放入 Protected Users 组。这样有助于防止他们被用于委派,并在他们完成身份验证后让其 TGT 不保留在计算机上。
  • 密切监控被委派账户的活动。所有配置并使用了任意类型委派的系统,都应监控是否存在可疑活动。

Netwrix 能如何帮助您?

不受约束的委派(Unconstrained delegation)是恶意者可利用的众多攻击途径之一,用于获取对 Active Directory 环境的访问权限并建立持久性。有了 Netwrix Active Directory Security Solution ,您将能够:

  • 发现包括不必要委派、过度权限、常驻权限(standing privileges)以及 GPO 配置错误在内的安全风险,并优先安排您的缓解工作。
  • 在整个 IT 基础架构中建立安全配置,并通过识别并纠正与已加固基线(hardened baseline)不一致的任何不当变更来持续维护它们。
  • 及时检测并响应高级威胁,例如 KerberoastingDCSyncdit extraction 以及 Golden Ticket 攻击。
  • 自动化对已知攻击的响应,以尽量减少损失。
  • 在发生安全漏洞或其他事件时,确保 Active Directory 的快速恢复。

常见问题

在 Active Directory 中有哪些可用的委派类型?

组织可以使用的委派类型共有 3 种:

  • 不受约束的委派
  • 受约束的委派
  • 基于资源的受约束委派(RBCD)

什么是基于资源的受约束委派(RBCD)?

使用 RBCD 时,拥有某个资源的管理员可以将对该资源的访问权限委派出去。

我该如何配置 RBCD?

要配置资源服务以允许代表用户进行访问,您可以使用 Windows PowerShell cmdlet(New-ADComputerNew-ADServiceAccountNew-ADUserSet-ADComputerSet-ADServiceAccount 和 Set-ADUser),并使用参数 PrincipalsAllowedToDelegateToAccount

申请 Netwrix Directory Manager 免费试用

分享到

了解更多

关于作者

Asset Not Found

Joe Dibley

安全研究员

Netwrix 的安全研究员,并且是 Netwrix Security Research Team 的成员。Joe 是 Active Directory、Windows 以及各类企业软件平台与技术方面的专家;他/她研究新的安全风险、复杂的攻击技术,以及相应的缓解措施与检测方法。