无线安全之KRACK攻击


KRACK攻击简介

密钥重安装攻击(Key Reinstallation Atacks)

KRACK的攻击对象包括客户端和AP,针对的是两方在密钥认证结束后的以协商消息加密密钥为目的的四次握手阶段

AP密码无直接威胁,而对客户端与AP连接后进行交互的过程具有直接威胁

目的

  1. 拦截并解密通过无线网络传输的数据

  2. 使用拦截到的数据包进行重放攻击

  3. 进行伪造数据包攻击

实施攻击的条件

  1. 攻击者可以连接到被攻击的AP

  2. 能够进行中间人攻击

影响范围

WPA1WPA2

个人及企业网络

Ciphers WPA-TKIP, AES-CCMPGCMP

攻击详情分析

客户端与AP进行四次握手阶段和组密钥握手阶段

当客户端试图连接到一个受保护的WiFi网络时,AP将会发起四次握手,完成相互认证。

四步握手认证过程:

1.png

  1. AP发送AnonceSTATIONSTATION生成Snonce,通过这两个随机数与其他信息即可计算出PTK

  2. STATIONSnoncePTKMIC(完整性校验)发送给APAP拿到Snonce,计算出PTK。后进行双方PTKMIC校验,既可校验PTK,又可判断PMK,进一步可判断PSK

  3. AP发送GTKGTKMICSTATION

  4. STATION针对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

  1. 首先被攻击客户端设备连接真实的TestNetWork网络

  2. 开启WireShark并监听在伪造AP的网卡

  3. 真实APssid: testnetworkMAC:bc:ae:c5:88:8c:20Channel:6

    被攻击客户端:MAC: 90:18:7c:6e:6b:20

    伪造同名同MAC热点:ssid: testnetworkMAC:bc:ae:c5:88:8c:20Channel:1

    注入CSA beaconpairs将客户端信道变为1,迫使客户端与伪造AP通信

    伪造AP向目标客户端发送Disassociate数据包,使其解除关联。

  4. 经过上述步骤,此时设备经历重连,WiFI状态为正在认证

    当目标targe与真实AP完成认证过程,准备发起连接时,注入CSA beacon pairs,使信道切换到channel 1实施中间人攻击,同时客户端状态保持在state 2,接下来开始发送四次握手中的GTK+MIC,实施密钥重新安装(Key Reinstallation Attack)攻击

  5. 此时密钥重装攻击已经执行成功,客户端已连接上伪造热点

  6. 在此伪造热点中,使用SSstrip使HTTPS降级

  7. 用户在网站提交的账号信息可被攻击者获取


测试工具

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

https://blog.csdn.net/xuqi7/article/details/78346045

https://www.krackattacks.com/

---------------The End---------------
0%