找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3661

积分

0

好友

503

主题
发表于 18 小时前 | 查看: 2| 回复: 0

在整理技术笔记时,翻到一篇旧文,其核心观点引人深思:在特定条件下,仅凭子域中的System权限,就有可能将影响力扩展至父域。出于对 Active Directory 安全边界的兴趣,我决定动手复现并深入研究这一攻击手法,并在此记录整个过程。

利用原理分析

首先明确一下复现环境的构成:

  • 子域:主机名 10_4_45_187,域名 sub.cs.org
  • 父域:主机名 10_4_45_197,域名 cs.org

攻击的起点,是我们在子域的域控上获取了NT AUTHORITY\SYSTEM权限。这个本地最高权限账户,在域内安全中扮演着特殊的角色。

为了理解其特殊性,我们需要查看域内的“配置命名上下文”。操作很简单:在子域域控上运行 mmc.exe,然后通过“添加或删除管理单元”功能连接“ADSI 编辑器”。

Windows添加或删除管理单元对话框

在弹出的连接设置中,选择“配置”作为命名上下文进行连接。

ADSI编辑器连接配置命名上下文

连接成功后,可以在ADSI编辑器中看到,这个“配置”命名上下文所指向的域,是父域 cs.org。这说明,子域中保存的配置分区,实际上是父域配置的一个副本。

ADSI编辑器中显示配置分区为父域副本

关键的一步来了。我们右键查看这个“配置”对象(例如 CN=Sites)的安全属性(ACL)。你会发现,子域的常规域用户(如Domain Admins)在这里并没有直接修改权限。

配置对象的高级安全设置,显示权限条目

但是,请仔细看权限条目列表。除了熟悉的域账户外,有一个特殊的条目——SYSTEM。它对这个配置对象拥有“完全控制”权限。

权限条目中高亮显示SYSTEM的完全控制权限

SYSTEM 是一个本地计算机账户,不属于任何域。这就意味着,控制它的权限,不依赖于你是否是域管理员,而只取决于你是否能在当前机器上获得 SYSTEM 权限。一旦拥有,理论上你就能修改这个父域配置的副本。

利用方式实践

既然 SYSTEM 账户能控制父域的配置命名上下文副本,我们该如何将它转化为实际的攻击路径呢?思路是利用 Active Directory 中可以通过站点(Site)链接组策略对象(GPO)的机制。

步骤一:创建并配置恶意GPO
首先,我们在子域域控上,以 SYSTEM 权限(例如通过 psexec -s 或其他方式提升)打开 PowerShell,创建一个新的组策略对象。

New-GPO jumbo_gpo_test

PowerShell执行New-GPO命令创建GPO

在组策略管理控制台(GPMC)中,可以确认这个 GPO 已经被成功创建。

组策略管理控制台显示新创建的GPO

接着,我们需要为这个GPO配置一个实际的操作。以“计划任务”为例,我们将其配置为在应用策略的计算机上启动记事本(notepad.exe)。在实际攻击中,这里可以替换为任何恶意命令或脚本。

组策略编辑器配置计划任务启动notepad.exe

步骤二:将GPO链接到父域站点
核心攻击环节来了:我们需要将这个子域创建的GPO,“链接”到父域的一个对象上。这里选择站点(Site)对象作为链接目标。

首先,确认父域默认站点的可分辨名称(DN)。可以直接在子域上查询父域的域控制器信息获取:

Get-ADDomainController -Server cs.org | select HostName, ServerObjectDN

输出类似:

HostName   ServerObjectDN
--------   --------------
...        CN=10_4_45_197,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cs,DC=org

ServerObjectDN 中,我们可以提取出站点的 DN:CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cs,DC=org

然后,使用 SYSTEM 权限执行链接命令,将这个GPO应用到父域的站点上:

New-GPLink -Name "jumbo_gpo_test" -Target "CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=cs,DC=org" -Server sub.cs.org

PowerShell执行New-GPLink命令链接GPO到父域站点

命令执行成功,返回了链接信息。此时在父域的组策略管理控制台中查看该站点,会发现来自子域 sub.cs.orgjumbo_gpo_test GPO 已经成功链接并启用了。

父域GPMC显示站点已链接子域创建的GPO

步骤三:触发策略执行,验证攻击效果
最后,在父域的域控制器或任何隶属于该站点的计算机上,强制更新组策略。

gpupdate /force

命令行执行gpupdate /force更新组策略

策略更新后,系统会执行我们预先配置的计划任务,弹出记事本窗口。这证明攻击成功执行。我们也可以通过 gpresult /r 命令来确认这个“外来”的GPO已经成功应用到了父域计算机上。

gpresult命令显示已应用来自子域的GPO

总结与思考

本文复现了一种基于 Active Directory 架构特性的 域渗透 手法。它揭示了除了广为人知的 SidHistory 滥用之外,另一个可能被忽视的安全边界突破口:子域中的 SYSTEM 账户权限。

其本质在于,子域的配置分区是父域的只读副本,但 SYSTEM 账户对这个副本拥有写权限。攻击者利用此权限,通过将恶意GPO链接到父域站点的方式,实现了从子域到父域的权限跨越。这对于企业多域环境的安全审计和防御策略提出了新的挑战。

附录(参考原文)

本文首发于 云栈社区,一个专注于深度技术交流与实战分享的平台,欢迎对系统安全、网络攻防感兴趣的朋友一同探讨。




上一篇:OpenAI完成1100亿美元史上最大融资,孙正义300亿美元押注AI革命
下一篇:陶哲轩谈AI数学瓶颈:词典识词但不会“写诗”的冷思考
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-1 22:37 , Processed in 0.515907 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表