offensive-krack-fragattacks について
無線セキュリティテスト担当者向けに、WPA2クライアントのKRACKとFragAttacksを評価するスキルガイドです。テスト手順、実際の影響、報告方法を扱い、脆弱性が残る可能性のある組み込み機器やIoT機器にも焦点を当てています。
主な機能
- 01KRACKとFragAttacksの対象特定
- 02クライアント脆弱性テストの実行
- 03復号とフレーム注入の影響評価
- 04CVEごとの結果整理
活用シーン
- 01組み込みWi-Fi機器のパッチ状況確認
- 02許可されたテストでのクライアント脆弱性検証
- 03無線セキュリティ報告への影響と対策の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-krack-fragattacksインストール後、Claude Code で/offensive-krack-fragattacksを入力して読み込まれたか確認します。
詳細
KRACK と FragAttacks
WPA2 クライアント実装を標的とする 2 つの攻撃ファミリーです。どちらも広く公表されており(KRACK は 2017 年、FragAttacks は 2021 年)、最新の OS ではおおむねパッチが適用されていますが、組み込み機器や IoT の未対応機器が残っているため、多くのエンゲージメントで依然として対象となります。
適用されるケース
| ファミリー | 標的 | パッチの状況 |
|---|---|---|
| KRACK | 4 ウェイハンドシェイク/GTK/FT/TDLS における WPA2 サプリカント | 主要な OS には 2017~2018 年にパッチ適用済み |
| FragAttacks | WPA2/3 全体のフレームのフラグメンテーション/アグリゲーション | ほとんどのスタックに 2021~2022 年にパッチ適用済み |
現在、成功の可能性が高いのは次の対象に限られます。
- 組み込み OEM 機器(カメラ、センサー、POS 端末)
- 古い Android スマートフォン(8 未満で未パッチ)
- 産業用/SCADA の Wi-Fi クライアント
- Wi-Fi 対応のおもちゃ、スマート電球、無名メーカーの IoT 機器
最新の Win11/iOS 16 以降/Android 13 以降/hostapd-2.10 では対策済みです。
KRACK — 鍵の再インストール
4 ウェイハンドシェイクの M3 再送により、サプリカントがリセットされたノンス/リプレイカウンターとともに同じ PTK を再インストールします。再利用されたキーストリームで暗号化されたフレームは復号可能になります。
# Vanhoef's official test scripts
git clone https://github.com/vanhoefm/krackattacks-scripts
cd krackattacks-scripts/krackattack
sudo ./krack-test-client.py --interface wlan0
# Tests the supplicant on a connected client
出力から、クライアントがどの CVE の亜種に対して脆弱かを特定できます。
実際の影響
成功した場合:
- クライアントと AP 間の WPA2 暗号化フレームを復号できます
- TKIP へのダウングレードにより、パケットを注入できます
- 影響を受ける鍵サイクルの期間中、セッション鍵を復元できます
PSK の復元ではありません。KRACK から Wi-Fi のパスワードを取得することはできません。
FragAttacks — フレームのスプライシング
FragAttacks は、802.11 のフラグメンテーションとアグリゲーションを悪用し、暗号化フラグメントと平文フラグメントを混在させたフレームを注入したり、攻撃者が制御するフラグメントを正規のフレームに組み込んだりします。
git clone https://github.com/vanhoefm/fragattacks
cd fragattacks
sudo ./test-fragattacks.py wlan0 --interface wlan0
# Suite of ~12 tests covering each variant
| CVE | 仕組み |
|---|---|
| CVE-2020-24588 | A-MSDU のなりすまし — 細工した A-MSDU サブフレームを注入 |
| CVE-2020-24587 | 異なる鍵のフラグメントキャッシュポイズニング |
| CVE-2020-24586 | 分離されたフラグメントキャッシュ → 再利用 |
| CVE-2020-26139 | 認証前に平文フレームを転送 |
| CVE-2020-26140 | 保護されたネットワークで平文フレームを受け入れる |
実際の影響
- クライアントが正規のものとして扱う悪意のあるフレームを注入できます(HTTP リダイレクト、DNS ポイズニング)
- キャッシュされた状態から復号済みフラグメントを読み取れます
- 細工した A-MSDU により、保護を回避してデータを持ち出せます
標的選定のワークフロー
- 対象範囲内のクライアントを特定します(MAC、OS、ベンダー)
- パッチ適用の可能性を見積もります。最新の OS ならパッチ適用済みの可能性が高く、組み込み機器なら脆弱な可能性が高いです
- 管理下の AP 環境からテストスイートを実行します
- 脆弱な亜種をそれぞれ、該当する CVE とともに報告します
# Rogue AP that drives the test
sudo hostapd-mana /tmp/krack_test_ap.conf
# Force client to associate (deauth from real AP, or social-engineer)
sudo aireplay-ng --deauth 5 -a <real-BSSID> -c <client-MAC> wlan0mon
# Run test once associated
sudo ./krack-test-client.py --interface wlan0
検知
- WIPS は、攻撃者の AP へのデオーセンティケーション起因のローミングを検知する場合があります
- テストスクリプトは特徴的なフレームパターンを生成します。最新の WIPS は Vanhoef のツールを認識します
- プロトコルレベルでは、攻撃の成功は実質的に検知できません
報告
脆弱な CVE ごとに、次の内容を記載します。
- クライアントのモデルとファームウェアのバージョン(具体的に記載)
- テストした亜種と結果(脆弱/パッチ適用済み/一部対策済み)
- エンゲージメントの状況における実際の影響(復号のみか、注入も可能か)
- 修正方法:ベンダーのパッチ URL、緩和策(WPA3 と PMF により大部分を防止できます)
主な参考資料
- KRACK:krackattacks.com(Vanhoef)
- FragAttacks:fragattacks.com(Vanhoef)
- 原著論文:USENIX Security 2017(KRACK)、USENIX Security 2021(FragAttacks)
- 組み込み機器ベンダーのパッチ適用状況を追跡する CISA の勧告
- ソース:https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md