雷锋网5月18日消息,研究人员发现苹果设备在PEAP认证上存在缺陷,攻击者可强迫苹果设备接入恶意热点。
研究人员称,即使身份验证服务器(RADIUS)也不能证明密码的真实性,该错误依然允许攻击者强制任何Apple设备(iOS,macOS或tvOS)与恶意接入点关联。
以下是雷锋网对报告内容进行的整理:
初遇CVE-2019-6203
报告撰写者dominic称,去年我们在准备Defcon的演讲时,迈克尔(另一位研究人员)和我正尝试实施hostapd-wpe的EAP攻击试验。在此次攻击中,身份验证服务器将接受任何用户名,之后的动作并非将证明密码内容返回到工作站的步骤(因为它不知道密码),而是将EAP成功消息发送回工作站。
“对于迈克尔的执着,我拒绝了很长一段时间。因为我觉得这种攻击方案不会奏效。因为在MSCHAPv2中,验证服务器实际上证明了密码内容回到决策端的过程,即使不能,我认为决策段也会拒绝继续执行,毕竟这就是保障安全的重点。”
令dominic出乎意料的是,在唯一的一次测试中hostapd-wpe的EAP攻击试验竟然成功了,几乎全部接受实验的Apple设备(iPad,iPhone,Macbook)都成功连接到恶意接入点。由于WPE是由Brad Antoniewicz编写的,我只得向他询问问题所在:
在这之后,dominic针对此次发现进行了大量研究,并在4月份尝试进行了CVE-2019-6203漏洞攻击的再现实验。
复现Apple漏洞
复现攻击的第一步,是找出漏洞的所在之处。通常来说,PEAP-MSCHAP v2的认证过程分为两个阶段:
1、验证服务器身份和建立TLS隧道。服务端将向客户端发送服务端的证书信息,通过后建立TLS隧道保护传输的数据。
2、在TLS隧道内通过MSCHAP v2进行双向认证。
在Frame 4、Frame 5中,验证者和客户端的Response都是通过双方的Challenge + passwordHash + Username计算得出的,并发向对方进行身份验证。
那么,如何复现Apple漏洞攻击呢?
2008年,安全研究员Joshua Wright编写了一个名为FreeRADIUS 的补丁。Wright的WPE攻击试验同样使用了绕过PEAP-MSCHAP v2的方式,最终,它可以通过建立虚假PEAP-MSCHAPv2热点得到个人用户请求,并在第二阶段获取Challenge、NTResponse 和 Username。
“与之类似的原理,同样可以应用在此次研究中。”dominic称,我用同样的方式复现了PEAP认证上的漏洞攻击CVE-2019-6203。
具体方法如下:
安装:
hostapd-wpehttps://github.com/OpenSecurityResearch/hostapd-wpe/blob/master/hostapd-wpe.patch 这是在Kali中使用“apt-get install hostapd-wpe”完成的,以下假定该方法。
使用-e开关运行它以启用“EAP Success”
https://github.com/OpenSecurityResearch/hostapd-wpe/blob/master/README#L135
在iOS设备上,在Wifi下,连接到“hostapd-wpe”网络。选择信任证书。可以使用任何凭据。
设备将连接,运行dnsmasq以分发DHCP将显示设备获取IP。
使用以下示例配置尝试使用wpa_supplicant进行相同的客户端连接将不起作用:
network = {
ssid =“hostapd-
wpe ” key_mgmt = WPA-EAP
eap = PEAP
phase2 =“auth = MSCHAPV2”
identity =“test”
password =“password”
ca_cert =“/ etc / hostapd-wpe / certs / ca.pem “
}
如此一来,将看到请求者将拒绝最终的消息验证者并断开连接。
修复问题及解决方案
复现试验中,未打补丁的Apple设备跳过发送验证器响应并且仅按照第7帧发送MSCHAPv2成功帧。这导致易受攻击的Apple设备轻松在其状态机制中跳过。随后它会发送一个PEAP响应——hostapd-wpe向其发送EAP-Success。
dominic称,这意味着如果Apple设备连接到未知用户密码的恶意AP,它不仅会获得NetNTLMv1质询响应,设备也将连接到网络。由于EAP的网络通常是企业网络,Apple设备会认为它与之相关(没有用户交互),此时也可以进行响应式攻击。
该缺陷影响2019年3月25日前的iOS、macOS、tvOS版本,包含MacBook、iPhone、iPad、Apple TV等多种苹果设备。但令dominic感到困惑的是,已修补的设备在PEAP,MSCHAPv2和WPA2级别上表现出完全相同的行为,即设备仍然连接到网络,在某些情况下甚至会请求DHCP。这是一个例子:
相反,Apple 在连接后使设备与网络断开连接。设备显示“无法连接”错误,并且设备上显示的日志条目显示:
Dominic解释道,这有点像一名保安在守护一座大楼,一旦有人进去无论是谁都会被全部赶出去。虽然它具有解决问题的效果,但很让人担心会不会暴漏出其他危险讯号。
“然而,在测试修复后的系统时,我确实注意到一个异常值,当在设备连接但导出不同的PMK时,握手的第二个消息中由MIC证明(这就是repo中的WPA代码所用的)出现了异常。当然,我觉得这只是一次偶然,因为PMK来自外部TLS会话并且未启用加密绑定,这应该是没有可能的。”
目前,Dominic仍不能确认这个问题是否真的存在,他表示会在之后的研究中用多台苹果设备展开试验,找出答案。
建议:
验证在最终EAP-Success消息中发送的消息验证器,并且不允许iOS / macOS设备连接到无法证明用户密码知识的恶意接入点。
可以在以下位置找到执行此验证的wpa_supplicant示例:
https ://w1.fi/cgit/hostap/tree/src/eap_peer/mschapv2.c#n112