T1003-003-windows-基于NTDS凭证获取1
来自ATT&CK的描述
攻击者可能试图访问或创建Active Directory域数据库的副本,以便窃取凭据信息,以及获取有关域成员(例如设备,用户和访问权限)的其他信息。默认情况下,NTDS文件(NTDS.dit)位于%SystemRoot%\NTDS\Ntds.dit域控制器中。
除了在活动的域控制器上查找NTDS文件之外,攻击者还可能搜索包含相同或相似信息的备份。
下列工具和技术可用于枚举NTDS文件和整个Active Directory哈希的内容。
卷影复制
secretsdump.py
使用内置的Windows工具ntdsutil.exe
调用卷影副本
NTDS.dit
Ntds.dit文件是存储Active Directory数据的数据库,包括有关用户对象,组和组成员身份的信息。它包括域中所有用户的密码哈希值。域控制器(DC)上的ntds.dit文件只能由可以登录到DC的用户访问。很明显,保护这个文件至关重要,因为攻击者访问这个文件会导致整个域沦陷。
默认情况下,NTDS文件将位于域控制器的%SystemRoot%\NTDS\Ntds.dit中。 但通常存储在其他逻辑驱动器上)。AD数据库是一个Jet数据库引擎,它使用可扩展存储引擎(ESE)提供数据存储和索引服务。通过ESE级别索引,可以快速定位对象属性。
测试案例
通过提取这些哈希值,可以使用诸如Mimikatz之类的工具来执行传递哈希攻击,或者使用像Hashcat这样的工具来破解这些密码。这些密码的提取和破解可以离线执行,因此无法检测到。一旦攻击者提取了这些哈希值,他们就可以充当域中的任何用户,包括域管理员。
可以使用以下工具和技术枚举NTDS文件和整个Active Directory哈希的内容:
- 使用 NTDSUtil 创建 IFM 抓取 DC 本地的 Ntds.dit 文件。
- 使用 VSS 卷影复制远程读取 Ntds.dit。
- 使用 PowerSploit 的 Invoke-NinjaCopy 远程读取 Ntds.dit(需要目标 DC 启用 PowerShell 远程管理)。
- 在 DC 中使用 Mimikatz 转储 Active Directory 凭据。
- 在 DC 中使用 Invoke-Mimikatz 转储 Active Directory 凭据。
- 使用 Invoke-Mimikatz 远程转储 Active Directory 凭据。
- 使用 Mimikatz 的 DCSync 功能远程转储 Active Directory 凭据。
注意:如果已经发现了 Active Directory 数据库(NTDS.DIT)的副本,那么攻击者无需提升权限即可从中转储凭据。
谁可以访问?
Enterprise Admins (目录林管理员组)
Domain Admins(域管理员组)
Administrators(管理员组)
Backup Operators(备份操作成员)
Account Operators(账户管理组)
Print Operators(打印机操作组)
检测日志
windows sysmon日志
Invoke-NinjaCopy -Path “c:\windows\ntds\ntds.dit” -LocalDestination “c:\windows\temp\ntds.dit“
测试复现
一旦我们获得了域管理访问权,从 DC 中提取所有哈希的老方法就是在域控制器上运行命令,并使用 Shadow Volume 或原始拷贝技术提取 ntds.dit 文件。
磁盘卷影复制技术
由于我们确实可以访问文件系统,并且可以作为攻击者在域控制器上运行命令,因此我们希望获取存储在 ntds.dit 文件中的所有域内哈希。不幸的是,该文件不断地被读和写,即使作为系统,我们也无法读取或复制该文件。幸运的是,我们可以利用名为 Volume Shadow Copy Service 磁盘复制服务(VSS)的 Windows 功能,该功能将创建磁盘的快照副本。然后我们可以从该副本中读取 Ntds.dit 文件将其获取出来。并将其从计算机上取消,这包括窃取 Ntds.dit、System、SAM 和 Boot Key 文件。最后,我们需要清理我们的行踪并删除磁盘拷贝:
- C:\vssadmin create shadow /for=C:
- copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[DISK_NUMBER]\windows\system32\config\SYSTEM
- copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[DISK_NUMBER]\windows\system32\config\SAM
- copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy[DISK_NUMBER]\windows\ntds\ntds.dit
- reg SAVE HKLM\SYSTEM c:\SYS
- vssadmin list shadows
- vssadmin delete shadows /for= [/oldest | /all | /shadow=]
测试留痕
windows sysmon日志 进程创建、命令行参数
检测规则/思路
sigma规则
title: VSS卷影复制本地读取Ntds.dit文件(域控主机操作,也适用于VSS卷影复制远程读取Ntds.dit文件)
description: windows server 2008 模拟测试结果
references: https://1sparrow.com/2018/02/19/域渗透相关/
tags: T1003-003
status: experimental
author: 12306Bro
logsource:
product: windows
service: sysmon
detection:
selection1:
EventID: 1 # 进程创建
Image: 'C:\Windows\System32\vssadmin.exe'
CommandLine: 'VSSADMIN.EXE'
CurrentDirectory: 'vssadmin create shadow /for=C:'
selection2:
EventID: 1
Image: 'C:\Windows\System32\reg.exe'
CommandLine: 'reg.exe'
CurrentDirectory: 'reg SAVE HKLM\SYSTEM *'
selection3:
EventID: 1 # 进程创建
Image: 'C:\Windows\System32\vssadmin.exe'
CommandLine: 'VSSADMIN.EXE'
CurrentDirectory: 'vssadmin delete shadows /all'
condition: selection1 or selection2 or selection3
level: medium
建议
暂无
参考推荐
MITRE-ATT&CK-T1003-003
https://attack.mitre.org/techniques/T1003/003
从活动目录中获取域管理员权限的6种方法
https://www.4hou.com/technology/4256.html
如何巧妙的从ntds.dit中提取Hash和域信息
域渗透——获得域控服务器的NTDS.dit文件
从NTDS.dit获取密码hash的三种方法
https://www.freebuf.com/sectool/176876.html
从NTDS.dit文件中提取密码哈希值
https://blog.stealthbits.com/extracting-password-hashes-from-the-ntds-dit-file/
攻击者如何转储AD数据库凭据
https://adsecurity.org/?p=2398
在AD中获得域管理员权限的攻击方法
https://adsecurity.org/?p=2362
强力推荐
转储活动目录数据库方法总结
http://ju.outofmemory.cn/entry/232676
powershell开启远程管理的方法请参考
https://blog.51cto.com/1163739403/1826546
卷影复制NTDS.dit域散列远程-第1部分
https://room362.com/post/2013/2013-06-10-volume-shadow-copy-ntdsdit-domain-hashes-remotely-part-1/
从NTDS.dit文件获取哈希
https://www.swordshield.com/blog/getting-hashes-from-ntds-dit-file/
转储活动目录数据库凭证的方法总结
https://blog.csdn.net/weixin_33713707/article/details/87980463