tiborscholtz/CVE-2026-24061
GitHub: tiborscholtz/CVE-2026-24061
一个用于复现和演示 CVE-2026-24061 漏洞的 Docker 实验环境,通过 Telnet NEW-ENVIRON 选项实现自动用户名注入和身份验证绕过。
Stars: 0 | Forks: 0
# Docker Telnet 自动登录实验环境



一个轻量级的 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协议, 免杀, 利用代码, 协议协商, 安全实验, 安全防御评估, 无后门, 暴力破解, 欺骗防御, 漏洞复现, 版权保护, 环境变量注入, 用户名注入, 网络安全, 自动化登录, 认证绕过, 请求拦截, 隐私保护