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

嵌入軟件單元/集成測試工具專業(yè)分析
CAN總線測試工具選擇與使用
性能測試工具上線!暢玩《黑神話:悟空》 固態(tài)硬盤選致態(tài)
新品發(fā)布 | 多通道車載以太網(wǎng)仿真測試工具

CAN總線測試工具的主要功能
電路板檢測工具都有什么
CYW43455使用裝有ImmortalWrt 23.05.1固件的D-Link DIR-842 C1時,無法連接是怎么回事?
工具鏈工具——映射與調(diào)度、模擬與驗證、開發(fā)與測試工具

嵌入軟件單元測試工具的作用

評論