Wi-Fi WPA2 Kr00k漏洞分析与复现 – 作者:ADLab

一、研究背景

在今年2月份的RSA大会上,ESET的研究人员公开披露Wi-Fi芯片存在严重安全漏洞CVE-2019-15126,并将其命名为“Kr00k”。攻击者可以利用“Kr00k”解密无线网络流量,获取传输过程中的敏感数据。

Kr00k漏洞影响部分安装Broadcom和CypressWi-Fi芯片的设备,这两家芯片产品被广泛应用于手机、平板电脑及IOT设备中。保守估计,全球总计超过10亿的设备受该漏洞的影响。

二、漏洞分析

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.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部分数据被成功解密。

四、影响范围

目前已知受影响的设备有:

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

五、安全建议

设备制造商已发布的安全建议如下:

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

*本文作者:ADLab,转载请注明来自FreeBuf.COM

来源:freebuf.com 2020-05-21 10:00:48 by: ADLab

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论