KRACK攻击简介
密钥重安装攻击(Key Reinstallation Atacks)
KRACK的攻击对象包括客户端和AP,针对的是两方在密钥认证结束后的以协商消息加密密钥为目的的四次握手阶段
对AP密码无直接威胁,而对客户端与AP连接后进行交互的过程具有直接威胁
目的
拦截并解密通过无线网络传输的数据
使用拦截到的数据包进行重放攻击
进行伪造数据包攻击
实施攻击的条件
攻击者可以连接到被攻击的
AP能够进行中间人攻击
影响范围
WPA1及WPA2
个人及企业网络
Ciphers WPA-TKIP, AES-CCMP 和 GCMP
攻击详情分析
客户端与AP进行四次握手阶段和组密钥握手阶段
当客户端试图连接到一个受保护的WiFi网络时,AP将会发起四次握手,完成相互认证。
四步握手认证过程:

AP发送Anonce给STATION,STATION生成Snonce,通过这两个随机数与其他信息即可计算出PTKSTATION将Snonce与PTK的MIC(完整性校验)发送给AP,AP拿到Snonce,计算出PTK。后进行双方PTK的MIC校验,既可校验PTK,又可判断PMK,进一步可判断PSKAP发送GTK与GTK的MIC给STATIONSTATION针对GTK会使用另外的算法进行计算,校验。无误后向AP回复ACK并使用密钥加密
在四次握手过程中,当客户端收到AP发来的GTK+MIC后将会安装加密密钥key,用于加密正常的数据帧。
因为GTK+MIC可能丢失或者被丢弃,如果AP没有收到客户端的响应,AP将会重新传输GTK+MIC,这样客户端可能会收到多次GTK+MIC。客户端每次收到此GTK+MIC都会重新安装加密key,从而重置加密协议使用的增量发送数据包nonce和接收重放计数器。而攻击者可以通过收集和重放发送四次握手中的GTK+MIC强制重置nonce,从而成功攻击加密协议,解密客户端发送通信数据包,截获敏感信息。
另外,这一漏洞似乎是由WiFi标准中的一句话引起的。该标准建议,一旦首次安装,就可以从内存中清除加密密钥。当客户端收到四次握手的重传GTK+MIC时,它将重新安装现已清除的加密密钥,有效地安装了一个全为零的密钥
攻击演示
论文地址:https://www.krackattacks.com/
视频连接:https://youtu.be/Oh4WURZoR98
首先被攻击客户端设备连接真实的
TestNetWork网络开启
WireShark并监听在伪造AP的网卡真实
AP:ssid: testnetwork,MAC:bc:ae:c5:88:8c:20,Channel:6被攻击客户端:
MAC: 90:18:7c:6e:6b:20伪造同名同
MAC热点:ssid: testnetwork,MAC:bc:ae:c5:88:8c:20,Channel:1注入
CSA beaconpairs将客户端信道变为1,迫使客户端与伪造AP通信伪造
AP向目标客户端发送Disassociate数据包,使其解除关联。经过上述步骤,此时设备经历重连,
WiFI状态为正在认证当目标
targe与真实AP完成认证过程,准备发起连接时,注入CSA beacon pairs,使信道切换到channel 1实施中间人攻击,同时客户端状态保持在state 2,接下来开始发送四次握手中的GTK+MIC,实施密钥重新安装(Key Reinstallation Attack)攻击此时密钥重装攻击已经执行成功,客户端已连接上伪造热点
在此伪造热点中,使用
SSstrip使HTTPS降级用户在网站提交的账号信息可被攻击者获取
测试工具
https://github.com/vanhoefm/krackattacks-scripts
参考链接
https://www.freebuf.com/articles/wireless/150953.html
https://www.freebuf.com/articles/wireless/153323.html
https://www.freebuf.com/articles/wireless/153324.html