Wi-Fi WPA2 “Kr00k”漏洞分析與復現
發布時間 2020-03-261.研究背景
在今年2月份的RSA大會上,ESET的研究人員公開披露Wi-Fi芯片存在嚴重安全漏洞CVE-2019-15126,并將其命名為“Kr00k”。攻擊者可以利用“Kr00k”解密無線網絡流量,獲取傳輸過程中的敏感數據。
Kr00k漏洞影響部分安裝Broadcom和Cypress Wi-Fi芯片的設備,這兩家芯片產品被廣泛應用于手機、平板電腦及IOT設備中。保守估計,全球總計超過10億的設備受該漏洞的影響。
2.漏洞分析
2.1 漏洞原理
在介紹Kr00k漏洞之前,先簡單了解下WPA2協議。目前基于AES-CCMP的WPA2協議是Wi-Fi網絡中最普遍的標準。下圖是客戶端(Station, STA)連接接入點(Access Point, AP)的消息交互過程。
STA和AP在四次握手中,協商會話密鑰PTK(Pairwise Transient Key),PTK是由PMK和PKE計算生成,而PMK由ANonce、SNonce和雙方MAC地址等計算生成。PTK分為KCK、KEK和TK三部分,其中,KCK用于MIC校驗,KEK用于加密GTK,TK為數據加密密鑰。四次握手完成后,傳輸數據使用TK進行加密。
在WPA2協議中,解除關聯操作可以由未經身份驗證和未加密的管理幀觸發,Kr00k漏洞與解除關聯操作密切相關。在下圖所示中,當站點的連接會話解除關聯后,保存在Wi-Fi芯片中的會話密鑰(TK)被置零,如果使用已置零的TK密鑰對芯片緩存中的數據進行加密并傳輸,將導致漏洞產生。
攻擊者利用無線網卡即可完成入侵,通過不斷觸發解除關聯、重新關聯,然后使用全零TK對捕獲的數據幀進行解密,從而獲取敏感信息。
2.2 固件分析
本文選取Nexus5中的BCM4339芯片固件進行分析。首先,定位固件中計算ptk的位置,如下圖所示。
然后,對其上層函數wlc_wpa_sup_eapol進行分析。
wlc_wpa_sup_eapol調用wpa_pmk_to_ptk時,傳入的參數分別為mac1、mac2、Nonce1、Nonce2、pmk、pmk_len、ptk、ptk_len。ptk計算結果被保存在wpa_ptk結構體偏移0x8c位置中。
wlc_sup_attach函數用于處理STA的初始化連接,該函數對wpa_ptk結構體進行內存分配和初始化,wpa_ptk結構體大小為0x13C。
當初始化失敗、連接超時或解除連接的時候,則會調用wlc_sup_detach函數對wpa_ptk結構體進行置零操作。
3.漏洞驗證
3.1 測試環境
|
設備名稱 |
數量 |
受影響的設備 |
Nexus5 |
1 |
iphone6s手機 |
1 |
|
Attacker |
NETGEAR網卡 |
2 |
3.2 測試步驟
(1)對wireshark解密數據包的相關功能進行patch,使其能夠成功解密全零TK加密的數據。
(2)使用patch后的wireshark監聽目標設備和AP通信的數據包。
(3)使用目標設備連接AP并任意訪問網頁。
(4)對AP和測試目標發送Disassocation包。
(5)重復執行步驟(3)和(4),觀察wireshark中數據包是否解密。
3.3 測試結果
Nexus 5:
iphone 6s:
可以看出,Nexus 5和iphone 6s部分數據被成功解密。
4.影響范圍
目前已知受影響的設備有:
Amazon Echo 2nd gen
Amazon Kindle 8th gen
Apple iPad mini 2
Apple iPhone 6, 6S, 8, XR
Apple MacBook Air Retina 13-inch 2018
Google Nexus 5
Google Nexus 6
Google Nexus 6P
Raspberry Pi 3
Samsung Galaxy S4 GT-I9505
Samsung Galaxy S8
Xiaomi Redmi 3S
Asus RT-N12
Huawei B612S-25d
Huawei EchoLife HG8245H
Huawei E5577Cs-321
5.安全建議
設備制造商已發布的安全建議如下:
?https://support.apple.com/en-us/HT210721
?https://support.apple.com/en-us/HT210722
?https://support.apple.com/en-us/HT210788
?https://www.arubanetworks.com/assets/alert/ARUBA-PSA-2020-003.txt
?https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20200226-wi-fi-info-disclosure
?https://www.huawei.com/en/psirt/security-notices/huawei-sn-20200228-01-kr00k-en
?https://www.microchip.com/design-centers/wireless-connectivity/embedded-wi-fi/kr00k-vulnerability
?https://www.mist.com/documentation/mist-security-advisory-kr00k-attack-faq/
?https://www.zebra.com/us/en/support-downloads/lifeguard-security/kr00k-vulnerability.html