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
- 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
ĂnumĂ©ration
Récupération de banniÚres
nc -vn <IP> 23
Toute l'Ă©numĂ©ration intĂ©ressante peut ĂȘtre effectuĂ©e par nmap :
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
/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 plantertelnetd
, 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 :
# 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
# 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)
- Préférez SSH et désactivez complÚtement le service Telnet.
- 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
). - Remplacez les implémentations héritées de
telnetd
parssl-telnet
outelnetd-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. - 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}}