在內網滲透測試中,我們可以欺騙攻擊網絡配置和服務。這種攻擊方式主要針對ARP(地址解析協議)、DHCP(動態主機配置協議)和DNS伺服器配置不當造成的安全隱患。還有一種比較常見的攻擊方式就是中間人攻擊,他能夠使我們通過監控網絡流量獲取敏感信息。我們可以對網絡設備採取安全措施來預防攻擊。但是,由於一些協議固有的弱點來進行攻擊,本文就是利用LLMNR NetBIOS和WPAD機制來進行中間人攻擊。
下面我們先了解一下DNS的查詢過程,如圖所示:
下面是在內網中dns查詢的幾個關鍵步驟:
1 文件系統中的hosts文件
配置文件地址:C:\Windows\System32\drivers\etc2 本地DNS緩存
CMD命令:ipconfig /displaydns3 向dns伺服器發送dns請求
4 發送LLMNR查詢
在DNS查詢失敗的時候使用5 發送NetBIOS-NS查詢
它工作在OSI模型的會話層。NetBIOS是一個API不是一個windows作業系統之間的協議。計算機的NetBIOS名字跟電腦名字是一樣的LLMNR和NetBIOS-NS是什麼LLMNR (本地鏈路多播名稱解析)和NetBIOS-NS(名稱服務)是windows用於名稱解析和溝通的兩個組件。LLMNR是在windows vista之後版本中出現的,也算是NetBIOS-NS的延續。
LLMNR為使用IPv4、IPv6或者同時使用這兩種地址的設備提供了點對點名稱解析服務,可以讓同一子網中的IPv4和IPv6設備不需要WINS或DNS伺服器就可以解析對方的名稱,而這個功能是WINS和DNS都無法完全提供的。雖然WINS可以為IPv4提供客戶端-伺服器以及點對點名稱解析服務,不過並不支持IPv6地址。至於DNS,雖然支持IPv4和IPv6地址,但必須通過專門的伺服器才能提供名稱解析服務。LLMNR通過在DNS名稱解析服務不可用時提供解析服務,彌補了DNS的不足。
LLMNR 協議經常在dns伺服器解析不到的時候才會用到且使用的服務埠是5355 TCP/UDP,默認使用的多播服務IP位址是IPv4:224.0.0.252以及IPv6:FF02:0:0:0:0:0:1:3
比如:在內網中ping test.local,首先會去dns伺服器查詢,在dns伺服器未找到的時候,這時查詢請求就會重定向到LLMNR協議。
下圖是查詢時捕獲的數據包:
而NetBIOS是本地網絡的系統API,它有三種NetBIOS服務:
1 域名服務,使用137埠用於域名註冊和域名解析
2 數據分發服務,使用138埠連接通信
3 會話服務,使用139埠面向連接通信
在dns查詢失敗後,LLMNR會調用NetBIOS,生成一個NetBIOS-NS數據包然後使用廣播的方式發送出去。
這個看似沒什麼壞處的協議,我們可以利用其進行中間人攻擊從而獲取敏感數據,如用戶名,hash等。
測試舉例攻擊場景模擬實現方式推薦工具:
1 https://github.com/SpiderLabs/Responder
2 msf -- https://www.rapid7.com/db/modules/auxiliary/spoof/llmnr/llmnr_response
3 https://github.com/byt3bl33d3r/MITMf
簡要步驟1 使用Responder指定網絡接口並開始監聽流量
2 我們嘗試連接\\filesrvr (一個不存在的主機名)
3 獲取SMB-NTLMv2的哈希
4 我們已經知道了NTLMv2的哈希,這時我們既可以暴力破解也可以哈希傳遞來利用了。
利用WPAD什麼是WPAD通常公司內網為了安全,不允許員工直接訪問外網的服務,但是允許公司員工通過web代理訪問外網資源,但是對於員工來說設置代理又是個麻煩事,所以通常公司使用wpad自動配置代理。
WPAD(web代理自動發現協議-Web Proxy Auto-Discovery Protocol),是客戶端通過DHCP或DNS協議探測代理伺服器配置腳本url的一種方式。當IE定位腳本並將腳本下載到本地之後,就可以通過該腳本來為不同的url選擇相應的代理伺服器。目前主流瀏覽器一般都支持WPAD。
WPAD是如何工作的客戶端想用訪問wpad.dat配置代理,在DHCP伺服器沒有配置wpad的情況下,回去查找以wpad命名的伺服器然後尋找對應的文件,然後進行以下步驟:
1 如果DHCP伺服器配置了wpad,那麼直接從DHCP伺服器獲取wpad.dat文件然後跳到第4步,否者執行下一步
2 向dns伺服器發送請求查找wpad.test.local,然後獲取代理配置文件,如果成功跳到第4步,否則執行下一步
3 發送LLMNR查詢wpad.test.local,如果成功跳到第4步,不成功代理設置失敗
4 下載wpad.dat並且配置
在第一步中使用dns汙染攻擊到第二步,第二步也可以使用dns汙染攻擊,這種攻擊模式是可以通過配置網絡設備去預防的。當通過LLMNR進行查詢時,該請求將通過廣播發送到網絡中的每個客戶端。 在這一點上,攻擊者可以像wpad伺服器那樣將他的wpad.dat文件發送給客戶端。
重要的是WPAD協議內置於Windows作業系統中。 此配置可以在Internet Explorer瀏覽器的LAN設置部分中看到。如下圖;
利用WPADResponder是中間人攻擊很好的實用工具,Responder提供假的WPAD伺服器並響應客戶端的WPAD名稱解析。然後提供假的wpad.dat下載。Responder創建一個身份驗證程序,並要求客戶端填寫域中的帳戶密碼。這樣就可以獲取到員工的帳號密碼。
下面是一個wpad中間人攻擊的拓撲圖:
利用Responder的步驟:
1 提供假的http伺服器並等待帳號密碼
2 Responder偽造的登錄框
3 獲取的明文如下
緩解WPAD攻擊的方法1 在DNS伺服器上指定wpad伺服器的地址
2 使用組策略設置禁止所有Internet瀏覽器上的「自動檢測代理設置」。