
- 新思科技使用智能模糊測試工具Defensics檢測到D-Link的行為漏洞。
- 2018年8月6日:新思科技發(fā)現了這個(gè)漏洞問(wèn)題。
- 2018年8月7日:新思科技研究團隊聯(lián)系D-Link。
- 2018年8月20日:新思科技聯(lián)系芬蘭國家網(wǎng)絡(luò )安全中心(NCSC-FI),該中心是芬蘭通信監管局的一部分。
- 2018年9月20日:新思科技測試供應商補丁并確認NCSC-FI的解決方案。
- 2018年11月6日:D-Link發(fā)布固件補丁。
- 2018年11月7日:NCSC-FI發(fā)布咨詢(xún)。
- 2018年11月15日:新思科技網(wǎng)絡(luò )安全研究中心 (CyRC)發(fā)布此通報。
發(fā)現漏洞
作為Defensics SafeGuard開(kāi)發(fā)的一部分,我們發(fā)現了D-Link DIR-850L無(wú)線(xiàn)AC路由器(硬件修訂版本A)中的漏洞。該漏洞使攻擊者無(wú)需提供憑據即可完全訪(fǎng)問(wèn)無(wú)線(xiàn)網(wǎng)絡(luò )。我們的方法在接入點(diǎn)連接期間跳過(guò)關(guān)鍵步驟,完全繞過(guò)加密。
在確定此漏洞后,新思科技繼續與芬蘭國家網(wǎng)絡(luò )安全中心(NCSC-FI)協(xié)調披露事宜,編號為CVE-2018-18907。我們與D-Link合作重現了這個(gè)漏洞問(wèn)題。在2018年11月6日,D-Link已經(jīng)為受影響的設備提供了修復方案。
WPA2是用于客戶(hù)端和接入點(diǎn)(AP)之間的WLAN網(wǎng)絡(luò )通信的加密技術(shù)。為了相互連接,AP和客戶(hù)端都需要知道預共享密鑰(PSK),它們在WPA握手過(guò)程中交換,隨后在它們之間打開(kāi)加密通道。
通常,破壞WPA2加密需要在A(yíng)P和客戶(hù)端(也稱(chēng)為請求者)上執行無(wú)線(xiàn)捕獲,其中握手過(guò)程完全可見(jiàn),或者僅從AP獲取對偶主密鑰標識符(PMKID)。完成此操作后,您將獲得強制WPA2 PSK所需的所有信息。獲取PSK所需的時(shí)間取決于硬件和PSK長(cháng)度。但有時(shí)候通過(guò)WPA2加密需要一點(diǎn)運氣,這往往不到一秒鐘。
辦公室日常工作
2018年8月初,我正在為新思科技的Defensics解決方案完成新版本的測試套件,該解決方案為各種協(xié)議提供模糊測試。模糊測試是一種測試方法,測試工具發(fā)送格式錯誤的輸入以發(fā)現軟件中潛在的安全漏洞。這種包含意外或無(wú)效數據的格式錯誤的輸入稱(chēng)為異常測試用例。
我最后添加到測試套件中的信息包括一些新的異常測試用例和SafeGuard結果。 SafeGuard是一項專(zhuān)利功能,允許Defensics識別違反規范或最佳實(shí)踐的情況 -- 例如,當被測系統(SUT)選擇弱加密方案時(shí),或者以明文形式發(fā)送身份驗證憑據時(shí)。
SafeGuard與模糊測試有何不同?
新版本的Defensics 802.11測試套件包含兩項重要改進(jìn)。
第一,WPA2握手后數據幀的WPA2加密。之前的版本僅計算會(huì )話(huà)的臨時(shí)密鑰,而且可以將此信息寫(xiě)入文件。這允許測試人員驗證Defensics和SUT都具有相同的臨時(shí)密鑰。但是發(fā)送加密數據幀會(huì )自動(dòng)測試正確的密鑰,因為兩端的加密和解密需要知道密鑰。
第二個(gè)改進(jìn)是在IPv4上簡(jiǎn)單的動(dòng)態(tài)主機設置協(xié)議(DHCP)發(fā)現報文序列。此DHCP序列驗證SUT是否接收數據幀并檢查響應。由于DHCP本身非常復雜,我首先在沒(méi)有加密的情況下實(shí)現它,并且在DHCP序列工作之后,在測試中添加了WPA2 AES CCMP加密。
測試發(fā)現
我當時(shí)正在為WPA1添加一個(gè)弱加密SafeGuard,因為已知WPA1有弱點(diǎn)而且不應該使用。 WEP加密也是如此:它不應該再被使用了。 Defensics 802.11測試套件那時(shí)具有弱加密檢測功能,我運行了幾個(gè)案例來(lái)測試它,正巧我桌面上有AP,即D-Link DIR-850L。我以為會(huì )檢測到弱加密,因為我已經(jīng)將SUT AP配置為擁有WPA1而沒(méi)有其它任何設置。
正如我所預測的一樣,Defensics正確地檢測到弱加密。但是AP接受了沒(méi)有WPA加密的DHCP發(fā)現序列。此特定測試用例本應經(jīng)過(guò)協(xié)商以使用WPA1加密,但它不包含實(shí)際加密:DHCP發(fā)現序列以明文形式發(fā)送給AP。我對此測試結果感到驚訝,因為路由器應該需要WPA1加密。然后我使用Wireshark,一種捕獲無(wú)線(xiàn)數據幀的工具,重新運行測試用例并檢查結果。
在結果中,我看到了AP給Defensics提供的IP地址、路由器IP地址、租用時(shí)間等。發(fā)現序列再次以明文發(fā)送。然后我將加密從WPA1更改為WPA2,看看是否會(huì )對SUT行為產(chǎn)生影響。同樣,發(fā)現序列仍以明文形式發(fā)送,因此這出現了問(wèn)題。 AP還支持WPA Enterprise,并且在該模式下的測試沒(méi)有改變行為 - 序列仍以明文形式發(fā)送。

分析
當然,下一個(gè)問(wèn)題是發(fā)生了什么,為什么呢?連接到AP分兩個(gè)階段完成。首先,客戶(hù)端和AP就連接參數和要使用的加密達成一致;其次,執行所謂的WPA握手或四次握手,交換加密參數并確保它們都具有PSK。在此之后,他們打開(kāi)加密數據連接。但是,我運行的測試用例跳過(guò)了WPA握手,因此必須在握手之前發(fā)生什么,AP和客戶(hù)端就連接參數和使用的加密達成一致。
第一階段包括探測請求和響應、身份驗證請求和響應,最后是關(guān)聯(lián)請求和響應。探測請求的主要目的只是發(fā)現AP。然后,探測響應包含有關(guān)AP的所有信息,包括支持哪種加密。
下一個(gè)請求 - 響應對是身份驗證,其目的是確保向后兼容性。接下來(lái)是關(guān)聯(lián)請求和響應。在關(guān)聯(lián)請求中,客戶(hù)端告訴AP哪個(gè)是它想要的加密以及使用哪些參數。關(guān)聯(lián)請求還會(huì )打開(kāi)AP和客戶(hù)端之間的數據連接。
我運行的測試用例有一個(gè)正常的探測請求和身份驗證請求。然后,關(guān)聯(lián)請求需要客戶(hù)端支持WPA1加密。此時(shí),WPA握手應該發(fā)生,但由于我的測試用例跳過(guò)了握手,AP和客戶(hù)端開(kāi)始發(fā)送沒(méi)有任何加密的數據幀。
漏洞利用
從沒(méi)有憑據的受保護網(wǎng)絡(luò )獲取IP地址已經(jīng)是件壞事,但是還會(huì )更糟糕嗎?我決定為此漏洞創(chuàng )建漏洞利用程序。我的想法是創(chuàng )建一個(gè)自定義版本的wpa_supplicant(Linux操作系統中的默認WLAN客戶(hù)端)。
首先,我嘗試修改wpa_supplicant,以便它只是忽略WPA握手,但事實(shí)證明這非常困難。檢查太多,無(wú)法確保WPA狀態(tài)機處于正確狀態(tài)。這證實(shí)我試圖做的事情并不常見(jiàn)。我嘗試的下一件事是在沒(méi)有加密的情況下建立連接,但修改包含加密參數的關(guān)聯(lián)消息。這與Defensics測試套件在測試用例中所做的一樣。我只需要刪除一些未經(jīng)協(xié)商的加密參數檢查,就可以建立連接。
對新思科技的Defensics智能模糊測試有疑問(wèn)?我們給您答案

我有一個(gè)wpa_supplicant的修改版本,它提供了網(wǎng)絡(luò )接口上的完整Linux IP堆棧。首先,我嘗試連接到AP管理面板。雖然連接了,但是我注意到在路由器接到流氓客戶(hù)端之前,路由器接受了普通數據幀時(shí),有三到六秒的窗口。然而,wpa_supplicant自動(dòng)重新連接,我的開(kāi)發(fā)繼續進(jìn)行。實(shí)際上,重新連接速度非常快,即使傳輸控制協(xié)議(TCP)連接仍保持打開(kāi)狀態(tài)。
此外,我還連接了另外兩臺設備,一臺是有線(xiàn)的,一臺是通過(guò)WLAN連接的。從流氓客戶(hù)端,我可以毫無(wú)費勁地連接兩個(gè)設備。從路由器管理面板,我看到惡意客戶(hù)端被識別為連接到路由器的任何其它客戶(hù)端。因此,利用此漏洞,我可以在不知道預共享密鑰的情況下完全訪(fǎng)問(wèn)網(wǎng)絡(luò )。我不需要做任何耗時(shí)的暴力破解 - 我只是連接到網(wǎng)絡(luò )。
總結
Defensics 802.11測試套件現在可以識別繞過(guò)整個(gè)WPA加密機制的情況。測試套件現在包含一個(gè)單獨的SafeGuard功能來(lái)測試此漏洞,如果它檢測到WPA加密被繞過(guò),則測試將顯示失敗。因此,針對其AP運行Defensics模糊測試的供應商將意識到此漏洞。測試的D-Link設備是隨機選擇的,D-Link已經(jīng)發(fā)布了該設備的補丁。