mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
127 lines
6.1 KiB
Markdown
127 lines
6.1 KiB
Markdown
# 23 - Pentesting Telnet
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
|
||
## **Temel Bilgiler**
|
||
|
||
Telnet, kullanıcılara bir ağ üzerinden bir bilgisayara erişim sağlamak için güvensiz bir yol sunan bir ağ protokolüdür.
|
||
|
||
**Varsayılan port:** 23
|
||
```
|
||
23/tcp open telnet
|
||
```
|
||
## **Enumeration**
|
||
|
||
### **Banner Grabbing**
|
||
```bash
|
||
nc -vn <IP> 23
|
||
```
|
||
Tüm ilginç numaralandırmalar **nmap** ile gerçekleştirilebilir:
|
||
```bash
|
||
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
|
||
```
|
||
`telnet-ntlm-info.nse` betiği NTLM bilgilerini (Windows sürümleri) alacaktır.
|
||
|
||
[telnet RFC](https://datatracker.ietf.org/doc/html/rfc854)'deki TELNET Protokolünde, kullanıcı ve sunucunun TELNET bağlantıları için daha karmaşık (veya belki sadece farklı) bir dizi kural kullanmayı kabul etmesine olanak tanıyan çeşitli "**seçenekler**" bulunmaktadır. Bu seçenekler karakter setini değiştirmek, yankı modunu ayarlamak vb. içerebilir.
|
||
|
||
**Bu seçenekleri sıralamanın mümkün olduğunu biliyorum ama nasıl yapıldığını bilmiyorum, eğer biliyorsanız lütfen bana bildirin.**
|
||
|
||
### [Brute force](../generic-hacking/brute-force.md#telnet)
|
||
|
||
## Config file
|
||
```bash
|
||
/etc/inetd.conf
|
||
/etc/xinetd.d/telnet
|
||
/etc/xinetd.d/stelnet
|
||
```
|
||
## HackTricks Otomatik Komutlar
|
||
```
|
||
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'
|
||
|
||
```
|
||
### Son Güvenlik Açıkları (2022-2025)
|
||
|
||
* **CVE-2024-45698 – D-Link Wi-Fi 6 yönlendiricileri (DIR-X4860)**: Yerleşik Telnet servisi, sabit kodlanmış kimlik bilgilerini kabul etti ve girişi temizlemede başarısız oldu, bu da kimlik doğrulaması yapılmamış uzaktan RCE'ye izin verdi. Firmware ≥ 1.04B05 ile düzeltildi.
|
||
* **CVE-2023-40478 – NETGEAR RAX30**: Telnet CLI `passwd` komutundaki yığın tabanlı tampon taşması, komşu bir saldırganın kimlik doğrulamasını atlamasına ve kök olarak rastgele kod çalıştırmasına olanak tanır.
|
||
* **CVE-2022-39028 – GNU inetutils telnetd**: İki baytlık bir dizilim (`0xff 0xf7` / `0xff 0xf8`), `telnetd`'yi çökerten bir NULL işaretçi dereferansı tetikler ve birkaç çökmeden sonra kalıcı bir DoS'a yol açar.
|
||
|
||
Bu CVE'leri güvenlik açığı triage'ı sırasında aklınızda bulundurun—hedef, yamanmamış bir firmware veya eski inetutils Telnet daemon'u çalıştırıyorsa, kod çalıştırma veya kesintili bir DoS için doğrudan bir yolunuz olabilir.
|
||
|
||
### Kimlik Bilgilerini Dinleme & Adam Ortada
|
||
|
||
Telnet, kimlik bilgileri de dahil olmak üzere her şeyi **düz metin** olarak iletir. Onları yakalamanın iki hızlı yolu:
|
||
```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)
|
||
```
|
||
Aktif MITM için, ARP sahtekarlığını (örneğin `arpspoof`/`ettercap`) aynı sniffing filtreleriyle birleştirerek anahtarlamalı ağlarda şifreleri toplamak.
|
||
|
||
### Otomatik Kaba Güç / Şifre Spreyi
|
||
```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
|
||
```
|
||
Çoğu IoT botnet (Mirai varyantları) hala port 23'ü küçük varsayılan kimlik bilgisi sözlükleri ile tarıyor—bu mantığı yansıtmak zayıf cihazları hızlıca tanımlayabilir.
|
||
|
||
### Sömürü ve Sonrası
|
||
|
||
Metasploit'in birkaç yararlı modülü vardır:
|
||
|
||
* `auxiliary/scanner/telnet/telnet_version` – afiş ve seçenek sayımı.
|
||
* `auxiliary/scanner/telnet/brute_telnet` – çoklu iş parçacıklı brute force.
|
||
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` – savunmasız Solaris 9/10 Telnet'e karşı RCE (ENCRYPT seçeneği işleme).
|
||
* `exploit/linux/mips/netgear_telnetenable` – birçok NETGEAR yönlendiricisinde telnet hizmetini özel bir paketle etkinleştirir.
|
||
|
||
Bir shell elde edildikten sonra **TTY'lerin genellikle aptal olduğunu** unutmayın; `python -c 'import pty;pty.spawn("/bin/bash")'` ile yükseltin veya [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md) kullanın.
|
||
|
||
### Güçlendirme ve Tespit (Mavi takım köşesi)
|
||
|
||
1. SSH'yi tercih edin ve Telnet hizmetini tamamen devre dışı bırakın.
|
||
2. Telnet gerekiyorsa, yalnızca yönetim VLAN'larına bağlayın, ACL'leri zorlayın ve daemon'u TCP wrapper'ları ile sarın (`/etc/hosts.allow`).
|
||
3. Eski `telnetd` uygulamalarını `ssl-telnet` veya `telnetd-ssl` ile değiştirin, ancak **bu yalnızca veri iletimini korur—şifre tahmin etme basit kalır**.
|
||
4. Port 23'e giden çıkış trafiğini izleyin; ihlaller genellikle sıkı HTTP çıkış filtrelerini aşmak için Telnet üzerinden ters shell'ler oluşturur.
|
||
|
||
## Referanslar
|
||
|
||
* D-Link Danışmanlığı – CVE-2024-45698 Kritik Telnet RCE.
|
||
* NVD – CVE-2022-39028 inetutils `telnetd` DoS.
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|