# 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 23 ``` Tüm ilginç numaralandırmalar **nmap** ile gerçekleştirilebilir: ```bash nmap -n -sV -Pn --script "*telnet* and safe" -p 23 ``` `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:// # Ncrack (drop to interactive session on success) ncrack -p 23 --user admin -P common-pass.txt --connection-limit 4 # 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}}