23 - Pentesting Telnet

Reading time: 6 minutes

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

Enumeracija

Prikupljanje banera

bash
nc -vn <IP> 23

Sve zanimljivo enumerisanje može se izvršiti pomoću nmap:

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

Skripta telnet-ntlm-info.nse će dobiti NTLM informacije (verzije Windows-a).

Iz telnet RFC: U TELNET protokolu postoje razne "opcije" koje će biti odobrene i mogu se koristiti sa strukturom "DO, DON'T, WILL, WON'T" kako bi se omogućilo korisniku i serveru 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žim eha, itd.

Znam da je moguće enumerisati ove opcije, ali ne znam kako, pa me obavestite ako znate kako.

Brute force

Konfiguracioni fajl

bash
/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'

Nedavne Ranljivosti (2022-2025)

  • CVE-2024-45698 – D-Link Wi-Fi 6 ruteri (DIR-X4860): Ugrađena Telnet usluga je prihvatila hard-kodirane akreditive i nije sanitizovala unos, omogućavajući neautentifikovanu daljinsku RCE kao root putem kreiranih komandi na portu 23. Ispravljeno u firmveru ≥ 1.04B05.
  • CVE-2023-40478 – NETGEAR RAX30: Prelivanje bafera zasnovano na steku u Telnet CLI passwd komandi omogućava susednom napadaču da zaobiđe autentifikaciju i izvrši proizvoljan kod kao root.
  • CVE-2022-39028 – GNU inetutils telnetd: Dvobajtna sekvenca (0xff 0xf7 / 0xff 0xf8) izaziva dereferencu NULL pokazivača koja može srušiti telnetd, što rezultira postojanim DoS nakon nekoliko rušenja.

Imajte ove CVE-e na umu tokom triage ranljivosti—ako cilj koristi neispravljen firmver ili nasleđeni inetutils Telnet demon, možda imate jednostavan put do izvršenja koda ili ometajućeg DoS.

Snimanje Akreditiva & Man-in-the-Middle

Telnet prenosi sve, uključujući akreditive, u čistom tekstu. Dva brza načina da ih uhvatite:

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)

Za aktivni MITM, kombinujte ARP spoofing (npr. arpspoof/ettercap) sa istim filtrima za snimanje kako biste prikupili lozinke na preklopnim mrežama.

Automatizovani Brute-force / Password Spraying

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

Većina IoT botneta (varijante Mirai) još uvek skenira port 23 sa malim rečnicima podrazumevanih akreditiva—odražavanje te logike može brzo identifikovati slabe uređaje.

Eksploatacija i Post-Eksploatacija

Metasploit ima nekoliko korisnih modula:

  • auxiliary/scanner/telnet/telnet_version – enumeracija banera i opcija.
  • auxiliary/scanner/telnet/brute_telnet – multithreaded bruteforce.
  • auxiliary/scanner/telnet/telnet_encrypt_overflow – RCE protiv ranjivih Solaris 9/10 Telnet (obrada opcije ENCRYPT).
  • exploit/linux/mips/netgear_telnetenable – omogućava telnet servis sa kreiranim paketom na mnogim NETGEAR ruterima.

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

Ojačavanje i Detekcija (Plavi tim)

  1. Preferirajte SSH i potpuno onemogućite Telnet servis.
  2. Ako je Telnet neophodan, povežite ga samo sa upravljačkim VLAN-ovima, primenite ACL-ove i obavijte demon sa TCP wrapper-ima (/etc/hosts.allow).
  3. Zamenite zastarele telnetd implementacije sa ssl-telnet ili telnetd-ssl da dodate transportnu enkripciju, ali ovo samo štiti podatke u tranzitu—pogađanje lozinki ostaje trivijalno.
  4. Pratite izlazni saobraćaj ka portu 23; kompromitacije često pokreću obrnute shelle preko Telnet-a da zaobiđu stroge HTTP egress filtere.

Reference

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

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