新思科技在早前發現D-Link DIR-850存在漏洞。此漏洞允許未經過身份驗證的用戶加入路由器提供的無線網絡。一旦加入該網絡,用戶就可以訪問該網絡上任何其他用戶可用的所有服務、計算機和設備。未經授權訪問網絡通常是更廣泛攻擊的第一步。
作為Defensics SafeGuard開發的一部分,我們發現了D-Link DIR-850L無線AC路由器(硬件修訂版本A)中的漏洞。該漏洞使攻擊者無需提供憑據即可完全訪問無線網絡。我們的方法在接入點連接期間跳過關鍵步驟,完全繞過加密。
在確定此漏洞后,新思科技繼續與芬蘭國家網絡安全中心(NCSC-FI)協調披露事宜,編號為CVE-2018-18907。我們與D-Link合作重現了這個漏洞問題。在2018年11月6日,D-Link已經為受影響的設備提供了修復方案。
WPA2是用于客戶端和接入點(AP)之間的WLAN網絡通信的加密技術。為了相互連接,AP和客戶端都需要知道預共享密鑰(PSK),它們在WPA握手過程中交換,隨后在它們之間打開加密通道。
通常,破壞WPA2加密需要在AP和客戶端(也稱為請求者)上執行無線捕獲,其中握手過程完全可見,或者僅從AP獲取對偶主密鑰標識符(PMKID)。完成此操作后,您將獲得強制WPA2 PSK所需的所有信息。獲取PSK所需的時間取決于硬件和PSK長度。但有時候通過WPA2加密需要一點運氣,這往往不到一秒鐘。
辦公室日常工作
2018年8月初,我正在為新思科技的Defensics解決方案完成新版本的測試套件,該解決方案為各種協議提供模糊測試。模糊測試是一種測試方法,測試工具發送格式錯誤的輸入以發現軟件中潛在的安全漏洞。這種包含意外或無效數據的格式錯誤的輸入稱為異常測試用例。
我最后添加到測試套件中的信息包括一些新的異常測試用例和SafeGuard結果。 SafeGuard是一項專利功能,允許Defensics識別違反規范或最佳實踐的情況 —— 例如,當被測系統(SUT)選擇弱加密方案時,或者以明文形式發送身份驗證憑據時。
SafeGuard與模糊測試有何不同?
新版本的Defensics 802.11測試套件包含兩項重要改進。
第一,WPA2握手后數據幀的WPA2加密。之前的版本僅計算會話的臨時密鑰,而且可以將此信息寫入文件。這允許測試人員驗證Defensics和SUT都具有相同的臨時密鑰。但是發送加密數據幀會自動測試正確的密鑰,因為兩端的加密和解密需要知道密鑰。
第二個改進是在IPv4上簡單的動態主機設置協議(DHCP)發現報文序列。此DHCP序列驗證SUT是否接收數據幀并檢查響應。由于DHCP本身非常復雜,我首先在沒有加密的情況下實現它,并且在DHCP序列工作之后,在測試中添加了WPA2 AES CCMP加密。
測試發現
我當時正在為WPA1添加一個弱加密SafeGuard,因為已知WPA1有弱點而且不應該使用。 WEP加密也是如此:它不應該再被使用了。 Defensics 802.11測試套件那時具有弱加密檢測功能,我運行了幾個案例來測試它,正巧我桌面上有AP,即D-Link DIR-850L。我以為會檢測到弱加密,因為我已經將SUT AP配置為擁有WPA1而沒有其它任何設置。
正如我所預測的一樣,Defensics正確地檢測到弱加密。但是AP接受了沒有WPA加密的DHCP發現序列。此特定測試用例本應經過協商以使用WPA1加密,但它不包含實際加密:DHCP發現序列以明文形式發送給AP。我對此測試結果感到驚訝,因為路由器應該需要WPA1加密。然后我使用Wireshark,一種捕獲無線數據幀的工具,重新運行測試用例并檢查結果。
在結果中,我看到了AP給Defensics提供的IP地址、路由器IP地址、租用時間等。發現序列再次以明文發送。然后我將加密從WPA1更改為WPA2,看看是否會對SUT行為產生影響。同樣,發現序列仍以明文形式發送,因此這出現了問題。 AP還支持WPA Enterprise,并且在該模式下的測試沒有改變行為 - 序列仍以明文形式發送。
分析
當然,下一個問題是發生了什么,為什么呢?連接到AP分兩個階段完成。首先,客戶端和AP就連接參數和要使用的加密達成一致;其次,執行所謂的WPA握手或四次握手,交換加密參數并確保它們都具有PSK。在此之后,他們打開加密數據連接。但是,我運行的測試用例跳過了WPA握手,因此必須在握手之前發生什么,AP和客戶端就連接參數和使用的加密達成一致。
第一階段包括探測請求和響應、身份驗證請求和響應,最后是關聯請求和響應。探測請求的主要目的只是發現AP。然后,探測響應包含有關AP的所有信息,包括支持哪種加密。
下一個請求 - 響應對是身份驗證,其目的是確保向后兼容性。接下來是關聯請求和響應。在關聯請求中,客戶端告訴AP哪個是它想要的加密以及使用哪些參數。關聯請求還會打開AP和客戶端之間的數據連接。
我運行的測試用例有一個正常的探測請求和身份驗證請求。然后,關聯請求需要客戶端支持WPA1加密。此時,WPA握手應該發生,但由于我的測試用例跳過了握手,AP和客戶端開始發送沒有任何加密的數據幀。
漏洞利用
從沒有憑據的受保護網絡獲取IP地址已經是件壞事,但是還會更糟糕嗎?我決定為此漏洞創建漏洞利用程序。我的想法是創建一個自定義版本的wpa_supplicant(Linux操作系統中的默認WLAN客戶端)。
首先,我嘗試修改wpa_supplicant,以便它只是忽略WPA握手,但事實證明這非常困難。檢查太多,無法確保WPA狀態機處于正確狀態。這證實我試圖做的事情并不常見。我嘗試的下一件事是在沒有加密的情況下建立連接,但修改包含加密參數的關聯消息。這與Defensics測試套件在測試用例中所做的一樣。我只需要刪除一些未經協商的加密參數檢查,就可以建立連接。
對新思科技的Defensics智能模糊測試有疑問?我們給您答案
我有一個wpa_supplicant的修改版本,它提供了網絡接口上的完整Linux IP堆棧。首先,我嘗試連接到AP管理面板。雖然連接了,但是我注意到在路由器接到流氓客戶端之前,路由器接受了普通數據幀時,有三到六秒的窗口。然而,wpa_supplicant自動重新連接,我的開發繼續進行。實際上,重新連接速度非常快,即使傳輸控制協議(TCP)連接仍保持打開狀態。
此外,我還連接了另外兩臺設備,一臺是有線的,一臺是通過WLAN連接的。從流氓客戶端,我可以毫無費勁地連接兩個設備。從路由器管理面板,我看到惡意客戶端被識別為連接到路由器的任何其它客戶端。因此,利用此漏洞,我可以在不知道預共享密鑰的情況下完全訪問網絡。我不需要做任何耗時的暴力破解 - 我只是連接到網絡。
總結
Defensics 802.11測試套件現在可以識別繞過整個WPA加密機制的情況。測試套件現在包含一個單獨的SafeGuard功能來測試此漏洞,如果它檢測到WPA加密被繞過,則測試將顯示失敗。因此,針對其AP運行Defensics模糊測試的供應商將意識到此漏洞。測試的D-Link設備是隨機選擇的,D-Link已經發布了該設備的補丁。
-
WLAN
+關注
關注
2文章
657瀏覽量
73099 -
新思科技
+關注
關注
5文章
798瀏覽量
50337 -
D-Link
+關注
關注
0文章
11瀏覽量
18322
發布評論請先 登錄
相關推薦
評論