Wi-Fi WPA2 “Kr00k”漏洞分析与复现

发布者:ADLab
发布于:2020-04-10 15:12

1 研究背景

在今年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 测试环境


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






声明:该文观点仅代表作者本人,转载请注明来自看雪