23 - Pentesting Telnet

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Informations de base

Telnet est un protocole réseau qui offre aux utilisateurs un moyen non sécurisé d’accéder à un ordinateur via un réseau.

Port par défaut : 23

23/tcp open  telnet

Enumeration

nc -vn <IP> 23

Toute l’énumération intéressante peut être effectuée avec nmap :

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

Le script telnet-ntlm-info.nse obtiendra des informations NTLM (versions de Windows).

From the telnet RFC: Dans le protocole TELNET, il existe diverses “options” qui peuvent être acceptées et utilisées avec la structure “DO, DON’T, WILL, WON’T” pour permettre au client et au serveur de se mettre d’accord sur un ensemble de conventions plus élaboré (ou simplement différent) pour leur connexion TELNET. De telles options peuvent inclure le changement du jeu de caractères, du mode echo, etc.

Je sais qu’il est possible d’énumérer ces options mais je ne sais pas comment, donc dites-moi si vous savez comment.

Énumérer les options / fonctionnalités Telnet

Telnet utilise des négociations IAC + DO/DONT/WILL/WONT pour activer des options. Vous pouvez observer les options supportées en capturant la négociation initiale et en sondant des fonctionnalités spécifiques.

Nmap option/feature probes

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

Le script telnet-encryption vérifie si l’option ENCRYPT est prise en charge ; certaines implémentations ont historiquement mal géré cette option et étaient vulnérables, mais le script vérifie seulement la prise en charge. telnet-ntlm-info divulgue des métadonnées NTLM (NetBIOS/DNS/OS build) lorsque Microsoft Telnet NTLM est activé. telnet-brute est un auditeur NSE de brute-force pour Telnet.

Brute force

Fichier de configuration

/etc/inetd.conf
/etc/xinetd.d/telnet
/etc/xinetd.d/stelnet

HackTricks Commandes automatiques

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'

Vulnérabilités récentes (2022-2026)

  • CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860) : une validation d’entrée incorrecte dans le service Telnet permet à des attaquants distants de se connecter en utilisant des hard-coded credentials et d’injecter des OS commands ; corrigé par le firmware 1.04B05 ou ultérieur.
  • CVE-2023-40478 – NETGEAR RAX30 : Stack-based buffer overflow dans le Telnet CLI passwd command permet l’exécution de code network-adjacent en tant que root ; une authentification est requise mais peut être contournée.
  • CVE-2022-39028 – GNU inetutils telnetd : une séquence de deux octets (0xff 0xf7 / 0xff 0xf8) peut déclencher un NULL-pointer dereference dans telnetd, et des plantages répétés peuvent amener inetd à désactiver le service (DoS).

Gardez ces CVE à l’esprit lors du triage des vulnérabilités — si la cible exécute un firmware non corrigé ou un inetutils Telnet daemon legacy, vous pouvez avoir un chemin direct vers une exécution de code ou un DoS disruptif.

CVE-2026-24061 — GNU Inetutils telnetd auth bypass (Critical)

Résumé : telnetd dans GNU Inetutils jusqu’à 2.7 permet un contournement d’authentification à distance via une valeur de la variable d’environnement USER égale à -f root, entraînant un accès root sans authentification.
Cause racine : argument injection (CWE-88) parce que telnetd transmet la variable d’environnement USER fournie par le client à login sans la sanitiser.
Périmètre : GNU Inetutils telnetd versions 1.9.3–2.7 sont affectées (publié 21 janvier 2026).

Mitigations

  • Appliquez les correctifs / mettez à jour les paquets affectés immédiatement (par ex., les correctifs Debian sont dans 2:2.4-2+deb12u2, 2:2.6-3+deb13u1, et 2:2.7-2).
  • Désactiver Telnet ou restreindre l’accès aux réseaux de gestion de confiance pendant le déploiement des correctifs.

Sniffing Credentials & Man-in-the-Middle

Telnet transmet tout, y compris les credentials, en clear-text. Deux façons rapides de les capturer :

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

Pour un MITM actif, combinez ARP spoofing (par exemple arpspoof/ettercap) avec les mêmes filtres de sniffing pour collecter des mots de passe sur des réseaux commutés.

Brute-force automatisé / 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

Most IoT botnets (Mirai variants) still scan port 23 with small default-credential dictionaries—mirroring that logic can quickly identify weak devices.

Exploitation & Post-Exploitation

Metasploit has several useful modules:

  • auxiliary/scanner/telnet/telnet_version – énumération de bannières et d’options.
  • auxiliary/scanner/telnet/brute_telnet – bruteforce multithread.
  • auxiliary/scanner/telnet/telnet_encrypt_overflow – RCE contre Telnet vulnérable sur Solaris 9/10 (gestion de l’option ENCRYPT).
  • exploit/linux/mips/netgear_telnetenable – active le service telnet avec un paquet crafté sur de nombreux routeurs NETGEAR.

Après obtention d’un shell, souvenez-vous que les TTYs sont généralement peu sophistiqués ; améliorez-le avec python -c 'import pty;pty.spawn("/bin/bash")' ou utilisez les HackTricks TTY tricks.

Hardening & Detection (Blue team corner)

  1. Préférez SSH et désactivez complètement le service Telnet.
  2. Si Telnet est requis, liez-le uniquement aux management VLANs, appliquez des ACLs et encapsulez le démon avec des TCP wrappers (/etc/hosts.allow).
  3. Remplacez les implémentations legacy de telnetd par ssl-telnet ou telnetd-ssl pour ajouter du chiffrement de transport, mais cela protège seulement les données en transit — le guessing de mots de passe reste trivial.
  4. Surveillez le trafic sortant vers le port 23 ; les compromissions lancent souvent des reverse shells via Telnet pour contourner des filtres egress HTTP stricts.

References

  • D-Link Advisory – CVE-2024-45698 Critical Telnet RCE.
  • NVD – CVE-2022-39028 inetutils telnetd DoS.
  • NVD – CVE-2026-24061.
  • Canadian Centre for Cyber Security Alert AL26-002 (CVE-2026-24061).
  • Debian Security Tracker – CVE-2026-24061 fixed versions.

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks