mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
127 lines
6.4 KiB
Markdown
127 lines
6.4 KiB
Markdown
# 23 - Pentesting Telnet
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
|
||
## **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**
|
||
|
||
### **Banner Grabbing**
|
||
```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](https://datatracker.ietf.org/doc/html/rfc854): 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](../generic-hacking/brute-force.md#telnet)
|
||
|
||
## 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](/generic-hacking/reverse-shells/full-ttys.md).
|
||
|
||
### 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.
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|