tiborscholtz/CVE-2026-24061

GitHub: tiborscholtz/CVE-2026-24061

一个用于复现和演示 CVE-2026-24061 漏洞的 Docker 实验环境,通过 Telnet NEW-ENVIRON 选项实现自动用户名注入和身份验证绕过。

Stars: 0 | Forks: 0

# Docker Telnet 自动登录实验环境 ![Docker](https://img.shields.io/badge/docker-required-blue) ![Python](https://img.shields.io/badge/python-3.12-blue) ![License](https://img.shields.io/badge/license-educational-lightgrey) 一个轻量级的 Docker 实验环境,用于实验 **Telnet 协议协商**,这在 [CVE-2026-24061](https://www.cve.org/CVERecord?id=CVE-2026-24061) 漏洞利用中有所解释,其中包含使用 **NEW-ENVIRON** 选项进行的自动用户名注入。 本项目创建了一个隔离的客户端-服务器环境,用于研究 Telnet 如何处理基于环境的身份验证绕过。 ## 功能特性 * 使用 Docker Compose 的隔离双容器实验环境 * 自定义 Python Telnet 客户端 * 自动 USER 环境变量注入 * 基础 Telnet 选项协商处理 * 基于内部 Docker DNS 的服务发现 * 最小化、可复现的设置 ## 架构 ``` +---------+ labnet +---------+ | node1 | ------------------> | node2 | | Client | | Telnet | | Python | | Server | +---------+ +---------+ ``` | 容器 | 角色 | | --------- | ------------------------------------ | | node1 | 带有自动登录脚本的 Python 客户端 | | node2 | Telnet 服务器 (`inetutils-telnetd 2.7`) | 两个服务都运行在一个名为 `labnet` 的私有 Docker bridge 网络内部。 ## 项目结构 ``` . ├── compose.yaml ├── Dockerfile.node1 ├── Dockerfile.node2 └── exploit.py ``` ### 文件详情 #### Dockerfile.node1 此文件负责安装名为 `node1` 的客户端容器。 我选择 `python:3.12-slim` 作为基础镜像,因为本实验的目的是网络通信。我们只安装 telnet 客户端本身,并将 `exploit.py` 复制到容器的根目录。 #### Dockerfile.node2 此文件负责安装名为 `node2` 的服务器容器。 该容器也使用相同的基础镜像。然而,安装过程涉及更多步骤: - 更新后,我们需要安装 `wget`,以获取存在漏洞的 telnetd 版本。 - 下载存在漏洞的版本后,使用 `apt get install -y` 进行安装。 - 附加到 `/etc/inetd.conf` 的行启用了 telnet 服务。 - 最后一条命令将 inetd daemon 设置为容器的启动命令。 #### exploit.py 在文件顶部,我们看到声明了一些常量: ``` IAC = 255 DO = 253 DONT = 254 WILL = 251 WONT = 252 SB = 250 SE = 240 ``` IAC 的值为 255,意味着“解释为命令”(Interpret As Command),因此它标志着 Telnet 控制序列的开始。 你可以在[这里](https://www.ibm.com/docs/en/zos/3.2.0?topic=problems-telnet-commands-options)查看更多选项。 格式通常如下所示: ``` IAC
标签:BOF, CVE-2026-24061, Docker, Docker Compose, inetutils-telnetd, NEW-ENVIRON, PoC, Python, Telnet协议, 免杀, 利用代码, 协议协商, 安全实验, 安全防御评估, 无后门, 暴力破解, 欺骗防御, 漏洞复现, 版权保护, 环境变量注入, 用户名注入, 网络安全, 自动化登录, 认证绕过, 请求拦截, 隐私保护