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