offensive-wifi-recon について
offensive-wifi-reconは、許可されたセキュリティテスト向けの無線偵察スキルです。アダプター設定、複数帯域のパッシブ調査、対象を絞ったキャプチャ、APとクライアント情報の記録を案内します。
主な機能
- 01アダプターとモニターモードの設定
- 02規制ドメインの確認
- 03複数帯域のパッシブスキャン
- 04BSSIDを絞ったキャプチャ
- 05Kismetによるマッピングとデバイス識別
- 06対象データの体系的な記録
活用シーン
- 01テスト前の周辺無線ネットワーク調査
- 02APのチャネルと暗号化方式の記録
- 03クライアント数とPMF状態の評価
- 04許可された無線評価の計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-wifi-reconインストール後、Claude Code で/offensive-wifi-reconを入力して読み込まれたか確認します。
詳細
Wi-Fi 偵察
あらゆる無線エンゲージメントの最初のフェーズです。認証解除攻撃、イービルツイン攻撃、ハンドシェイクのキャプチャを行う前に、電波環境の全体像を把握してください。その後のすべての攻撃は、適切な BSSID、チャネル、暗号化方式、クライアント数を把握していることが前提となります。
クイックワークフロー
- 対象の周波数帯と PHY に適したアダプターを選びます
- モニターモードとパケット注入が実際に動作することを確認します
- 規制ドメイン(使用可能なチャネルと送信出力)を設定します
- すべての周波数帯をパッシブにスキャンします
- スコープ内の各 BSSID を詳しく調査し、クライアント数と PMF の状態を確認します
- アクティブ攻撃の前に、すべての情報を構造化されたターゲットリストに記録します
アダプターの選定
| チップセット | 強み | 備考 |
|---|---|---|
| Atheros AR9271 (Alfa AWUS036NHA) | 安定した 2.4 GHz モニターとパケット注入 | 802.11n のみ |
| Realtek RTL8812AU (AWUS036ACH) | デュアルバンド、パケット注入 | ドライバー:aircrack-ng/rtl8812au |
| MediaTek MT7612U (AWUS036ACM) | 安定したデュアルバンド | 最新のカーネルではツリー内ドライバーを利用可能 |
| MediaTek MT7921AU | Wi-Fi 6 モニター(制限あり) | パッチ適用済みドライバーが必要 |
| AWUS036AXML / AXM | Wi-Fi 6E(6 GHz) | 最先端のため、リリースごとに確認してください |
# Identify your radio
lsusb | grep -iE "(atheros|realtek|mediatek|alfa)"
iw dev
iw list | grep -A 8 "Supported interface modes"
iw list | grep -E "Frequencies:" -A 30
モニターモードの設定
# Kill conflicting services
sudo airmon-ng check kill
# Enable monitor mode
sudo airmon-ng start wlan0
# Or manually
sudo ip link set wlan0 down
sudo iw wlan0 set monitor control
sudo ip link set wlan0 up
# Verify monitor mode + injection
sudo aireplay-ng --test wlan0mon
パケット注入テストでは、近くの AP に対して ACK 率が 30/30 と表示されるはずです。スコアが低い場合は、ドライバー、アンテナ、または設置位置に問題があることを示しています。
規制ドメイン
# Check current
iw reg get
# Set explicitly (us = United States, jp = Japan extended, etc.)
sudo iw reg set US
適切な regdomain を設定すると、正規に使用できるチャネル(米国:2.4 GHz では 1~11、5 GHz では 36~165。日本では 12~13 と 184 以上の DFS チャネルも追加)と送信出力が利用可能になります。使用を許可された regdomain の範囲内で運用してください。
マルチバンドのパッシブスキャン
# All bands
sudo airodump-ng wlan0mon --band abg
# 5 GHz only (helps see UNII bands)
sudo airodump-ng wlan0mon --band a
# 6 GHz (requires 6E-capable adapter and updated airodump-ng)
sudo airodump-ng wlan0mon --band ax
# Hop only specific channels
sudo airodump-ng wlan0mon -c 1,6,11,36,40,44,48
後で分析できるようにファイルへキャプチャします。
sudo airodump-ng wlan0mon --band abg --write recon --output-format pcap,csv
対象を絞ったキャプチャ
スコープ内の BSSID を特定したら、次のようにします。
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w target wlan0mon
チャネルを固定してください。対象を絞ったキャプチャ中にチャネルホッピングを行うと、フレームを取りこぼします。
非表示の SSID
非表示 AP は、ESSID が空のビーコンをブロードキャストします。名前は、クライアントのプローブ(アクティブスキャン)やアソシエーション要求の際に漏えいします。
# Wait for legitimate client to associate, ESSID appears in airodump output
# Or, if a client is already associated, deauth them once to force reassociation:
sudo aireplay-ng --deauth 1 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon
(明示的な許可がある場合に限り認証解除を行ってください。offensive-deauth-disassoc を参照してください。)
ウォードライビング用 Kismet
sudo kismet -c wlan0mon
# Open https://localhost:2501 for the dashboard
Kismet は GPS 連携、AP の地図表示、IE の順序によるフィンガープリント、OUI プレフィックスに基づく IoT ベンダーの推定、既知の脆弱なモデルへのタグ付けに対応しています。
長時間のキャプチャでは、--no-ncurses を外して、tmux 上でヘッドレス実行してください。
Wigle への送信
エンゲージメントで許可されている場合は、次のようにします。
# Export Kismet's .kismet → CSV → Wigle import format
kismetdb_dump_devices --in capture.kismet --out devices.csv
(Wigle は無線ネットワークの観測情報を地理的に集約します。マッピングに役立ちますが、ROE を確認してください。)
ベンダー/OUI の特定
# Quick OUI lookup
echo "AA:BB:CC" | wireshark-tools/manuf-lookup
# Or check the airodump CSV's BSSID prefix against /usr/share/wireshark/manuf
ベンダーの特定は、次の判断に役立ちます。
- 推定されるデフォルト認証情報(ルーターのブランドから既知のデフォルトを確認)
- 既知のファームウェアのバグ(チップセットごとの CVE)
- WPS が脆弱である可能性(チップセットごとの Pixie Dust)
- KRACK/FragAttacks のパッチが適用されている可能性(ベンダーのパッチ適用頻度)
ターゲットごとに記録するデータ
| フィールド | 理由 |
|---|---|
| BSSID | すべてのアクティブ攻撃に必要 |
| ESSID | PNL プローブとの照合、クライアントプローブの相関分析 |
| チャネル+帯域幅 | キャプチャ対象の無線を固定 |
| 周波数帯 | アダプターの選定 |
| 暗号化方式 | WPA2-PSK/WPA2-Enterprise/WPA3-SAE/Open/WEP |
| PMF(保護管理フレーム) | 認証解除が機能するかどうか |
| RSSI | 位置の計画 |
| ビーコン間隔/TIM | イービルツイン対策を行う防御側に対する異常検出 |
| ベンダー(OUI) | 推定されるデフォルト認証情報、既知のバグ |
| クライアントリスト(MAC アドレス+RSSI) | 認証解除/リレーの対象 |
| WPS が有効か | Pixie Dust の候補 |
検知に関する考慮事項
防御側の WIDS が検知するもの:
- 新しいデバイスが電波環境に入ること(プローブ要求により、アソシエーション前でも検知されます)
- モニターモードのインターフェースによるチャネルホッピングのパターン
- 標準外のプローブ動作(KARMA 型のあらゆる応答。
offensive-evil-twinを参照)
無線からプローブを送信しない完全なパッシブ偵察は、ほとんどの WIDS 環境では検知されません。アクティブフェーズに移行すると決めるまでは、パッシブな状態を保ってください。
エンゲージメント用チートシート
# 1. Setup
sudo airmon-ng check kill && sudo airmon-ng start wlan0
sudo iw reg set US
sudo aireplay-ng --test wlan0mon # confirm injection (skip if pure passive)
# 2. Sweep all bands, write to file
sudo airodump-ng wlan0mon --band abg --write recon --output-format pcap,csv
# 3. Kismet for sustained map (optional)
sudo kismet -c wlan0mon --no-ncurses --daemonize
# 4. Per BSSID drill-down
sudo airodump-ng -c <ch> --bssid <BSSID> -w <name> wlan0mon
# 5. Build target list with all fields above
主な参考資料
- IEEE 802.11-2020(統合仕様)
- aircrack-ng のドキュメント:aircrack-ng.org
- Kismet のドキュメント:kismetwireless.net
- WIGLE:wigle.net(自動送信を行う前に API の利用規約を確認してください)
- 出典:https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md