23 - Pentesting Telnet

Reading time: 6 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Informazioni di base

Telnet è un protocollo di rete che offre agli utenti un modo NON sicuro per accedere a un computer tramite una rete.

Porta predefinita: 23

23/tcp open  telnet

Enumerazione

Acquisizione Banner

bash
nc -vn <IP> 23

Tutta l'enumerazione interessante può essere eseguita da nmap:

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

Lo script telnet-ntlm-info.nse otterrà informazioni NTLM (versioni di Windows).

Dalla telnet RFC: Nel protocollo TELNET ci sono varie "opzioni" che saranno sanzionate e possono essere utilizzate con la struttura "DO, DON'T, WILL, WON'T" per consentire a un utente e a un server di concordare l'uso di un insieme di convenzioni più elaborate (o forse semplicemente diverse) per la loro connessione TELNET. Tali opzioni potrebbero includere la modifica del set di caratteri, la modalità di eco, ecc.

So che è possibile enumerare queste opzioni, ma non so come, quindi fammi sapere se sai come.

Brute force

Config file

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

HackTricks Comandi Automatici

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'

Recent Vulnerabilities (2022-2025)

  • CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860): Il servizio Telnet integrato accettava credenziali hard-coded e non riusciva a sanitizzare l'input, consentendo RCE remota non autenticata come root tramite comandi creati su porta 23. Risolto nel firmware ≥ 1.04B05.
  • CVE-2023-40478 – NETGEAR RAX30: Overflow del buffer basato su stack nel comando passwd della CLI Telnet consente a un attaccante adiacente di bypassare l'autenticazione ed eseguire codice arbitrario come root.
  • CVE-2022-39028 – GNU inetutils telnetd: Una sequenza di due byte (0xff 0xf7 / 0xff 0xf8) attiva un dereference di puntatore NULL che può far crashare telnetd, risultando in un DoS persistente dopo diversi crash.

Tieni a mente questi CVE durante la triage delle vulnerabilità—se il target sta eseguendo un firmware non patchato o un daemon Telnet inetutils legacy potresti avere un percorso diretto per l'esecuzione di codice o un DoS dirompente.

Sniffing Credentials & Man-in-the-Middle

Telnet trasmette tutto, comprese le credenziali, in clear-text. Due modi rapidi per catturarle:

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)

Per MITM attivo, combina l'ARP spoofing (ad es. arpspoof/ettercap) con gli stessi filtri di sniffing per raccogliere password su reti switchate.

Forza bruta automatizzata / Spraying di password

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 maggior parte delle botnet IoT (varianti di Mirai) scansiona ancora la porta 23 con piccoli dizionari di credenziali predefinite—rispecchiare quella logica può identificare rapidamente dispositivi deboli.

Sfruttamento & Post-Sfruttamento

Metasploit ha diversi moduli utili:

  • auxiliary/scanner/telnet/telnet_version – enumerazione di banner e opzioni.
  • auxiliary/scanner/telnet/brute_telnet – bruteforce multithreaded.
  • auxiliary/scanner/telnet/telnet_encrypt_overflow – RCE contro Telnet vulnerabile di Solaris 9/10 (gestione dell'opzione ENCRYPT).
  • exploit/linux/mips/netgear_telnetenable – abilita il servizio telnet con un pacchetto creato su molti router NETGEAR.

Dopo aver ottenuto una shell, ricorda che TTY sono solitamente stupidi; aggiorna con python -c 'import pty;pty.spawn("/bin/bash")' o usa i trucchi TTY di HackTricks.

Indurimento & Rilevamento (angolo del team blu)

  1. Preferisci SSH e disabilita completamente il servizio Telnet.
  2. Se Telnet è necessario, collegalo solo a VLAN di gestione, applica ACL e avvolgi il demone con TCP wrappers (/etc/hosts.allow).
  3. Sostituisci le implementazioni legacy di telnetd con ssl-telnet o telnetd-ssl per aggiungere crittografia del trasporto, ma questo protegge solo i dati in transito—indovinare le password rimane banale.
  4. Monitora il traffico in uscita verso la porta 23; le compromissioni spesso generano reverse shell su Telnet per bypassare filtri egressi HTTP rigorosi.

Riferimenti

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

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks