23 - Pentesting Telnet

Reading time: 8 minutes

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

基本信息

Telnet 是一种网络协议,允许用户以不安全的方式通过网络访问计算机。

默认端口: 23

23/tcp open  telnet

枚举

横幅抓取

bash
nc -vn <IP> 23

所有有趣的枚举都可以通过 nmap 执行:

bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>

脚本 telnet-ntlm-info.nse 将获取 NTLM 信息(Windows 版本)。

来自 telnet RFC:在 TELNET 协议中有各种 "options",可以使用 "DO, DON'T, WILL, WON'T" 结构进行授权,以便用户和服务器同意使用更复杂(或可能只是不同)的约定集进行 TELNET 连接。这些选项可能包括更改字符集、回显模式等。

我知道可以枚举这些选项,但我不知道怎么做,所以如果你知道怎么做,请告诉我。

暴力破解

配置文件

bash
/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-2025)

  • CVE-2024-45698 – D-Link Wi-Fi 6 路由器 (DIR-X4860): 内置的 Telnet 服务接受硬编码凭据,并未对输入进行清理,允许通过在 23 端口上发送构造的命令以 root 身份进行未经身份验证的远程 RCE。已在固件 ≥ 1.04B05 中修复。
  • CVE-2023-40478 – NETGEAR RAX30: Telnet CLI passwd 命令中的基于栈的缓冲区溢出使得相邻攻击者能够绕过身份验证并以 root 身份执行任意代码。
  • CVE-2022-39028 – GNU inetutils telnetd: 一个两字节序列 (0xff 0xf7 / 0xff 0xf8) 触发 NULL 指针解引用,可能导致 telnetd 崩溃,经过几次崩溃后导致持久的 DoS。

在漏洞分类时请记住这些 CVE——如果目标运行的是未修补的固件或遗留的 inetutils Telnet 守护进程,您可能会有直接的代码执行或破坏性 DoS 的路径。

捕获凭据与中间人攻击

Telnet 以 明文 传输所有内容,包括凭据。捕获它们的两种快速方法:

bash
# 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欺骗(例如arpspoof/ettercap)与相同的嗅探过滤器,以在交换网络上收集密码。

自动化暴力破解 / 密码喷洒

bash
# 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

大多数物联网僵尸网络(Mirai 变种)仍然使用小的默认凭证字典扫描 23 端口——镜像该逻辑可以快速识别弱设备。

利用与后利用

Metasploit 有几个有用的模块:

  • auxiliary/scanner/telnet/telnet_version – 横幅和选项枚举。
  • auxiliary/scanner/telnet/brute_telnet – 多线程暴力破解。
  • auxiliary/scanner/telnet/telnet_encrypt_overflow – 针对易受攻击的 Solaris 9/10 Telnet(选项 ENCRYPT 处理)的 RCE。
  • exploit/linux/mips/netgear_telnetenable – 在许多 NETGEAR 路由器上通过构造的数据包启用 telnet 服务。

获得 shell 后,请记住 TTY 通常是简单的;使用 python -c 'import pty;pty.spawn("/bin/bash")' 升级或使用 HackTricks TTY tricks

加固与检测(蓝队角落)

  1. 优先使用 SSH 并完全禁用 Telnet 服务。
  2. 如果需要 Telnet,仅将其绑定到管理 VLAN,强制执行 ACL,并使用 TCP 包装器包装守护进程(/etc/hosts.allow)。
  3. ssl-telnettelnetd-ssl 替换遗留的 telnetd 实现,以添加传输加密,但 这仅保护数据在传输中——密码猜测仍然很简单
  4. 监控到 23 端口的出站流量;妥协通常会通过 Telnet 生成反向 shell,以绕过严格的 HTTP 出口过滤器。

参考

  • D-Link 通告 – CVE-2024-45698 关键 Telnet RCE。
  • NVD – CVE-2022-39028 inetutils telnetd DoS。

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