01、简介
AdminSDHolder是一个特殊的AD容器,通常作为某些特权组成员的对象的安全模板。Active Directory将采用AdminSDHolder对象的ACL并定期将其应用于所有受保护的AD账户和组,以防止意外和无意的修改并确保对这些对象的访问是安全的。如果攻击者能完全控制AdminSDHolder,那么它就能同时控制域内的许多组,这可以作为域内权限维持的方法。
02、利用方式
(1)AdminSDHolder对象添加ACL
使用PowerView,地址如下:
https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
添加用户bypass对AdminSDHolder的完全访问权限,命令如下:
Add-ObjectAcl -TargetADSprefix 'CN=AdminSDHolder,CN=System' -PrincipalSamAccountName bypass -Verbose -Rights All
(2)执行SDProp
SDProp进程每60分钟(默认情况下)在包含域的PDC模拟器(PDC)的域控制器上运行一次,SDProp将域的AdminSDHolder对象的权限与域中受保护的帐户和组的权限进行比较。如果任何受保护帐户和组的权限与AdminSDHolder对象的权限不匹配,则将受保护帐户和组的权限重置为与域的AdminSDHolder对象的权限匹配。
配置完成后ACL 中的更改将在 60 分钟后自动传播,可通过更改注册表的方式设置SDProp 的时间间隔,该值的范围是从60到7200,单位为秒,键类型为DWORD可以直接使用命令行更改:
reg add hklm\SYSTEM\CurrentControlSet\Services\NTDS\Parameters /v AdminSDProtectFrequency /t REG_DWORD /d 60
(3)登录bypass用户,可疑看到bypass非域管用户,却可以将自己添加到“域管理员”组。
03、检测方法
(1) 查看AdminSDHolder对象属性
在域控上运行窗口中输入adsiedit.msc,通过查看AdminSDHolder对象的属性,可以看到用户bypass已拥有完全控制的权限,找到异常用户。
(2)这个攻击手法的核心点在于需要修改AdminSDHolder的ACL,因此我们只需要检测对AdminSDHolder的ACL的修改行为即可,可以通过5136日志来监控。
注意点:由于AdminSDHolder对象的机制,即使在 60 分钟内检测到一个帐户并将其从高特权组中删除(除非强制执行),这些权限也将被推回。
参考连接:
https://learn.microsoft.com/zh-cn/windows/security/threat-protection/auditing/event-4780
https://blog.csdn.net/qq_41874930/article/details/111595319
https://www.chuanpuyun.com/article/5364.html
https://cloud.tencent.com/developer/article/1929866
https://anquan.baidu.com/article/877