網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

編程語言 Windows Python OS X 網絡安全 Web安全陪跑團 2018-12-06

作者:reber

個人博客:http://wyb0.com/posts/responder-and-ntml-hash/

0x00 一些概念

Windows認證協議

分為:基於NTML的認證和基於kerberos的認證

什麼是NTLM Hash?

早期IBM設計的LM Hash算法存在弱點,微軟在保持向後兼容性的同時提出了自己的挑戰響應機制,即NTLM Hash

網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

什麼是Challenge-Response挑戰/響應驗證機制?

  1. Client輸入username、password、domain,然後將用戶名及密碼hash後存在本地,並將username發送到DC
  2. DC生成一個16字節的隨機數,即Challenge(挑戰碼), 然後傳回Client
  3. Client收到Challenge後將密碼hash和challenge混合hash,混合後的hash稱為response,然後將challenge、 response和username發送給Server
  4. Server將收到的3個值轉發給DC, 然後DC根據傳過來的username到域控的賬號數據庫ntds.list找到對應的密碼hash,將hash和Client傳過來的challenge混合hash,將這個混合hash與Client傳過來的response進行對比驗證
  5. DC返回驗證結果給Server
  6. Server將提示客戶端是否驗證成功

NTLM Hash與Net-NTLM Hash

NTLM Hash通常是指Windows系統下Security Account Manager中保存的用戶密碼hash, 通常可從Windows系統中的SAM文件和域控的NTDS.dit文件中獲得所有用戶的hash(比如用Mimikatz提取),“挑戰/響應驗證”中的用戶名及密碼hash就是NTLM Hash,Net-NTLM Hash通常是指網絡環境下NTLM認證中的hash,“挑戰/響應驗證”中的response中包含Net-NTLM hash,用Responder抓取的就是Net-NTLM Hash

關於Responder

由Laurent Gaffie撰寫的 Responder 是迄今為止,在每個滲透測試人員用於竊取不同形式的證書(包括Net-NTLM hash)的最受歡迎的工具。 它通過設置幾個模擬的惡意守護進程(如SQL服務器,FTP,HTTP和SMB服務器等)來直接提示憑據或模擬質詢 – 響應驗證過程並捕獲客戶端發送的必要 hash。 Responder也有能力攻擊LLMNR,NBT-NS和mDNS等協議。

什麼是NTLM中繼攻擊?

攻擊者可以直接通過LM Hash和NTLM Hash訪問遠程主機或服務,而不用提供明文密碼。

0x01 軟件環境

可以從(https://github.com/lgandx/Responder)下載Responder

域內主機:Win7(10.11.11.20)

域控主機:Win2008(10.11.11.18)

被控主機:Ubuntu14.04(10.11.11.11)和目標機同一網段

0x02 通過SMB服務獲取Net-NTLM hash

對於SMB協議,客戶端在連接服務端時,默認先使用本機的用戶名和密碼hash嘗試登錄,所以可以模擬SMB服務器從而截獲hash,執行如下命令都可以得到hash

被控主機執行:$ sudo python Responder.py -I eth0 -v

網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

0x03 通過文件包含獲取Net-NTLM hash

被控主機執行:$ sudo python Responder.py -I eth0 -v

網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

0x04 通過XSS獲取Net-NTLM hash

被控主機執行:$ sudo python Responder.py -I eth0 -v

網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

0x05 WPAD代理服務器抓取Net-NTLM hash

WPAD用於在windows中自動化的設置ie瀏覽器的代理,從Windows 2000開始該功能被默認開啟。

開啟Responder的WPAD後,當PC瀏覽網站時即可抓取到NTLM hash

加-F參數即可開啟WPAD抓取 hash,而且當主機重啟時也能抓到NTLM hash

被控主機執行:$ sudo python Responder.py -I eth0 -v -F

網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

0x06 使用hashcat解密

安裝hashcat(參考https://www.phillips321.co.uk/2016/07/09/hashcat-on-os-x-getting-it-going)

利用hashcat暴力猜解密碼

-m:hash-type,5600對應NetNTLMv2

網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

得到密碼為123456

網絡安全滲透技術:內網滲透之Responder與Net-NTML hash

0x07 通過NTLM中繼攻擊添加用戶

這裡就用到了NTLM中繼攻擊,相當於是中間人攻擊,攻擊者獲取高權限的主機的hash,然後將hash轉發給低權限主機並執行命令

這裡就是抓取域控的hash,然後執行命令得到域內主機的信息

修改Responder.conf,不啟動SMB和HTTP,然後啟動Responder

利用Responder的MultiRelay模塊獲取shell

Reference(侵刪):

  • https://apt404.github.io/2016/08/11/ntlm-kerberos
  • http://www.4hou.com/system/9383.html
  • https://3gstudent.github.io/Windows下的密碼hash-NTLM-hash和Net-NTLM-hash介紹
  • https://gist.github.com/anonymous/70f792d50078f0ee795d39d0aa0da46e
  • https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes
  • https://medium.com/@canavaroxum/xxe-on-windows-system-then-what-76d571d66745
  • https://www.anquanke.com/post/id/85004
  • https://www.phillips321.co.uk/2016/07/09/hashcat-on-os-x-getting-it-going

相關推薦

推薦中...