23 - Pentesting Telnet

Reading time: 6 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Grundinformationen

Telnet ist ein Netzwerkprotokoll, das Benutzern eine unsichere Möglichkeit bietet, über ein Netzwerk auf einen Computer zuzugreifen.

Standardport: 23

23/tcp open  telnet

Enumeration

bash
nc -vn <IP> 23

Alle interessanten Aufzählungen können mit nmap durchgeführt werden:

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

Das Skript telnet-ntlm-info.nse wird NTLM-Informationen (Windows-Versionen) abrufen.

Aus dem telnet RFC: Im TELNET-Protokoll gibt es verschiedene "Optionen", die genehmigt werden und mit der Struktur "DO, DON'T, WILL, WON'T" verwendet werden können, um es einem Benutzer und einem Server zu ermöglichen, sich auf die Verwendung eines elaborierteren (oder vielleicht einfach anderen) Satzes von Konventionen für ihre TELNET-Verbindung zu einigen. Solche Optionen könnten das Ändern des Zeichensatzes, des Echo-Modus usw. umfassen.

Ich weiß, dass es möglich ist, diese Optionen aufzulisten, aber ich weiß nicht wie, also lass es mich wissen, wenn du weißt wie.

Brute Force

Konfigurationsdatei

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

HackTricks Automatische Befehle

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'

Aktuelle Schwachstellen (2022-2025)

  • CVE-2024-45698 – D-Link Wi-Fi 6 Router (DIR-X4860): Der integrierte Telnet-Dienst akzeptierte fest codierte Anmeldeinformationen und konnte Eingaben nicht bereinigen, was eine nicht authentifizierte Remote-RCE als Root über manipulierte Befehle auf Port 23 ermöglichte. In Firmware ≥ 1.04B05 behoben.
  • CVE-2023-40478 – NETGEAR RAX30: Ein stackbasierter Pufferüberlauf im Telnet-CLI-Befehl passwd ermöglicht es einem benachbarten Angreifer, die Authentifizierung zu umgehen und beliebigen Code als Root auszuführen.
  • CVE-2022-39028 – GNU inetutils telnetd: Eine Zwei-Byte-Sequenz (0xff 0xf7 / 0xff 0xf8) löst eine NULL-Zeiger-Dereferenzierung aus, die telnetd zum Absturz bringen kann, was nach mehreren Abstürzen zu einem persistierenden DoS führt.

Behalten Sie diese CVEs während der Schwachstellenbewertung im Hinterkopf – wenn das Ziel eine nicht gepatchte Firmware oder einen veralteten inetutils Telnet-Daemon ausführt, haben Sie möglicherweise einen direkten Weg zur Codeausführung oder zu einem störenden DoS.

Abfangen von Anmeldeinformationen & Man-in-the-Middle

Telnet überträgt alles, einschließlich Anmeldeinformationen, in Klartext. Zwei schnelle Möglichkeiten, um sie abzufangen:

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)

Für aktives MITM kombinieren Sie ARP-Spoofing (z.B. arpspoof/ettercap) mit denselben Sniffing-Filtern, um Passwörter in geschalteten Netzwerken zu ernten.

Automatisierter Brute-Force / Passwort-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

Die meisten IoT-Botnets (Mirai-Varianten) scannen weiterhin Port 23 mit kleinen Standard-Anmeldeinformationen-Dictionaries – diese Logik zu spiegeln, kann schnell schwache Geräte identifizieren.

Ausnutzung & Nachausnutzung

Metasploit hat mehrere nützliche Module:

  • auxiliary/scanner/telnet/telnet_version – Banner- & Optionsenumeration.
  • auxiliary/scanner/telnet/brute_telnet – Multithreaded Bruteforce.
  • auxiliary/scanner/telnet/telnet_encrypt_overflow – RCE gegen anfällige Solaris 9/10 Telnet (Option ENCRYPT-Verarbeitung).
  • exploit/linux/mips/netgear_telnetenable – aktiviert den Telnet-Dienst mit einem gestalteten Paket auf vielen NETGEAR-Routern.

Nachdem eine Shell erhalten wurde, denken Sie daran, dass TTYs normalerweise dumm sind; aktualisieren Sie mit python -c 'import pty;pty.spawn("/bin/bash")' oder verwenden Sie die HackTricks TTY-Tricks.

Härtung & Erkennung (Blue Team Ecke)

  1. Bevorzugen Sie SSH und deaktivieren Sie den Telnet-Dienst vollständig.
  2. Wenn Telnet erforderlich ist, binden Sie es nur an Verwaltungs-VLANs, erzwingen Sie ACLs und umhüllen Sie den Daemon mit TCP-Wrappers (/etc/hosts.allow).
  3. Ersetzen Sie veraltete telnetd-Implementierungen durch ssl-telnet oder telnetd-ssl, um Transportverschlüsselung hinzuzufügen, aber dies schützt nur Daten im Transit – Passwort-Raten bleibt trivial.
  4. Überwachen Sie den ausgehenden Verkehr zu Port 23; Kompromittierungen erzeugen oft Reverse-Shells über Telnet, um strenge HTTP-Egress-Filter zu umgehen.

Referenzen

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

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks