WPA-个人模式

Pastedimage20240618143014.png
四次握手的过程可概括如下:
  1. AP发送自己的随机数ANonce给STA;
  2. STA生成随机数SNonce,计算出PTK,并将SNonce和信息完整性校验码MIC发送给AP;
  3. AP收到SNonce,计算出PTK(此时双方都已有PTK),将组密钥GTK加密后连同MIC发给STA;
  4. STA收到GTK,安装PTK和GTK,发送ACK确认。AP收到确认后安装PTK。
    Pastedimage20240618143119.png
    参考:https://www.antiy.cn/research/notice&report/research_report/20171019.html

四次握手包中可以获取校验和字段MIC值。

PTK = Hash(PMK||A-nonce||S-nonce|| AP Mac || STA Mac)
    = Hash(PBKDF(Passphrase, SSID, ssidLength, 4096, 256)||A-nonce||S-nonce||AP Mac ||STA Mac)

PSK 、 PMK和 Passphrase之间的关系如下:

PSK = PMK = PBKDF(Passphrase, SSID, ssidLength, 4096, 256)

所以构造一个“彩虹表”即可快速破解密码。

内存-时间平衡攻击

采用预先计算常见的SSID和密码信息的PBKDF哈希来快速查找进行破解。

Evil Twin攻击

通过伪造和目标SSID信息相同的高功率AP,让客户端连接到伪造的AP。即可通过四次握手包的前两个握手包计算出PSK,离线计算。

条件

需要两个无线网卡(一个开启AP,一个开启监听抓包)。

WPA3攻击

目前对于WPA3的攻击仅有Evil Twin,其原理是伪造和目标相同的SSID等信息,使用WPA2认证,靠其大功率AP,使其客户端吸附连接。所以WPA3攻击并非攻击AP,而是攻击Client。

WPA3降级

使用Evil Twin攻击,和上述步骤相同。

伪造同名ssid-AP(针对ssid密码爆破)?

根据伪造客户端连接过的ssid,爆破目标ssid密码(和Evil Twin类似,但是这个获取目标ssid密码,而不是攻击客户端的)

四次握手包

PTK(Pairwise Transient Key 成对瞬态密钥) AP发送包含ANonce消息到客户端(Station),客户端用它生成PTKPTK = PRF(PMK + ANonce + SNonce + MAC (AP)+ MAC(Station)) ANonce 为AP生成的随机数 SNonce 为客户端生成的随机数PMK(Pairwise Master Key 成对主密钥) MIC为16字节

第一次握手

AP发送带有ANonce的EAPOL数据到客户端

客户端根据第一次握手收到的ANonce计算出PTK值

第二次握手

客户端 发送SNonce数据到AP(带有MIC的EAPOL数据)

爆破密码

psk=pbkdf2_sha1(password,SSID,4096,64); ptk_data=“Pairwise key expansion\0” +min(AP_MAC,STA_MAC) +max(AP_MAC,STA_MAC) +min(AP_Nonce,STA_Nonce) +max(AP_Nonce,STA_Nonce) +"\0"; ptk=hmac_sha1(ptk_data,psk,16); mic=hmac_sha1(LLC负载(802.1X Authentication部分 MIC值应替换为00),ptk,16);

参考: https://zhou-yuxin.github.io/articles/2016/%E6%97%A0%E7%BA%BF%E7%BD%91%E7%BB%9CWPA2%E5%8A%A0%E5%AF%86%E7%9A%84%E7%A0%B4%E8%A7%A3/index.html