篇首语:说实话,周一收到诺总消息时,杨叔是一脸懵逼的,纳尼?WPA2被攻破了?作为才从欧洲带队回来刚下飞机晕头晕脑还在倒时差的杨叔来说,第一反应就是这特么不会又是无底线夸大宣传吧?
昨晚看了资料发现果然如此,人家比利时的研究人员都说了是Bypassing WPA2,即绕过WPA2,提都没提破解两个字,但是有些人啊,就非要搞个大新闻……唉,忙到晚上才有空写了这篇姗姗来迟的软文,让大家久等了。
0x01 先说结论
昨天中午起来微信、邮件上收到一堆询问,别担心,没有大家想的那么糟,但确实有些工作要做,杨叔直接说下结论,对细节不在意的同学,看这些就够了。
KRACK攻击/漏洞分析结论:
1)该漏洞并没有攻破WPA/WPA2加密,这些加密目前仍然是安全的。
2)从原理上讲,该漏洞仍属于高级中间人攻击的一种。
3)虽然该漏洞主要针对采用wpa_supplicant架构的Linux和Android的客户端,但开启了802.11r漫游的Windows10也会接受伪造请求,所以,所有类型客户端(包括Windows)都应更新补丁。
4)利用该漏洞进行的攻击本身并不容易(或许很快会有傻瓜工具),但在复杂的城市环境里,要求近距离才能实现,除非是面对面的两栋高层,否则很难出现50米外攻击的情况。
5)该漏洞对基于802.1X认证架构的客户端无效,该攻击方法本身无法破坏本地证书,但建议企业认证环境,除升级WIDS外,还要加强对NTP等协议异常的防护和响应(见本文0x02小节描述)。
6)无线路由设备会根据情况受到不同程度的影响,一方面是由于开启了中继功能和802.11r快速漫游功能等,另一方面是由于使用不同无线芯片所致,所以出于安全考虑,应立刻关闭此类功能,并及时更新设备固件。
7)鉴于现有的绝大多数无线设备不太可能会及时得到官方补丁修复,甚至许多可能根本就不会修复,所以,建议密级高的商业/企业用户在使用无线访问时最好使用公司VPN。
8)有意思的是,根据官方论文描述,该漏洞也暴露出CPU在接受四次握手的处理机制上存在一些问题,可能后续大家还需要等待下Intel的评估结论甚至补丁。
9)最新的WiGig技术可能受其影响严重,厂商需要提前关注。
当然,杨叔后续会继续跟踪,若有新的升级漏洞出来,会第一时间放出分析软文。至于攻击的细节和问题参看本文的0x03小节。
0x02 解释下KRACK攻击原理
杨叔仔细看了https://www.krackattacks.com/上发布的视频和说明文档,这个KRACK ATTACK攻击(Key Reinstallation Attack,即密钥重载攻击),应该算是目前最取巧的针对WPA/WPA2的中间人攻击方法。
首先,该攻击并不针对WPA2加密本身,而是针对目前所有内置在Android和Linux的wpa_supplicant,由于其设计为在接受重传的message3时都会重新安装组密钥,于是攻击者就可以通过多次重放四次握手的msg3即消息3,来强制复位/重装受害者已经在用的WPA密钥,即把原来正确真实的WPA密码替换掉,注意是不破解直接替换,这样就可以将受害者连到伪造的AP上,无需任何提示再配合SSLStrip之类的工具做中间人就圆满地实现了基于WIFI的无缝中间人攻击。
由于遭受攻击的Android和Linux已经被诱骗重装一个全零的加密密钥(all-zero encryption Key),所以后续攻击者就能够窃取受害方的各类上网数据,如网络交易数据、邮箱账户密码、聊天记录等。Github上已有了工具站点 (https://github.com/vanhoefm/krackattacks),但尚未正式公开POC。
再具体点说,密钥重载攻击主要是在STA实现四次握手过程中,在STA与AP中建立一个中间人,在此位置重放Message3的消息,并阻止AP接受Message4。这样最终就会重置被用在数据保密协议中的Nonce,也就导致了数据包的重放、解密和伪造。大家可以看看下图的四次握手原理加深下理解。
杨叔解释下标准的四次握手过程,一共四个message报文:
message1:AP发送Anonce给STA
message2:STA生成Snonce计算出PTK,然后Snonce加PTK的MIC,再发给AP
message3:AP拿到Snonce计算出PTK,AP计算MIC再与接受的MIC比对,若MIC一致就确认STA知道PMK,AP发GTK给STA
message4:STA回复ACK,并用密钥加密
归根到底,这些都是因为Android和Linux里的wpa_supplicant,基本都存在例外允许未完整加密的EAPOL包和未验证PTK密钥来源所致。
更令人遗憾的是,根据研究人员展示,大多数AP会在每个小时重载一次会话密钥,这就给攻击带来了机会,实验表明采用Broadcom芯片的无线路由器甚至并不会验证EAPOL数据的真伪,这就意味着攻击者可以强制Broadcom无线设备重载密钥,来实现WRACK密钥重载攻击。
而经过研究人员测试,目前几乎所有的WiFi设备都会收到此类强制攻击影响,攻击者可以通过不断重放重连请求数据帧,来重置AP使用的nonce和重传计数器。
0x03 企业用户注意
知道了上述攻击原理,就会发现,针对基于802.1X认证环境的用户来说,认证主要依靠客户端上保存的证书,而该攻击并没有涉及到客户端802.1X证书的破坏和伪造,也没有办法将路由器上的CA认证策略清除,所以对RADIUS认证架构的破坏也就无从谈起。
但是!!注意,但是,密钥重载攻击可以让攻击者解密TCP数据包,所以理论上存在通过破坏NTP网络时间协议的方式来破坏802.1X认证的稳定性(4年前杨叔还在黑防上发表过一篇NTP攻击手段的软文)。所以,建议企业认证环境除了升级WIDS外,还要加强对NTP等协议异常的防护和响应。
当然,若是攻击者伪造了企业AP,然后用DEAUTH洪水攻击合法的企业AP,来故意吸引不明真相的外部用户访问,或者直接伪造RADIUS认证环境,自行构造虚假802.1X认证,这个就属于传统中间人/钓鱼攻击范畴,和本文讨论的漏洞就没什么关系了。
0x04 一些攻击细节
该攻击依然需要前置要求,漏洞的利用确实没有那么简单,但对于稍微具备无线安全工具操作经验的人来说,利用现有工具也很容易实现。
1)前置要求:
和以往的中间人攻击一样,需要劫持普通用户访问非法AP,换句话说就是需要对合法无线网络的压制或增强信号诱导。
2)攻击难度:
攻击原理挺复杂的,但根据视频显示,概念型工具(还未正式发布)的操作并不难,不过若是希望利用该漏洞实现更深层次的攻击,那确实需要攻击者具备高超的技术。
3)攻击有效距离:
实际应在5~30米左右,在满足“处于目标WIFI信号覆盖范围内,并能够进行有效无线数据交互”的条件下,才有可能实现50米以外的远距离攻击。攻击者可以通过提高网卡发射功率或增加外置功放的方式有限地提高距离,但是真的很有限。
解释:别的不说,用过wifite工具的朋友都知道,实地攻击永远比实验室或者会议演示复杂得多。下图是杨叔在日本北海道某温泉旅馆外的测试抓图(大雪天的夜晚,我容易么?)同样的测试,在泰国、马来西亚、德国、捷克、波兰等亚洲欧洲街头都做过。
很多在实验室内号称可以100米外的工具,仅仅在捕捉WPA四次握手这一项,现实中对于指定目标,个别场景下甚至只有在10米范围内才能实现。更不用提这次漏洞利用工具,还需要多次对目标四次握手展开重复攻击,有效距离可想而知。
4)该漏洞与以往WIFI中间人攻击的区别:
用过类似Airjack、dSploit、Wifiphisher无线中间人攻击工具的朋友们,应该都知道,虽然这些工具的原理稍有不同,用于普遍撒网型钓鱼就不说了,但对于指定目标,每次攻击时都需要压制下合法AP这一点,可以说是严重影响到了“客户体验”:)
但该漏洞的出现意味着,从原理上而言,攻击者只需要第一次压制下合法AP,之后受害方就会主动连接伪造AP,再也无需反复压制。这一点想来很多监控厂商听了一定会暗爽不已。
5)漏洞技术细节:漏洞编号已经公布,包括了CVE-2017-13077、CVE-2017-13078、CVE-2017-13079、CVE-2017-13080、CVE-2017-13081、CVE-2017-13082、CVE-2017-13084、CVE-2017-13086、CVE-2017-13087 和 CVE-2017-13088,大家自行检索吧。
6)底层原理详细资料,更多协议分析图请参考这篇(杨叔实在翻译不动了):
https://papers.mathyvanhoef.com/ccs2017.pdf
0x05 该漏洞的缺憾
其实吧,这个新漏洞利用有个最大的问题是,比如采用了该攻击技术的监控设备在撤掉以后,由于受害方手机/电脑里的原始密钥已经被替换,所以默认就只能连那个伪造的AP,不能连上原来的WiFi路由,哈哈,这算不算是管杀不管埋?—–论如何事后惊动对象的新技能之一got:)
友情提醒:请某些监控设备/平台厂商的技术人员应特别注意这一点,别乐极生悲,反而搞成打草惊蛇专用设备……
0x06 漏洞修补与防御建议
微软一周前已经有补丁推出,看来漏洞发现团体在公开之前已经通知了厂商,确实行业良心。在这个充满炒作的年代,真是难得。不过为何某些厂商知道得很晚就不得而知了,莫非是SRC奖金太少,哈哈。
漏洞修补与防御建议:
1)安装官方补丁。
包括客户端和无线设备的,企业用户最好也升级一下补丁。目前微软已经在10月10日发布补丁,苹果已经发布beta修复补丁,还会在未来几周内发布新的升级,至于Linksys、Netgear等无线设备厂商有的已经发布补丁,有的还在评估漏洞细节。
有趣的是,微软于10月17日刚发布的WPA2 无线网络加密协议漏洞(CVE-2017-13080)的详情页面,经杨叔核查,该页面已被删除,呵呵,是说太多给自己挖坑了吧。原地址: https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2017-13080
2)手动检测/防御方案:
比较取巧的检测方法之一是做个py/cmd脚本(注意,该方法不保证完全有效)。Linux下可以将WIFI配置文件导出并记下MD5 Hash值,然后每次连接上历史WIFI后,导出配置文件并比对MD5 Hash的改变,如发现是当前SSID的配置变化(特别是Key内容),则很可能遭到KRACK攻击。有些Linux下的第三方WIFI配置工具已经具备该功能。
Android手机用户,可能安装过“XX钥匙”的手机反而还简单些,因为已经root过,所以可以很轻松读取WIFI配置记录。
3)自动检测/防御方案:
可以按照上述取巧的思路,但专业点的办法是直接跟踪WIFI报文,比如对于WIDS而言,可以针对此类攻击报文建立识别策略,特别是有DEAUTH报文的同时,还伴有大量EAPOL四次握手中msg3的重放/重置行为,如发现应直接告警并阻止。
对于个人而言,某些具备防止SSL欺骗、DNS欺骗的防护工具会在一定程度上起到间接保护作用。
4)保持良好的安全习惯:
在登录在线交易、邮箱时,查看下网站HTTPS是否变为HTTP依然是一个需要保持的良好习惯,就此一项就可以规避绝99%的中间人或钓鱼攻击。
0x07 致谢
首先感谢诺总的第一时间告知,还要感谢“全频带阻塞干扰”技术小群里各位大牛的讨论,虽然群里平时一直在闲扯,不过大家认真起来的样子还是很专业的,嘿嘿,我说的是相对于聊起偷拍尾行技能方面而言。
恩,虽然杨叔目前从事商业安全/反窃密领域,以及进阶的人身安防方面,同时也在开展一些深入的安防技能训练,但无线反监听反窃密依然属于商业安全的重要范畴,所以“无线安全”始终都是研究方向和个人兴趣爱好之一,欢迎大家留言和讨论。
唉,写技术软文果然太累了,还是翻看下欧洲妹纸的照片放松下~
——————————————————————-
只做有趣的研究,只做原创,且不限于技术
一切不基于红包的非授权转载都是耍流氓:)
——————————————————————-
长按二维码,关注公众号,翻看更多内幕:
商业反窃密、隐私保护、通信监听、海外情报、CrimeBreak犯罪防御、无线安全研究……更多干货点这里:)
本文始发于微信公众号(全频带阻塞干扰):WPA2被攻破?全球WiFi瘫痪?WiFi末日到来?能再夸张点不
请登录后发表评论
注册