内网渗透测试:从NTDS.dit获取域散列值
本文将展示如何从域控制器上获取Ntds.dit文件并提取其中的域账户和密码哈希值。在域环境中,活动目录是提供目录服务的组件,它可以帮助用户快速准确地从目录中找到所需的信息。活动目录数据库Ntds.dit是域环境中的主要数据库文件,包含了域中所有用户的密码哈希值和其他信息。为了保护密码哈希值,这些哈希值会使用存储在SYSTEM注册表配置单元中的密钥进行加密。
在非域环境(工作组环境)中,用户的密码等信息存储在SAM文件中。要破解SAM文件和Ntds.dit文件,都需要获取System文件。然而,Ntds.dit文件默认被Windows系统锁定。
为了获取Ntds.dit文件,可以利用卷影拷贝服务(VSS)技术。VSS是一种快照技术,用于备份和恢复文件,即使目标文件处于锁定状态。获取Ntds.dit的基本步骤如下:
- 创建目标主机的卷影拷贝,包含Windows上的全部文件。
- 从创建的卷影拷贝中复制ntds.dit文件。
- 删除创建的卷影拷贝。
可以使用vssadmin工具来执行上述步骤。vssadmin是Windows上的一个卷影拷贝服务的命令行管理工具,可用于创建和删除卷影拷贝、列出卷影拷贝的信息,显示已安装的所有卷影拷贝写入程序和提供程序,以及改变卷影拷贝的存储空间的大小等。
另一种方法是利用VSSown.vbs脚本,该脚本通过WMI对ShadowCopy进行操作,功能类似于vssadmin。使用VSSown.vbs脚本的步骤如下:
- 启动卷影拷贝服务。
- 创建一个C盘的卷影拷贝。
- 将ntds.dit文件从创建的卷影拷贝中复制到C盘。
- 删除创建的卷影拷贝。
还可以使用Ntdsutil.exe工具来提取Ntds.dit文件。Ntdsutil.exe是一个命令行工具,用于管理和控制Active Directory的数据库。使用Ntdsutil.exe工具提取Ntds.dit文件的步骤如下:
- 创建一个快照,包含Windows中的所有文件。
- 加载创建的快照。
- 将快照中的Ntds.dit文件复制到指定目录。
- 卸载并删除创建的快照。
除了上述方法,还可以使用PowerShell脚本来提取Ntds.dit文件中的哈希值。例如,使用Nishang中的Copy-VSS.ps1脚本或PowerSploit中的Invoke-NinjaCopy脚本。
另一种方法是使用Impacket工具包中的secretsdump.py脚本,该脚本可以从Ntds.dit文件中提取哈希散列值和域信息。
还可以使用DSInternals PowerShell模块或Mimikatz工具的dcsync功能来提取Ntds.dit中的哈希值。
总结起来,获取Ntds.dit文件并提取其中的域账户和密码哈希值有多种方法,包括利用卷影拷贝服务、Ntdsutil.exe工具、PowerShell脚本和其他第三方工具。这些方法可以帮助渗透测试人员在内网环境中进行敏感信息的获取和分析。