Metasploit+Python實現NTLMv2攻擊
SMBRelay的攻擊是一種很好的滲透技術,即使目標服務器補丁打的比較勤,SMBRelay攻擊仍然可能滲透到你重要服務器。
NTLM是一種挑戰/響應驗證機制,在SMBRelay攻擊中,攻擊者要以中間人攻擊方式來實施。攻擊者等待某人來驗證在他網絡上的目標服務器。這樣一來可以利用漏洞掃描器+管理員自動驗證主機腳本。當自動化進程連接到攻擊者,他通過他的目標(網絡上的其他系統,也許是服務器)進行身份驗證。目標會產生挑戰(challenge),并將其發送給攻擊者。攻擊者發送挑戰回到原始掃描系統的。掃描系統擁有哈希值的加密功能正確密碼的哈希值會將其發送給攻擊者。攻擊者傳遞正確的加密的響應返回給他的目標,并成功驗證。
POC:
攻擊者IP - 10.10.12.10
目標IP - 10.10.12.20
每晚清單掃描器IP - 10.10.12.19
利用Metasploit的smb_relay模塊,攻擊者10.10.12.10,Metasploit如下:
使用一個簡單的Windows for循環來模擬掃描服務器的網絡。我運行如下的命令。
當掃描器(10.10.12.19)連接到10.10.12.10(我的Metasploit監聽)驗證嘗試會傳遞到目標服務器(10.10.12.20)。
Metasploit自動使用的驗證SMB會話,Meterpreter就會對目標發起payload。
如下圖所示,注意Metasploit,清單掃描器在發送一個“Access Denied”時,它試圖連接到10.10.12.10。但是,
我們得到了一個攻擊者的機器上運行Meterpreter shell的目標(10.10.12.20)。
Metasploit的SMBRelay只支持NTLMv1,因此通過改變一下設置即可保護自己免受這種攻擊(可輸入secpol.msc)…
改為NTLMv2后再次嘗試Metasploit
運行了Metasploit exploit,得到了“Failed to authenticate(驗證失敗)”錯誤信息。
由此看來DRAT的安全協議已經挫敗了我們的計劃。
不過,不用擔心,現在國外某安全團隊開發了一個由python實現的psexec模塊與IMPACKET模塊的整合體:SMBRELAYX.PY。
IMPACKET模塊里的SMBRELAYX.PY腳本是帶有NTLMv2的支持! 下載地址
你需要下載最新版本的IMPACKET模塊啟動運行。為了解決路徑問題,我把所有的實例和其他模塊都放到了同一個目錄中,然后改變import以指定正確的目錄。 SMBRELAYX需要身份驗證后在遠程主機上運行可執行文件。讓Meterpreter使用msfpayload創建一個EXE文件,然后設置SMBRELAYX。 Smbrelayx.py需要兩個參數:
-h是你所要攻擊的主機; -e 是在遠程主機上啟動進程。
提供了這些選項,就坐下來等待,夜間清單掃描器(10.10.12.19)連接到您的系統。
下面,我創建的Meterpreter可執行文件,并調用smbrelayx.py來執行msfpayload:
因為我們使用的是 meterpreter reverse shell我們還必須要設置Metasploit。所以,它是準備接收payload連接后才開始執行目標。
multi/handler
現在,試圖將(10.10.12.19)連接到攻擊者的Linux(10.10.12.10)。
我們得到了一個 ”System cannot find the path specified(系統找不到指定的路徑)” 錯誤,而這個錯誤會讓系統管理員可能會質疑,為什么他的用戶名和密碼在沒有目標工作之前,為什么路徑會不存在。smbrelayx.py腳本發出的信息返回給了管理員,更加隱蔽的Metasploit信息,就不太可能注意得到了。我們立即看到發生在 smbrelayx.py腳本情況。它會驗證10.10.12.20。10.10.12.19使用用戶名和密碼來啟動Meterpreter服務進程。
payload傳遞到目標之后NTLMv2驗證完畢 ,為了使shell穩定,我們需要快速地遷移到另一個更穩定的進程(我們可在Meterpreter使用一個遷移腳本來幫助自動化遷移)。
全新的Meterpreter shell 它是一個Python模塊,你可以把這個腳本納入到你自己的自動攻擊工具中。
原文地址:http://pen-testing.sans.org/blog/pen-testing/2013/04/25/smb-relay-demystified-and-ntlmv2-pwnage-with-python