组合利用AdminSDHolder和SDProp打造隐蔽域控后门 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

组合利用AdminSDHolder和SDProp打造隐蔽域控后门

丝绸之路 内网渗透 2017-07-02 09:42:22
240761
收藏

导语:本文中的内容描述了一种方法,通过该方法,攻击者可以在拥有域管理员级别的权限的5分钟后,就可以持续对Active Directory的进行管理访问。

本文中的内容描述了一种方法,通过该方法,攻击者可以在拥有域管理员级别的权限的5分钟后,就可以持续对Active Directory的进行管理访问。

我在DerbyCon(2015)上介绍了这种AD权限持久的方法。

完整的活动目录权限持久技巧帖子列表

AdminSDHolder概述

AdminSDHolder是位于Active Directory中的系统分区(cn = adminsdholder,cn = system,dc = domain,dc = com)中的一个对象,通常作为某些特权组成员的对象的安全模板。枚举这些组中的对象,并标记那些具有与AdminSDHolder ACL不匹配的安全描述符的任何对象,之后进行更新。安全描述符传播器(SDProp)进程在PDC模拟器上每60分钟运行一次,并使用AdminSDHolder设置的安全权限重新标记对象访问控制列表(ACL)。

SneakyADPersistence-AdminSDProp-AdminSDHolder-ADObject.jpg

由AdminSDHolder保护的对象的 “AdminCount” 属性的值会设置为1,安全继承被禁用。

请注意,当从一个受保护的组中删除对象时,AdminCount不会设置为另一个值。这是由于Windows 2000发布时的早期反馈所致。

默认的AdminSDHolder安全ACL

AdminSDHolder对象权限会作为域中的特权组的ACL模板。

相关的AdminSDHolder的默认ACL如下:

·  已验证的用户:只读

·  系统:完全控制

·  管理员组:修改

·  域管理员组:修改

·  企业管理员组:修改

SneakyADPersistence-AdminSDProp-AdminSDHolder-ADObject-DefaultACLs.jpg

AdminSDHolder默认保护对象

SDProp受保护对象(Windows Server 2008和Windows Server 2008 R2)如下:

·  Account Operators

·  Administrator

·  Administrators

·  Backup Operators

·  Domain Admins

·  Domain Controllers

·  Enterprise Admins

·  Krbtgt

·  Print Operators

·  Read-only Domain Controllers

·  Replicator

·  Schema Admins

·  Server Operators

这些组的子集可以从控制中排除,包括Account Operators, Server Operators, Print Operators, Backup Operators。

大约60分钟后,运行PDC模拟器,该帐户现在可以完全控制Domain Admins组。或者,手动运行SDPRop。

在Windows Server 2008 R2中,Microsoft引入了一个新的rootDSE LDAP修改操作(称为RunProtectAdminGroupsTask)来启动AdminSDHolder进程。

新的Windows 2008 R2基于RunProtectAdminGroupsTask的机制提供了一种更有效的机制来强制执行AdminSDHolder应用程序。在这种情况下,旧的基于FixUpInheritance的机制并没有真正启动AdminSDHolder进程,它启动安全描述符传播器更新(SDProp)进程。SDProp对关键安全组和帐户的ACL具有相同的效果,但需要更长时间才能完成。SDProp是将父对象上的可继承ACE的更改传播到其子对象的后台AD进程。当对象的ACL被修改或移动对象时,它会自动触发。SDProp影响所有AD子对象的ACL,而不仅仅是关键AD安全组和帐户的ACL,因此将消耗更多的DC处理时间。
WindowsPTP上的SDProp参考。

手动触发SDProp进程

FixUpInheritance(Windows 2008 R2之前):

Get-AdminSDProp-ManuallyRun-FixUpInheritance.jpg

Windows 2008 R2基于 RunProtectAdminGroups Task机制的启动方式:

SneakyADPersistence-AdminSDProp-ManuallyRun-WindowsServer2008R2Method-RunProtectAdminGroupsTask.jpg

组合利用AdminSDHolder和SDProp

将帐户或组添加到AdminSDHolder对象权限后,将授予完全控制权或修改权限。在这个例子中我添加了用户“Bobafett”。

SneakyADPersistence-AdminSDProp-SecuritySettings-Bobafett-FullControl.jpg

运行SDProp之后,Bobafett将自动添加到Domain Admins组中(以及上面列出的其他组)。现在此帐户就可以修改Domain Admins组的成员。

SneakyADPersistence-AdminSDProp-DomainAdmins-SecuritySettings-Bobafett-FullControl.jpg

请注意,Bobafett的用户帐户没有组成员。

SneakyADPersistence-AdminSDProp-BobaFett-UserRights-GetADUser-02.jpg

尽管不是任何组的成员,该帐户现在可以修改域管理员组的组成员。

SneakyADPersistence-AdminSDProp-BobaFett-Add-JoeUser-DomainAdminsGroup-01.jpg

SneakyADPersistence-AdminSDProp-BobaFett-Add-JoeUser-DomainAdminsGroup-02.jpg

结论

AdminSDHolder是攻击者通过利用关键安全组件来持续授予在Active Directory中修改最多特权组的能力的一种隐蔽方法。即使在受保护的组或用户上更改了权限,SDProp也可以更改安全权限,使其与AdminSDHolder对象的权限相匹配。

检测方法

监视AdminSDHolder对象上配置的ACL。这些应该保持默认 - 通常不需要向AdminSDHolder ACL添加其他组。

使用AdminCount = 1监视用户和组,以标识出由SDProp设置的ACL的帐户。
使用PowerShell AD cmdlet查找由SDProp设置的安全ACL的所有用户:

Import-Module ActiveDirectory
 Get-ADObject -LDAPFilter “(&(admincount=1)(|(objectcategory=person)(objectcategory=group)))” -Properties MemberOf,Created,Modified,AdminCount

参考文献:

· 关于AdminSdHolder和SDProp的五个常见问题

· AdminSDHolder,受保护组和SDPROP

· 手动运行SDProp

  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务