
KTO v2.1.8
Ferramenta automatizada de desautenticação Wi-Fi que escaneia continuamente clientes em um SSID alvo e remove dispositivos não autorizados na lista de permissões. Possui suporte a lista de permissões, manipulação de malha/múltiplos APs, detecção de PMF e bypass experimental de WPA2 PMF via extração de EAPOL.
KTO 🦿 Expulse-os
Aponte para um SSID e ele descobre automaticamente todos os clientes conectados e os expulsa --- inclusive aqueles que tentam reconectar --- sem necessidade de segmentação manual.
Ferramentas como aireplay-ng exigem que você forneça um BSSID e um MAC de cliente. Você precisa saber quem está na rede primeiro, e se alguém reconectar, você precisa pegá-los manualmente e executar novamente. O KTO faz tudo isso automaticamente em um loop: varredura contínua → lista de clientes em tempo real → desautenticação automática → repetir. Qualquer um que reconectar é capturado na próxima varredura.
Uso autorizado apenas. Execute isto apenas contra redes que você possui ou tem permissão explícita por escrito para testar. A desautenticação não autorizada é ilegal na maioria das jurisdições.
Recursos
- Lista negra em tempo real --- a lista de clientes é atualizada a cada varredura, novos participantes são expulsos automaticamente
- Desautenticação automática --- sem segmentação manual, execução totalmente desassistida
- Modo agressivo --- threads de varredura e desautenticação são executadas em paralelo, eliminando a janela de reconexão entre varreduras
- Lista branca --- poupe dispositivos específicos via MACs inline ou um arquivo
- Mesh / multi-AP --- lida com SSIDs que abrangem múltiplos BSSIDs, seleciona automaticamente o mais forte ou permite escolher
- Detecção de PMF --- avisa quando o 802.11w está ativo e quadros desprotegidos serão descartados por clientes corrigidos
- ⚠️ Recurso PMF experimental (apenas WPA2+PMF) --- usa extração EAPOL com senha errada para desarmar o 802.11w sem precisar da senha real da rede. Limitação conhecida – não funciona contra clientes Android 15 (veja notas abaixo)
- Mecanismo duplo de desautenticação --- quadros 802.11 brutos com Scapy (padrão) ou aireplay-ng
- Tabela ao vivo ---
--live-tableexibe uma tabela de clientes atualizada em vez de log rolante, bom para demonstrações - Log de sessão ---
--log ARQUIVOsalva cada expulsão com timestamp, anexa entre sessões - Modo passivo ---
--scan-onlydescobre e registra clientes sem enviar quadros - Modo monitor automático --- ativa e restaura o modo monitor automaticamente via airmon-ng
- Consulta OUI --- mostra Apple / Samsung / etc ao lado de cada MAC
- Auto-atualização --- verifica novos lançamentos na inicialização e notifica se houver um disponível
Requisitos
# Python 3.10+
pip install scapy
# suíte aircrack-ng
sudo apt install aircrack-ng
Deve ser executado como root.
Instalação
git clone https://github.com/Ymsniper/KTO.git
cd KTO
pip install scapy
Nenhuma outra configuração necessária. Script único, sem arquivos de configuração.
Uso
sudo python3 kto.py -i <interface> -t <SSID> [opções]
A interface precisa estar em modo monitor, ou passe --auto-monitor para deixar o KTO lidar com isso.
Argumentos
| Bandeira | Padrão | Descrição |
|---|---|---|
-i, --interface | obrigatório | Interface sem fio (ex.: wlan0mon) |
-t, --target | obrigatório | Nome do SSID alvo |
-w, --whitelist | --- | MACs separados por vírgula para poupar |
--whitelist-file ARQUIVO | --- | Arquivo com MACs para poupar, um por linha (# = comentário) |
-c, --channel | automático | Travar em um canal específico |
-n, --count | 5 | Quadros de desautenticação por rajada por direção |
-s, --sleep | 5.0 | Segundos entre varreduras |
--scan-duration | 8.0 | Segundos que o airodump-ng escuta por varredura |
--delay | 0.1 | Atraso por cliente no loop agressivo |
--broadcast | desligado | Também desautenticar ff:ff:ff:ff:ff:ff |
--aireplay | desligado | Usar aireplay-ng em vez de Scapy |
--aggressive | desligado | Threads paralelas de varredura + desautenticação |
--scan-only | desligado | Modo passivo, nenhum quadro enviado |
--auto-monitor | desligado | Ativar modo monitor automaticamente via airmon-ng |
--auto-bssid | desligado | Selecionar automaticamente o BSSID mais forte para SSIDs mesh / multi-AP |
--reason | 7 | Código de motivo 802.11 (1=não especificado, 4=inatividade, 7=quadro classe3) |
--log ARQUIVO | --- | Salvar log de expulsões com timestamp em um arquivo |
--live-table | desligado | Tabela de clientes atualizada em vez de saída rolante |
--no-bypass, -nb | desligado | Desabilitar bypass PMF experimental |
Exemplos
# básico
sudo python3 kto.py -i wlan0mon -t "CorpNet"
# deixar KTO lidar com o modo monitor
sudo python3 kto.py -i wlan0 -t "CorpNet" --auto-monitor
# modo agressivo — sem janela de reconexão
sudo python3 kto.py -i wlan0mon -t "CorpNet" --aggressive
# poupar seu próprio dispositivo
sudo python3 kto.py -i wlan0mon -t "CorpNet" -w AA:BB:CC:DD:EE:FF
# descoberta passiva apenas, sem desautenticação
sudo python3 kto.py -i wlan0mon -t "CorpNet" --scan-only
# rede mesh ou multi-AP
sudo python3 kto.py -i wlan0mon -t "CorpNet" --auto-bssid
# salvar um log e mostrar tabela ao vivo
sudo python3 kto.py -i wlan0mon -t "CorpNet" --log session.txt --live-table
# rajada mais pesada com aireplay-ng
sudo python3 kto.py -i wlan0mon -t "CorpNet" -n 10 --aireplay --broadcast
# desabilitar bypass PMF (voltar à desautenticação padrão em WPA2+PMF)
sudo python3 kto.py -i wlan0mon -t "CorpNet" --no-bypass
Formato do arquivo de lista branca
# meu telefone
AA:BB:CC:DD:EE:FF
# laptop
11:22:33:44:55:66
⚠️ Recurso PMF experimental (apenas WPA2+PMF)
A partir da v2.1.6, o KTO inclui um recurso PMF experimental para redes WPA2-PSK com Protected Management Frames (PMF) ativado. Quando PMF é detectado em uma rede WPA2, o KTO tenta automaticamente uma extração EAPOL com senha errada:
- Ele se conecta ao AP usando um PSK aleatório (nenhuma senha real necessária).
- O AP envia EAPOL Msg1 (texto simples, antes da falha do handshake), revelando Key Info e contador de repetição.
- Esses parâmetros são usados para criar quadros EAPOL Msg1 falsos que disparam uma desconexão em muitos clientes, ignorando completamente o PMF.
Este bypass NÃO requer a senha real da rede --- ele precisa apenas do SSID.
Limitações importantes:
- Não funciona em redes WPA3 (SAE) --- o bypass é estritamente para WPA2‑PSK + PMF.
- Não funciona contra clientes Android 15 --- o Android 15 implementa validação PMF mais rigorosa que derrota o ataque de EAPOL Msg1 falso. Outros clientes corrigidos também podem resistir.
Se quiser pular completamente o bypass e apenas disparar quadros de desautenticação padrão (aceitando que clientes com PMF os descartarão), use a bandeira --no-bypass.
Notas sobre PMF / 802.11w
Se o AP alvo tiver Protected Management Frames ativado, o KTO avisará na inicialização. Clientes com suporte a 802.11w descartarão silenciosamente quadros de desautenticação desprotegidos, então a eficácia depende de quais dispositivos estão conectados.
No entanto, no modo agressivo com uma rajada de desautenticação suficientemente alta, observou-se que o KTO ainda desconecta clientes protegidos por PMF em algumas redes --- mesmo sem um bypass. O grande volume de quadros parece sobrecarregar certas implementações. Portanto, embora o PMF seja uma defesa crítica, não é à prova de falhas em todas as configurações.
Parando
Ctrl+C para tudo de forma limpa, restaura a interface para o modo gerenciado se o KTO criou a interface monitor, e imprime um resumo da sessão com contagens de rajada por cliente.
Licença
Licença MIT --- veja LICENSE