AdminSDHolder
当我们对整个域乃至森林实现了支配之后,如同前期章节提到的主机持久化,我们也需要对域实现持久化访问。实现域的持久化访问也是有多种方式,现在我们先来讨论 AdminSDHolder。
AdminSDHolder 是一个 DACL 模板,用于保护敏感主体不被更改。 我们可以通过修改域管理员组的 DACL 来进行测试,例如让一普通域用户完全控制该分组。 但在约1小 1 小时候后,该实体会消失。 受保护的对象列表如下:
Account Operators
Backup Operators
Server Operators
Print Operators
Domain Admins
Replicator
Enterprise Admins
Domain Controllers
Read-only Domain Controllers
Scheme Admins
Administrators
在以上的列表中,一些分组可以在DC上 DC 上本地访问,因此诞生出一些利用手法,例如:
Account Operators:Operators:不可以直接修改 Domain Admins、Enterprise Admins等Admins 等域组,但是可以更改这些域组的内嵌分组,例如将较低权限的分组添加到Domain Admins 分组
Backup Operators:Operators:备份 GPO,编辑以将受控帐户的 SID 添加到特权组并还原
Server Operators:Operators:以SYSTEM权 SYSTEM 权限执行命令
Print Operators:Operators:拷贝 ntds.nit 备份,加载设备驱动
但是,AdminSDHolder 本身不受保护,因此如果我们修改作用于它的 DACL,这些更改将被复制到后续对象。 因此,即使管理员在 DA 等组上看到了恶意 DACL 并将其删除,它也会再次被还原以及重新应用。
对 AdminSDHolder 对象具备域管理员特权( (即完全控制或写权限)),可以通过添加具有完全控制或者其他有趣的权限的用户,以实现后门或持久化访问。通过添加具有完全权限的用户。
通过 PowerView实现 (以DA运行):
Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,dc=us,dc=techcorp,dc=local' -PrincipalIdentity
studentuser1 -Rights All -PrincipalDomain us.techcorp.local -TargetDomain us.techcorp.local -Verbose