歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

淺析如何讓你的Responder更強大之增強篇

來源:本站整理 作者:佚名 時間:2020-01-22 TAG: 我要投稿

一、前言
前幾天寫過一篇關于Responder的文章《淺析如何讓你的Responder更強大》。在那篇文章中,我們修復了Responder 實現的SMBv1&SMBv2的問題:使其能夠兼容net use客戶端的多次Hash捕獲,并修復了SMBv2實現存在的bug。
今天的主角依然是Responder,不過討論的主題變成了NTLM 認證。這次我們要談不是bug,而是功能的Enhancement。容我一點一點的跟各位大佬慢慢道來。
還是那句話:作為一名醫學生——邏輯一般,文采不行,文章難免存在紕漏之處,歡迎大家批評指正。
二、思考
為了防止混淆,我們先把文章中出現的幾個術語限定一下:
hash:沒有特別指出,那就是用來代指Net-NTLM hash
憑證:沒有特別指出,那就是代指用戶密碼或NTLM hash
現在我們先來思考幾個問題:
1.Responder為什么要支持多次hash捕獲?同樣我們為什么要盡可能多的收集用戶hash?
2.當用戶多次輸入密碼進行認證時,處于暗處收集用戶hash的我們,如何去區分那些hash是不同憑證產生的,那些是同一憑證產生的?以及區分它的意義在哪?
3.思考2分鐘,然后再繼續閱讀。
我依次正對以上問題談談我的看法:
1.因為無論是個人還是企業都存在一個密碼設置的套路:如辦公區A區部分設置成ABC123,B區設置成ABC345,C區設置成ABC567.當A區一個用戶想要訪問B區的一個文件共享時,首先會在explorer下輸入\\abc-001(位于B區的一臺文件共享服務器),然后默認會用該用戶的密碼去認證,此時如果Responder響應的相對于abc-001更快或用戶輸入錯誤,我們就有機會捕獲第一次(其實explorer實現的客戶端默認用該賬戶和密碼認證好多次),然后Responder返回PASSWORED_EXPIRED,要求用戶重新輸入密碼,此時用戶可能會陷入自我懷疑,然后嘗試用C區或A區的密碼進行認證(想想你忘記愛奇藝密碼是的場景,你是不是會翻出自己所有的密碼進行嘗試),這樣我們就有機會盡可能多的收集到該公司的憑證。用于后續滲透。
2.如何區分hash是由不同的憑證產生的?這是我們今天討論的話題。我們先說一下成功區分的意義吧:節約破解的時間成本
三、Responder 捕獲net-ntlmv1 hash的現狀:
這里姑且先叫做net-ntlmv1 hash,但是它不是。在我遇見的好多做滲透的小伙子們都傻傻分不清什么是net-ntlmv1 hash和net-ntlmv1+ess hash,一會兒一邊實驗一邊解釋,好伐!
1.實驗環境:
windows xp      
kali                        
2.實驗
2.1 同時開啟Windows XP 和Kali ,在Kali 控制臺下輸入Responder -I eth0 -v,啟動Responder。然后回到windows xp,打開我的電腦,在explorer.exe下地址欄里輸入\\cfca訪問文件共享。我們看到,如圖1,圖2:

圖 1

圖 2
2.2 我們看到xp 返回不可訪問錯誤,Responder 捕獲了兩次hash,是不是看似很完美,好像真的實現了多次hash捕獲。
先冷靜一下,這其實是同一個賬戶密碼產生的Net-NTLMv1 hash,只是看起來好像兩次不同的密碼認證而已(是不是傻傻分不清)。先普及一下,當在explorer下輸入\\cfca進行SMB訪問時,客戶端默認會用當前用戶名密碼進行4次認證嘗試,如果都不成功,客戶端會斷開或不中斷連接,然后返回一個用戶密碼認證框,要求用戶輸入新的賬號密碼進行認證(為什么和net use 不同,我只能說:可能是兩中SMB客戶端是由不同的團隊實現的吧,畢竟我也沒在微軟)—–到這一步以后的操作,才能稱得上是真正意義上的多次捕獲。
現在我們來說說為什么會有一個現在這樣的畸形的情況呢?因為Responder 在實現SMBv1時添加了一個很惡心的計數器ntry(為什么說惡心,因為net use 的SMB客戶端默認嘗試一次,認證失敗后,要求用戶輸入用戶名密碼進行重新認證,共計2次,但是是兩個不同連接,所以ntry會失效。而explorer默認嘗試4次,然后才要求用戶重新認證,天了個擼,他竟然生效了。該生效時不生效,不該生效時瞎JB搗亂),我們干脆然他永遠不生效:
回到kali ,在控制臺下輸入vi /usr/share/responder/servers/SMB.py,定位到如下代碼,如圖3:

圖 3
將self.ntry == 0 該為self.ntry != 10.這樣就可以了,因為沒有一個客戶端會默認嘗試10次。
2.3 我們再來抓包看一下,如圖4 圖5

圖4

圖 5
終于回歸正常了,經過4次的默認認證后,客戶端彈出了要求用戶輸入賬號密碼的框框。這也算工能正常了。
到這兒,把上一篇文章的坑也算填了。
不過很可惜,上面的都不是重點:重點要來了——–我們這這篇文章的目的是說,在暗處收集hash的我們如何區分捕獲的hash是由不同的用戶憑證產生的。
單單從上面看,同一個用戶名和密碼產生的”Net-NTLMv1 hash”都區分不出來。用戶哪怕重新認證了我也不知道啊,怎么辦?我先幫大家回憶一下NTLM認證。
四、NTLM認證過程
Net-NTLMv1的加密流程如下:
1.客戶端向服務器發送一個請求

[1] [2]  下一頁

【聲明】:黑吧安全網(http://www.650547.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        安徽快3自由的百科 规律网 平码 独平一码 正规股票融资公司 贵阳捉鸡麻将怎么看骰子和拿牌 湖北快3官网 英超直播赛程 武汉麻将微信群1元1分 韩国福彩快乐8 甘肃快3跨度表 分分彩开奖官网 真钱的斗地主棋牌游戏