23 - Pentesting Telnet

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Bilgiler

Telnet, kullanıcılara bir ağa bağlı bilgisayara güvenli olmayan bir şekilde erişme imkanı veren bir ağ protokolüdür.

Varsayılan port: 23

23/tcp open  telnet

Enumeration

nc -vn <IP> 23

Tüm ilginç enumeration nmap ile yapılabilir:

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

telnet-ntlm-info.nse betiği NTLM bilgilerini (Windows sürümleri) elde eder.

From the telnet RFC: TELNET protokolünde, kullanıcı ile sunucunun daha gelişmiş (ya da sadece farklı) bir TELNET bağlantısı için anlaşmasını sağlamak amacıyla “options” yapısı, “DO, DON’T, WILL, WON’T” biçimiyle kullanılabilecek ve onaylanabilecek çeşitli seçenekler içerir. Bu seçenekler karakter setinin değiştirilmesi, echo modunun değiştirilmesi vb. gibi işlevleri kapsayabilir.

Bu options’ları enumerate etmenin mümkün olduğunu biliyorum ama nasıl yapılacağını bilmiyorum; eğer biliyorsanız bana bildirin.

Enumerate Telnet Seçenekleri / Özellikleri

Telnet, seçenekleri etkinleştirmek için IAC + DO/DONT/WILL/WONT pazarlıklarını kullanır. Desteklenen seçenekleri ilk pazarlığı yakalayarak ve belirli özellikleri sorgulayarak gözlemleyebilirsiniz.

Nmap seçenek/özellik sorgulamaları

# Detect support for the Telnet ENCRYPT option
nmap -p 23 --script telnet-encryption <IP>

# Enumerate Microsoft Telnet NTLM info (NetBIOS/DNS/OS build)
nmap -p 23 --script telnet-ntlm-info <IP>

# Brute-force via NSE (alternative to Hydra/Medusa)
nmap -p 23 --script telnet-brute --script-args userdb=users.txt,passdb=pass.txt <IP>

The telnet-encryption scripti ENCRYPT seçeneğinin desteklenip desteklenmediğini kontrol eder; bazı uygulamalar tarihsel olarak bu seçeneği yanlış ele almış ve savunmasız olmuştur, ancak script sadece desteği kontrol eder. telnet-ntlm-info, Microsoft Telnet NTLM etkin olduğunda NTLM metadata’sını (NetBIOS/DNS/OS build) ifşa eder. telnet-brute, Telnet için bir NSE brute-force denetleyicisidir.

Brute force

Konfigürasyon dosyası

/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 Zafiyetler (2022-2026)

  • CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860): telnet service içindeki yetersiz giriş doğrulaması, uzak saldırganların hard-coded credentials kullanarak oturum açmasına ve OS commands enjekte etmesine izin verir; firmware 1.04B05 veya daha yeni sürümlerde düzeltilmiştir.
  • CVE-2023-40478 – NETGEAR RAX30: Telnet CLI passwd komutunda stack-based buffer overflow, ağ-adjacent konumdan root olarak code execution’a imkan tanır; kimlik doğrulama gereklidir ancak atlatılabilir.
  • CVE-2022-39028 – GNU inetutils telnetd: İki baytlık bir dizi (0xff 0xf7 / 0xff 0xf8) telnetd içinde bir NULL-pointer dereference tetikleyebilir ve tekrarlanan çökmeler inetd’nin servisi devre dışı bırakmasına yol açabilir (DoS).

Bu CVE’leri vulnerability triage sırasında aklınızda tutun — hedef yamalanmamış bir firmware veya eski bir inetutils Telnet daemon çalıştırıyorsa doğrudan bir path to code-execution veya yıkıcı bir DoS elde etme şansınız olabilir.

CVE-2026-24061 — GNU Inetutils telnetd auth bypass (Critical)

Summary: telnetd in GNU Inetutils through 2.7 allows remote authentication bypass via a USER environment variable value of -f root, resulting in unauthenticated root access.
Root cause: argument injection (CWE-88) because telnetd forwards the client-supplied USER environment variable to login without sanitization.
Scope: GNU Inetutils telnetd versions 1.9.3–2.7 are affected (published January 21, 2026).

Mitigations

  • Patch/upgrade etkilenen paketleri derhal güncelleyin (ör. Debian düzeltmeleri 2:2.4-2+deb12u2, 2:2.6-3+deb13u1 ve 2:2.7-2 sürümlerindedir).
  • Disable Telnet veya yama uygulanırken erişimi güvenilir yönetim ağlarıyla sınırlandırın.

Sniffing Credentials & Man-in-the-Middle

Telnet her şeyi, credentials dahil, clear-text olarak iletir. Onları yakalamak için iki hızlı yol:

# 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)

Otomatik Brute-force / Password Spraying

Aktif MITM için, ARP spoofing (örn. arpspoof/ettercap) ile aynı sniffing filters’ı birleştirerek switched networks üzerinde passwords elde edin.

# 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 variants) hâlâ port 23’ü küçük default-credential sözlükleriyle tarıyor — bu mantığı taklit etmek zayıf cihazları hızlıca tespit edebilir.

Exploitation & Post-Exploitation

Metasploit’in birkaç kullanışlı modülü var:

  • auxiliary/scanner/telnet/telnet_version – banner ve seçenek keşfi.
  • auxiliary/scanner/telnet/brute_telnet – çoklu iş parçacıklı bruteforce.
  • auxiliary/scanner/telnet/telnet_encrypt_overflow – Solaris 9/10 Telnet (ENCRYPT seçeneğinin işlenmesi) için RCE.
  • exploit/linux/mips/netgear_telnetenable – birçok NETGEAR yönlendiricide özel hazırlanmış bir paketle telnet servisini etkinleştirir.

Bir shell elde edildikten sonra unutmayın ki TTY’ler genellikle sınırlıdır; python -c 'import pty;pty.spawn("/bin/bash")' ile yükseltin veya HackTricks TTY tricks kullanın.

Hardening & Detection (Blue team corner)

  1. SSH tercih edin ve Telnet servisini tamamen devre dışı bırakın.
  2. Telnet gerekiyorsa, yalnızca yönetim VLAN’larına bağlayın, ACL’leri uygulayın ve daemon’u TCP wrappers (/etc/hosts.allow) ile sarın.
  3. Eski telnetd uygulamalarını ssl-telnet veya telnetd-ssl ile değiştirerek taşıma şifrelemesi ekleyin, ancak bu yalnızca iletimdeki veriyi korur—parola tahmini hâlâ basittir.
  4. Çıkış trafiğini port 23’e yönelik izleyin; ihlaller genellikle sıkı HTTP egress filtrelerini atlatmak için Telnet üzerinden reverse shell’ler başlatır.

References

  • D-Link Advisory – CVE-2024-45698 Critical Telnet RCE.
  • NVD – CVE-2022-39028 inetutils telnetd DoS.
  • NVD – CVE-2026-24061.
  • Canadian Centre for Cyber Security Alert AL26-002 (CVE-2026-24061).
  • Debian Security Tracker – CVE-2026-24061 fixed versions.

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin