跳转至

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和域信息

https://3gstudent.github.io/3gstudent.github.io/%E5%9F%9F%E6%B8%97%E9%80%8F-%E8%8E%B7%E5%BE%97%E5%9F%9F%E6%8E%A7%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%9A%84NTDS.dit%E6%96%87%E4%BB%B6/

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

https://xz.aliyun.com/t/2187

从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