K3ysTr0K3R/CVE-2026-24061

GitHub: K3ysTr0K3R/CVE-2026-24061

针对 GNU InetUtils telnetd 参数注入身份验证绕过漏洞(CVE-2026-24061)的 Python 概念验证利用工具,通过 ENVIRON 选项注入 `-f root` 实现无需凭据的 root 访问。

Stars: 1 | Forks: 0

## CVE-2026-24061 - GNU InetUtils telnetd 参数注入身份验证绕过 GNU InetUtils 1.9.3 到 2.7 版本中的 telnetd 服务器存在远程身份验证绕过漏洞。telnetd 守护进程在将 USER 环境变量作为命令行参数传递给 `login(1)` 程序之前,未能正确对其进行清理。当 telnet 客户端发送包含命令行标志(例如 `-f root`)的 USER 环境变量时,telnetd 会直接将此未清理的值传递给 login 程序。login 实用程序会将 `-f` 标志解释为绕过身份验证的指令,使攻击者无需提供任何凭据即可获得未经授权的 root 访问权限。 ## 功能 - **完整的 Telnet 协议实现** - 处理 `DO`、`DONT`、`WILL` 和 `WONT` 协商。 - 支持 subnegotiation 解析和 keepalive 机制。 - **自动 Payload 注入** - 构建并发送带有 `USER=-f root` 注入的精心构造的 `ENVIRON` 选项 payload。 - **交互式 Shell** - 提供用于执行命令的双向交互式会话。 - **连接管理** - 实现 socket keepalive、超时处理和优雅的会话清理。 - **详细的调试信息** - 可选的调试输出,用于协议分析和故障排除。 ## 用法 ``` python3 exploit.py -p [options] ``` ### 必选参数 | 参数 | 描述 | |----------|-------------| | `target` | 目标 IP 地址或主机名 | ### 可选参数 | 选项 | 描述 | |--------|-------------| | `-p`, `--port` | 目标端口(默认:`23`) | | `-v`, `--verbose` | 启用详细的调试输出 | | `-t`, `--timeout` | 连接超时时间,以秒为单位(默认:`5`) | | `-k`, `--keepalive` | Keepalive 间隔时间,以秒为单位(默认:`30`) | | `-h`, `--help` | 显示帮助信息 | ## 示例 ### 利用默认的 Telnet 端口 ``` python3 exploit.py 192.168.1.100 ``` ### 利用自定义端口并输出详细日志 ``` python3 exploit.py 192.168.1.100 -p 2323 -v ``` ### 针对不稳定的连接使用延长后的 keepalive 间隔 ``` python3 exploit.py 10.0.0.5 -p 2323 -k 60 -t 10 ``` ## 漏洞利用工作流 1. **建立连接** - 使用适当的 socket 选项和 keepalive 设置发起 TCP 连接。 2. **协议协商** - 处理 Telnet 选项协商(`SGA`、`ECHO` 和 `ENVIRON`)。 3. **Payload 投递** - 发送 `WILL ENVIRON`,随后发送精心构造的 subnegotiation payload。 4. **绕过身份验证** - 将 `-f root` 参数注入到 `login(1)` 中以绕过凭据检查。 5. **交互式会话** - 提供完整的双向 shell 访问权限,支持实时执行命令。 ## 技术细节 该漏洞利用利用了 `ENVIRON` Telnet 选项 (RFC 1572),将命令行参数注入到 `USER` 环境变量中。 当 `telnetd` 将此未清理的值传递给 `login -f root` 时,login 程序会将 `-f` 解释为强制绕过身份验证的标志,从而在无需密码验证的情况下授予 root 访问权限。 ### 协议处理 漏洞利用脚本实现了: - IAC (Interpret As Command) 字节转义 - Subnegotiation 解析与构建 - 选项协商响应(`WILL`、`WONT`、`DO`、`DONT`) - Keepalive `NOP` 命令以保持会话稳定性 ## 示例输出 ``` $ python3 exploit.py 127.0.0.1 -p 2323 [!] Coded By: K3ysTr0K3R [*] Telnet Authentication Bypass [*] Connecting to 127.0.0.1:2323 [+] Connection established [+] Exploit payload sent (19 bytes) # id uid=0(root) gid=0(root) groups=0(root) # whoami root # ``` ## 环境要求 - Python 3.7 或更高版本 - 无外部依赖 - 仅使用 Python 标准库 ## 检测与缓解 系统管理员可以通过监控以下内容来检测漏洞利用尝试: - 执行 `ENVIRON` 选项协商的 Telnet 连接。 - 包含 `-f` 或其他命令行标志的 `USER` 环境变量。 - 系统日志中的身份验证绕过事件。 ### 缓解措施 升级到 GNU InetUtils **2.8** 版本,或者应用官方安全补丁,该补丁会在将环境变量传递给 `login(1)` 之前对其进行清理。 ## 免责声明 此概念验证仅用于安全研究、漏洞验证和授权的测试环境。仅限对您拥有明确许可进行安全评估的系统使用。
标签:PoC, Telnet, 暴力破解, 认证绕过, 逆向工具