一个用于检测 telnetd 服务器是否容易受到通过 NEW-ENVIRON telnet 选项进行环境变量注入攻击的 Python 安全测试工具。
该脚本用于测试 telnetd 服务器是否存在 CVE-2026-24061 漏洞,该漏洞允许攻击者通过 NEW-ENVIRON telnet 选项注入环境变量。如果服务器未正确处理这些环境变量,则可能容易受到命令注入或身份验证绕过攻击。
该脚本提供详细、彩色编码的输出,包含逐步进度、全面的错误处理以及最终摘要,其中包括测试结果、风险评估和影响分析。
CVE-2026-24061 是 telnetd 服务器中的一个安全漏洞,该漏洞未正确处理通过 NEW-ENVIRON telnet 选项(RFC 1572)发送的环境变量。
该漏洞发生在 telnetd 服务器出现以下情况时:
NEW-ENVIRON 选项(RFC 1572)允许 telnet 客户端向服务器发送环境变量。易受攻击的服务器可能会在未进行清理的情况下接受并处理这些变量,从而可能允许攻击者注入恶意值,导致命令执行或身份验证绕过。
无需安装。该脚本是独立的,仅使用 Python 标准库模块。
Linux(Ubuntu/Debian):
sudo apt-get update
sudo apt-get install python3
macOS(使用 Homebrew):
# 如果尚未安装 Homebrew,请先安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Python 3
brew install python3
# 验证安装
python3 --version
Windows:
python --version
python --version
Linux/macOS:
./telnetd_CVE‑2026‑24061_test.py <host> [port]
Windows(命令提示符):
python telnetd_CVE‑2026‑24061_test.py <host> [port]
Windows(PowerShell):
python telnetd_CVE‑2026‑24061_test.py <host> [port]
Linux/macOS:
# 测试默认 telnet 端口(23)
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# 测试自定义端口
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
# 使脚本可执行(如果需要)
chmod +x telnetd_CVE‑2026‑24061_test.py
# 或直接使用 python3 运行
python3 telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
Windows(命令提示符):
REM 测试默认 telnet 端口(23)
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134
REM 测试自定义端口
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
Windows(PowerShell):
# 测试默认 telnet 端口(23)
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# 测试自定义端口
python telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
macOS(Homebrew Python):
# 如果使用 Homebrew 安装的 Python,请显式使用 python3
python3 telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# 或使其可执行并直接运行
chmod +x telnetd_CVE‑2026‑24061_test.py
./telnetd_CVE‑2026‑24061_test.py 10.0.2.134 2323
NO_COLOR 环境变量时,颜色会自动禁用该脚本提供四种可能的结果:
[-] NEW-ENVIRON not accepted
[RESULT] NOT IMPACTED
含义:服务器不支持或不接受 NEW-ENVIRON 选项。该服务器不易受到此特定攻击向量的影响。
摘要信息:
所需操作:
[!] ENV accepted by server
[RESULT] LIKELY IMPACTED (CVE-2026-24061)
含义:服务器接受了 NEW-ENVIRON 选项,并且似乎已处理注入的环境变量。该服务器可能容易受到 CVE-2026-24061 的攻击。
摘要信息:
所需操作:
[+] No response to ENV injection
[RESULT] INCONCLUSIVE
含义:服务器接受了 NEW-ENVIRON,但未提供明确的响应。建议进行手动验证。
摘要信息:
所需操作:
[RESULT] TEST FAILED - Communication Error
含义:由于通信错误,测试无法完成。
摘要信息:
所需操作:
IAC DO NEW_ENVIRON 以请求 NEW-ENVIRON 选项IAC WILL NEW_ENVIRON)USER=-f root 环境变量-f 标志是一种常见的登录绕过技术该脚本使用标准的 telnet 协议字节值:
IAC(255):解释为命令DO(253):请求启用选项WILL(251):同意启用选项SB(250):子协商开始SE(240):子协商结束NEW_ENVIRON(39):NEW-ENVIRON 选项编号(RFC 1572)注入负载遵循 RFC 1572 格式:
IAC SB NEW_ENVIRON IS VAR USER <0x01>-f root IAC SE
其中:
IAC SB:开始子协商NEW_ENVIRON:选项标识符IS:信息子协商VAR:变量类型指示符USER:环境变量名称0x01:VALUE 字节-f root:注入的值IAC SE:结束子协商该脚本包含全面的错误处理,涵盖:
所有错误均以清晰、彩色编码、用户友好的消息报告,包括:
⚠️ 重要:此脚本仅用于授权的安全测试。
如果发现服务器存在漏洞:
立即行动:
配置更改:
长期解决方案:
该脚本自动检测终端颜色支持,并使用 ANSI 颜色以提高可读性:
NO_COLOR=1 环境变量FORCE_COLOR=1 环境变量示例:
# 禁用颜色
NO_COLOR=1 ./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
# 强制启用颜色(对某些终端有用)
FORCE_COLOR=1 ./telnetd_CVE‑2026‑24061_test.py 10.0.2.134
此脚本按原样提供,用于安全测试目的。使用风险自负。
无保证
本软件按"原样"提供,不附带任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是合同诉讼、侵权行为还是其他行为,均与本软件或本软件的使用或其他交易有关。
责任限制
本软件的作者、贡献者和分发者不对任何直接、间接、偶然、特殊、惩戒性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论其原因如何,也不论基于何种责任理论,无论是合同、严格责任还是侵权行为(包括疏忽或其他),即使已被告知此类损害的可能性。
使用风险自负
欢迎改进和错误报告。请确保任何修改都保持脚本的安全测试目的和道德使用准则。