
Автоматизированный инструмент для деаутентификации Wi-Fi, который непрерывно сканирует клиентов на целевом SSID и отключает неавторизованные устройства. Поддерживает белый список, обработку mesh/множественных точек доступа, обнаружение PMF и экспериментальный обход WPA2 PMF через извлечение EAPOL.
Направьте его на SSID, и он автоматически обнаружит всех подключенных клиентов и вышвырнет их — включая тех, кто пытается переподключиться — без необходимости ручного нацеливания.
Инструменты вроде aireplay-ng заставляют вас указывать BSSID и MAC клиента. Вам нужно сначала знать, кто находится в сети, а если кто-то переподключается, вы должны отследить их сами и запустить повторно. KTO делает всё это автоматически в цикле: непрерывное сканирование → живой список клиентов → автоматический деаут → повтор. Любой, кто переподключается, будет пойман при следующем проходе.
Только авторизованное использование. Запускайте это только против сетей, которыми вы владеете или на тестирование которых у вас есть явное письменное разрешение. Несанкционированная деаутентификация незаконна в большинстве юрисдикций.
--live-table показывает обновляемую таблицу клиентов вместо прокручиваемого лога, удобно для демонстраций--log FILE сохраняет каждое вышвыривание с временной меткой, дополняет между сессиями--scan-only обнаруживает и записывает клиентов без отправки кадров# 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 <интерфейс> -t <SSID> [параметры]
Интерфейс должен находиться в режиме монитора, или передайте --auto-monitor, чтобы KTO сделал это сам.
# базовый
sudo python3 kto.py -i wlan0mon -t "CorpNet"
# пусть KTO сам управляет режимом монитора
sudo python3 kto.py -i wlan0 -t "CorpNet" --auto-monitor
# агрессивный режим — без окна для переподключения
sudo python3 kto.py -i wlan0mon -t "CorpNet" --aggressive
# исключить ваше устройство
sudo python3 kto.py -i wlan0mon -t "CorpNet" -w AA:BB:CC:DD:EE:FF
# только пассивное обнаружение, без деаута
sudo python3 kto.py -i wlan0mon -t "CorpNet" --scan-only
# mesh или мульти-AP сеть
sudo python3 kto.py -i wlan0mon -t "CorpNet" --auto-bssid
# сохранить журнал и показать живую таблицу
sudo python3 kto.py -i wlan0mon -t "CorpNet" --log session.txt --live-table
# более мощный залп с aireplay-ng
sudo python3 kto.py -i wlan0mon -t "CorpNet" -n 10 --aireplay --broadcast
# отключить обход PMF (вернуться к стандартному деауту на WPA2+PMF)
sudo python3 kto.py -i wlan0mon -t "CorpNet" --no-bypass
# мой телефон
AA:BB:CC:DD:EE:FF
# ноутбук
11:22:33:44:55:66
Начиная с v2.1.6, KTO включает экспериментальную функцию PMF для сетей WPA2-PSK с включёнными защищёнными управляющими кадрами (PMF). Когда в сети WPA2 обнаруживается PMF, KTO автоматически пытается выполнить извлечение EAPOL с неверным паролем:
Этот обход НЕ требует реального пароля сети — нужен только SSID.
Важные ограничения:
Если вы хотите полностью пропустить обход и просто отправлять стандартные кадры деаута (принимая, что клиенты с PMF их отбросят), используйте флаг --no-bypass.
Если на целевой точке доступа включены защищённые управляющие кадры, KTO предупредит об этом при запуске. Клиенты с поддержкой 802.11w будут молча отбрасывать незащищённые кадры деаута, поэтому эффективность зависит от того, какие устройства подключены.
Однако в агрессивном режиме с достаточно большим залпом деаута было замечено, что KTO всё же отключает защищённые PMF клиенты в некоторых сетях — даже без обхода. Просто огромный объём кадров, по-видимому, перегружает некоторые реализации. Так что хотя PMF является критической защитой, она не пуленепробиваема в каждой конфигурации.
Ctrl+C чисто останавливает всё, восстанавливает интерфейс в управляемый режим, если KTO создал интерфейс монитора, и выводит сводку сессии с количеством залпов на каждого клиента.
Лицензия MIT — см. LICENSE
| Флаг | По умолчанию | Описание |
|---|
-i, --interface | обязательно | Беспроводной интерфейс (напр. wlan0mon) |
-t, --target | обязательно | Имя целевого SSID |
-w, --whitelist | --- | MAC-адреса через запятую для исключения |
--whitelist-file FILE | --- | Файл с MAC-адресами для исключения, по одному на строку (# = комментарий) |
-c, --channel | авто | Зафиксироваться на конкретном канале |
-n, --count | 5 | Количество кадров деаута за залп на направление |
-s, --sleep | 5.0 | Секунды между проходами |
--scan-duration | 8.0 | Секунды, в течение которых airodump-ng слушает за проход |
--delay | 0.1 | Задержка на клиента в агрессивном цикле |
--broadcast | выкл | Также деаут на ff:ff:ff:ff:ff:ff |
--aireplay | выкл | Использовать aireplay-ng вместо Scapy |
--aggressive | выкл | Параллельные потоки сканирования и деаута |
--scan-only | выкл | Пассивный режим, кадры не отправляются |
--auto-monitor | выкл | Автоматически включать режим монитора через airmon-ng |
--auto-bssid | выкл | Автоматически выбирать сильнейший BSSID для mesh / мульти-AP SSID |
--reason | 7 | Код причины 802.11 (1=неуказано, 4=неактивность, 7=кадр class3) |
--log FILE | --- | Сохранять журнал вышвыриваний с временными метками в файл |
--live-table | выкл | Обновляемая таблица клиентов вместо прокручиваемого вывода |
--no-bypass, -nb | выкл | Отключить экспериментальный обход PMF |