返回更新列表
新发布Jul 27, 2026

KTO v2.1.8

自动Wi-Fi去认证工具,持续扫描目标SSID上的客户端并踢出非白名单设备。功能包括白名单支持、网状/多AP处理、PMF检测,以及通过EAPOL提取的实验性WPA2 PMF绕过。

分享

KTO 🦿 踢他们出去

将其指向一个 SSID,它便会自动发现所有已连接的客户端并将其踢出——包括试图重新连接的客户端——无需任何手动目标选取。

aireplay-ng 这样的工具需要你提供 BSSID 和客户端 MAC。你必须先知道网络上有哪些设备,而且如果有人重新连接,你必须手动捕获并再次运行它。KTO 在一个循环中自动完成所有这些:持续扫描 → 实时客户端列表 → 自动解除认证 → 重复。任何重新连接的客户端都会在下一次扫描中被捕获。

仅限授权使用。 只对你拥有或获得明确书面许可测试的网络运行此工具。未经授权的解除认证在大多数司法管辖区是非法的。


特性

  • 实时黑名单 —— 每次扫描更新客户端列表,新加入者自动被踢
  • 自动解除认证 —— 无需手动目标选取,完全无人值守运行
  • 激进模式 —— 扫描和解除认证线程并行运行,扫描之间没有重新连接窗口
  • 白名单 —— 通过内联 MAC 或文件免除特定设备
  • 网状/多 AP —— 处理跨多个 BSSID 的 SSID,自动选择最强信号或让你自行选择
  • PMF 检测 —— 当 802.11w 启用且未受保护的帧将被已打补丁的客户端丢弃时发出警告
  • ⚠️ 实验性 PMF 绕过(仅限 WPA2+PMF) —— 使用错误密码的 EAPOL 提取来解除 802.11w 的武装,无需真正网络密码。已知限制——对 Android 15 客户端无效(见下文说明)
  • 双解除认证引擎 —— 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 套件
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> [选项]

接口需处于监视模式,或使用 --auto-monitor 让 KTO 自行处理。

参数

参数

标志默认值描述
-i, --interface必需无线接口(例如 wlan0mon
-t, --target必需目标 SSID 名称
-w, --whitelist---要免除的 MAC 地址,逗号分隔
--whitelist-file FILE---要免除的 MAC 地址文件,每行一个(# 表示注释)
-c, --channel自动锁定到特定信道
-n, --count5每次突发中每个方向的解除认证帧数
-s, --sleep5.0每次扫描之间的等待秒数
--scan-duration8.0airodump-ng 每次扫描的监听秒数
--delay0.1激进循环中每个客户端的延迟
--broadcast关闭同时向 ff:ff:ff:ff:ff:ff 发送解除认证
--aireplay关闭使用 aireplay-ng 替代 Scapy
--aggressive关闭并行运行扫描和解除认证线程
--scan-only关闭被动模式,不发送任何帧
--auto-monitor关闭通过 airmon-ng 自动启用监视模式
--auto-bssid关闭针对网状/多 AP SSID 自动选择最强 BSSID
--reason7802.11 原因码(1=未指定,4=不活动,7=class3帧)
--log FILE---将带时间戳的踢出日志保存到文件
--live-table关闭显示实时刷新的客户端表格,而非滚动输出
--no-bypass, -nb关闭禁用实验性 PMF 绕过

示例

# 基本用法
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

# 网状或多 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

⚠️ 实验性 PMF 功能(仅限 WPA2+PMF)

从 v2.1.6 开始,KTO 包含一项针对启用了受保护管理帧(PMF)WPA2-PSK 网络的实验性 PMF 功能。当检测到 WPA2 网络上的 PMF 时,KTO 会自动尝试错误密码的 EAPOL 提取

  • 它使用随机 PSK 连接到 AP(无需真实密码)。
  • AP 在握手失败前发送 EAPOL Msg1(明文),揭示密钥信息和重放计数器。
  • 这些参数用于制作虚假的 EAPOL Msg1 帧,在许多客户端中触发断开连接,从而完全绕过 PMF。

此绕过不需要实际网络密码 —— 仅需要 SSID。

重要限制:

  • 不适用于 WPA3(SAE)网络 —— 此绕过严格针对 WPA2‑PSK + PMF。
  • 对 Android 15 客户端无效 —— Android 15 实施了更严格的 PMF 验证,能抵御虚假 EAPOL Msg1 攻击。其他已打补丁的客户端也可能抵抗此攻击。

如果你想完全跳过绕过,仅发送标准解除认证帧(接受具备 PMF 能力的客户端会丢弃这些帧),请使用 --no-bypass 标志。


关于 PMF / 802.11w 的说明

如果目标 AP 启用了受保护管理帧,KTO 会在启动时发出警告。支持 802.11w 的客户端将静默丢弃未受保护的解除认证帧,因此有效性取决于连接的设备。

然而,在激进模式下且解除认证突发足够高时,已观察到 KTO 仍能在某些网络上断开受 PMF 保护的客户端——即使没有绕过。帧的高频率似乎压倒了某些实现。因此,尽管 PMF 是一项关键防御措施,但在某些设置中并非万无一失。


停止

Ctrl+C 可干净地停止所有操作,如果 KTO 创建了监视接口则将其恢复为管理模式,并打印包含每个客户端突发次数的会话摘要。


许可证

MIT 许可证 —— 参见 LICENSE

分类