
KTO v2.1.8
自動化されたWi-Fi deauthenticationツールで、対象SSID上のクライアントを継続的にスキャンし、ホワイトリストに登録されていないデバイスを強制的に切断します。ホワイトリスト対応、メッシュ/マルチAP処理、PMF検出、およびEAPOL抽出による実験的なWPA2 PMFバイパスを備えています。
KTO 🦿 彼らを蹴り出せ
SSID を指定するだけで、接続中のすべてのクライアントを自動的に検出し、再接続を試みるクライアントも含めて蹴り出します。手動でのターゲット指定は一切不要です。
aireplay-ng のようなツールでは、BSSID とクライアント MAC を自分で指定する必要があります。まずネットワーク上に誰がいるかを把握しなければならず、誰かが再接続した場合は自分で見つけて再度実行する必要があります。KTO はこれをすべて自動でループ処理します。継続スキャン → ライブクライアントリスト → 自動 deauth → 繰り返し。再接続したクライアントは次のスイープで自動的に捕捉されます。
正規の用途のみ。 所有しているネットワーク、または明示的な書面による許可を得たネットワークに対してのみ実行してください。無許可の認証解除(deauthentication)は、ほとんどの地域で違法です。
機能
- ライブブラックリスト --- スイープごとにクライアントリストを更新し、新しく参加した クライアントも自動的に蹴り出します
- 自動 deauth --- 手動でのターゲット指定は不要、完全に無人で動作
- アグレッシブモード --- スキャンと deauth のスレッドを並列実行するので、 スイープ間に再接続の隙がありません
- ホワイトリスト --- インラインの MAC アドレスまたはファイルで特定のデバイスを除外
- メッシュ / マルチ AP --- 複数の BSSID にまたがる SSID を処理し、 最強の BSSID を自動選択、または手動で選択可能
- PMF 検出 --- 802.11w が有効な場合に警告し、 パッチ適用済みクライアントでは保護されていないフレームが破棄されることを通知
- ⚠️ 実験的 PMF バイパス(WPA2+PMF のみ) --- 実際のネットワークパスワードを必要とせず、誤ったパスワードの EAPOL 抽出を使って 802.11w を無効化します。既知の制限: Android 15 クライアントには 効果なし(下記の注を参照)
- デュアル deauth エンジン --- Scapy による生の 802.11 フレーム(デフォルト)または aireplay-ng
- ライブテーブル ---
--live-tableはスクロールするログの代わりに更新される クライアントテーブルを表示。デモに最適 - セッションログ ---
--log FILEはすべてのキックをタイムスタンプ付きで保存し、 セッションをまたいで追記します - パッシブモード ---
--scan-onlyはフレームを送信せずにクライアントを 検出・記録します - 自動モニターモード --- airmon-ng 経由でモニターモードを 自動的に有効化・復元します
- OUI ルックアップ --- 各 MAC の横に Apple / Samsung などを表示
- 自動アップデート --- 起動時に新しいリリースを確認し、 あれば通知します
要件
# Python 3.10+
pip install scapy
# aircrack-ng suite
sudo apt install aircrack-ng
root で実行する必要があります。
インストール
git clone https://github.com/Ymsniper/KTO.git
cd KTO
pip install scapy
他のセットアップは不要です。単一のスクリプトで、設定ファイルもありません。
使い方
sudo python3 kto.py -i <interface> -t <SSID> [options]
インターフェースはモニターモードである必要があります。または --auto-monitor を
渡すと KTO が処理します。
引数
引数
| フラグ | デフォルト | 説明 |
|---|---|---|
-i, --interface | 必須 | ワイヤレスインターフェース(例: wlan0mon) |
-t, --target | 必須 | 対象の SSID 名 |
-w, --whitelist | --- | 除外する MAC のカンマ区切りリスト |
--whitelist-file FILE | --- | 除外する MAC を 1 行に 1 つずつ記述したファイル(# はコメント) |
-c, --channel | 自動 | 特定のチャンネルに固定 |
-n, --count | 5 | 1 バーストあたりの方向ごとの deauth フレーム数 |
-s, --sleep | 5.0 | スイープ間の待機秒数 |
--scan-duration | 8.0 | airodump-ng がスイープごとに待機する秒数 |
--delay | 0.1 | アグレッシブループでのクライアントごとの遅延 |
--broadcast | オフ | ff:ff:ff:ff:ff:ff への deauth も実行 |
--aireplay | オフ | Scapy の代わりに aireplay-ng を使用 |
--aggressive | オフ | スキャンと deauth のスレッドを並列実行 |
--scan-only | オフ | パッシブモード。フレームを送信しない |
--auto-monitor | オフ | airmon-ng 経由でモニターモードを自動有効化 |
--auto-bssid | オフ | メッシュ / マルチ AP の SSID に対して最強の BSSID を自動選択 |
--reason | 7 | 802.11 理由コード(1=不特定、4=非アクティブ、7=class3 フレーム) |
--log FILE | --- | タイムスタンプ付きキックログをファイルに保存 |
--live-table | オフ | スクロールする出力の代わりに更新されるクライアントテーブルを表示 |
--no-bypass, -nb | オフ | 実験的 PMF バイパスを無効化 |
使用例
# basic
sudo python3 kto.py -i wlan0mon -t "CorpNet"
# let KTO handle monitor mode
sudo python3 kto.py -i wlan0 -t "CorpNet" --auto-monitor
# aggressive mode — no reconnect window
sudo python3 kto.py -i wlan0mon -t "CorpNet" --aggressive
# spare your own device
sudo python3 kto.py -i wlan0mon -t "CorpNet" -w AA:BB:CC:DD:EE:FF
# passive discovery only, no deauth
sudo python3 kto.py -i wlan0mon -t "CorpNet" --scan-only
# mesh or multi-AP network
sudo python3 kto.py -i wlan0mon -t "CorpNet" --auto-bssid
# save a log and show live table
sudo python3 kto.py -i wlan0mon -t "CorpNet" --log session.txt --live-table
# heavier burst with aireplay-ng
sudo python3 kto.py -i wlan0mon -t "CorpNet" -n 10 --aireplay --broadcast
# disable PMF bypass (fall back to standard deauth on WPA2+PMF)
sudo python3 kto.py -i wlan0mon -t "CorpNet" --no-bypass
ホワイトリストファイル形式
# my phone
AA:BB:CC:DD:EE:FF
# laptop
11:22:33:44:55:66
⚠️ 実験的 PMF 機能(WPA2+PMF のみ)
v2.1.6 以降、KTO には Protected Management Frames(PMF)が有効な WPA2-PSK ネットワーク向けの実験的 PMF 機能が含まれています。WPA2 ネットワークで PMF を検出すると、KTO は自動的に 誤ったパスワードによる EAPOL 抽出 を試みます。
- ランダムな PSK を使用して AP に接続します(実際のパスワードは不要)。
- AP は、ハンドシェイクが失敗する前に EAPOL Msg1(平文)を送信し、 Key Info とリプレイカウンターを明らかにします。
- これらのパラメータを使用して、多くのクライアントで切断を引き起こす偽の EAPOL Msg1 フレームを 作成し、PMF を完全にバイパスします。
このバイパスには実際のネットワークパスワードは不要です --- SSID だけで機能します。
重要な制限:
- WPA3(SAE)ネットワークでは動作しません --- このバイパスは WPA2-PSK + PMF 専用です。
- Android 15 クライアントには効果がありません --- Android 15 はより厳格な PMF 検証を実装しており、偽の EAPOL Msg1 攻撃を無効化します。他のパッチ適用済みクライアントでも耐性を持つ場合があります。
バイパスを完全にスキップして、標準の deauth フレームをただ送り続けたい場合(PMF 対応クライアントがそれを破棄することを許容する場合)は、--no-bypass フラグを使用してください。
PMF / 802.11w に関する注意
対象の AP で Protected Management Frames が有効な場合、KTO は起動時に警告します。802.11w 対応クライアントは保護されていない deauth フレームを黙って破棄するため、効果は接続されているデバイスによって異なります。
ただし、十分に多い deauth バーストを伴うアグレッシブモードでは、バイパスなしでも一部のネットワークで PMF 保護されたクライアントを切断できることが確認されています。フレームの圧倒的な量が特定の実装を圧倒するようです。PMF は重要な防御策ですが、すべての環境で完璧というわけではありません。
停止
Ctrl+C ですべてを安全に停止し、KTO がモニターインターフェースを作成した場合はインターフェースをマネージドモードに戻し、クライアントごとのバースト回数を含むセッションサマリーを表示します。
ライセンス
MIT ライセンス --- LICENSE を参照