smb包獲取用戶登錄密碼

個人感覺國內幾家桌面安全廠商更加重視傳統的AV技術,我認為應該他們應該拓展一下防御縱深,應該開辟網絡入侵檢測這一戰場。為什么呢?很多網上流傳的攻擊方法,比如我這里描述的它們的危害性都不可小覷。面對這樣的威脅,我測試的幾款主流產品它們選擇了沉默,毫無反應。

大家都知道的windows密碼破解利器mimikatz, WCE, creddump可以輕易獲取windows登陸密碼的hash值和明文。但是有前提的!前提是你能把這些工具都能上傳并且在目標機器上執行,并且能逃脫AV。事實上即使逃過了靜態AV,也很難逃過動態主防。顯然想用這些的工具真正的做事是有困難的。還有其他方法嗎? 有。抓取網絡共享(SMB協議)登陸認證過程的hash值,通過RainbowTable破解還原windows密碼明文。這個實驗中使用的工具是Metasploit SMB Sniffer module, icrack_mt, netntlm.pl。當然最好下載一個Back Track。

首先描述一下Windows在訪問遠程共享時發生的那些事兒。Windows要使用當前登陸用戶的user/psw進行認證,使用的是SMB協議。也有可能使用空密碼認證,也就是所說的建立NULL session。不過不重要,認證過程都是一樣的:

1.??Client請求認證,并列舉支持的認證協議;

2.??Server選擇認證協議,并返回隨機的challenge值;

3.??Client使用收到的challenge值對psw做hash計算,并發送認證協議包;

4.??Server返回認證結果: 成功,失敗;

使用Wireshark抓包,以上過程一目了然。

接著說實驗思路,將這么一個元素

插入到網頁中。任何訪問這個網頁的機器都會向10.1.1.3發送SMB認證請求。這個時候就可以再10.1.1.3上面收貨hash了。

怎樣收獲hash呢?可以使用metasploit中auxiliary/server/capture/smb模擬一個SMB 共享服務器。此服務器在收到連接認證請求后,指定使用LMNT認證協議,并且返回固定(不是隨機)的challenge值0x1122334455667788。等待收獲,如圖:

正如你看到的,總共收獲了2組hash值。接下來的目標是破解第二組hash值。在Run SMB 之前請用set JOHNPWFILE /temp/john 命令將hash值保存一份在文件中,便于后面的破解。可以在這里了解更多的Metasploit的使用方法:http://www.offensive-security.com/metasploit-unleashed/Introduction

接下來就是怎樣將hash值還原成明文密碼了。為什么之前要使用固定的challenge?因為有人已經用這個值生成了彩虹表,我們可以直接拿來用。從這里下載需要彩虹表, 注意盡量全部下載,總共16.4G不算多。ftp://freerainbowtables.mirror.garr.it/mirrors/freerainbowtables/RTI2/halflmchall/

然后下載rcracki:http://sourceforge.net/projects/rcracki/

這里的hash是分段的,首選破解破解密碼的前7字節。命令rcrack-mt.exe –h <彩虹表路徑>

rcracki_mt.exe -h 3cf21b4522e336b0 G:\Rainbow

分分鐘之內就能破解出來,如圖。嘗試過在我Intel Core(TM)2 E8500的CPU上破解包含字母,大小寫,數字,特殊字符的9位密碼,最長時間都不會超過10分鐘。

當然而這一步只是破解了其中7位,而且字母的大小寫還不對。

接下來最后一步,破解密碼的第二部分,使用netntlm.pl。如果你用的是Back Track的話,這個工具是默認安裝了的。命令:./netntlm.pl –seed “A3;34TE” –file /tmp/john_netntlm

破解完成,得到準確的密碼A3;34teE$。

其實我實驗的密碼也不簡單,破解起來尚且如此容易。若非很多域管理員強行執行密碼策略,很多人設的密碼更簡單,破起來更容易。

最后說明:win7以后默認禁用了NTLM認證協議,測試不會成功。但可以再組策略中windows settings – Security Settings – Security Option中啟用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容