前言

最近翻阅笔记发现一篇文章提到通过子域的System权限可以突破获取到父域权限,本文将对此技术进行尝试复现研究。

利用分析

环境信息:

子域:187、sub.cs.org
父域:197、cs.org
  • 1.
  • 2.

首先通过在子域的域控机器上打开mmc.exe->连接ADSI->配置来查看子域的配置命名上下文:

利用子域的System权限通往父域_系统权限

利用子域的System权限通往父域_权限获取_02

从配置中可以看到配置命名上下文的域名实际上是父域cs.org,因此判断子域中看到的信息可能是父域的副本:

利用子域的System权限通往父域_子域_03

继续查看配置对象的安全描述符中的ACL,发现子域没有权限去变更:

利用子域的System权限通往父域_权限获取_04

但是可以看到除了域用户、域管用户以外,还有一个特权ACL条目叫SYSTEM,该条目拥有完全控制权限:

利用子域的System权限通往父域_系统权限_05

SYSTEM属于一个特殊用户,不属于域内用户,因此理论上只要能做到是SYSTEM权限就能控制对象条目而不用关注是不是域内管理员。因此尝试使用SYSTEM权限继续打开配置命名上下文:

利用子域的System权限通往父域_子域_06

可以看到当子域拥有了SYSTEM权限后就可以修改来自父域副本的配置对象:

利用子域的System权限通往父域_权限获取_07

帮助网安学习,全套资料S信免费领取:

① 网安学习成长路径思维导图

② 60+网安经典常用工具包

③ 100+SRC分析报告

④ 150+网安攻防实战技术电子书

⑤ 最权威CISSP 认证考试指南+题库

⑥ 超1800页CTF实战技巧手册

⑦ 最新网安大厂面试题合集(含答案)

⑧ APP客户端安全检测指南(安卓+IOS)

利用方式

既然可以控制父域的配置命名上下文,那如何利用呢?网上提到有几种方式,一种是通过GPO、还有的是提到给父域添加一个自己可控的证书模板(ESC1),这里以GPO组策略为例。先在子域域控上创建一个GPO:

New-GPO jumbo_gpo_test
  • 1.

利用子域的System权限通往父域_权限获取_08

利用子域的System权限通往父域_子域_09

设置计划任务:

利用子域的System权限通往父域_子域_10

通过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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

利用子域的System权限通往父域_系统权限_11

父域刷新组策略可以看到子域链接过来的GPO:

利用子域的System权限通往父域_子域_12

父域更新组策略成功执行计划任务notepad.exe:

gpupdate /force
  • 1.

利用子域的System权限通往父域_权限获取_13

刷新组策略后通过gpresult /r命名也可以看到添加的GPO:

利用子域的System权限通往父域_子域_14

总结

本文介绍了除SidHistory以外还可以通过子域的System权限进行突破到父域的攻击手法。