9.9 KiB
Raw Blame History

23 - Pentesting Telnet

{{#include ../banners/hacktricks-training.md}}

बुनियादी जानकारी

Telnet एक नेटवर्क प्रोटोकॉल है जो उपयोगकर्ताओं को नेटवर्क के माध्यम से एक कंप्यूटर तक पहुँचने का UNsecure तरीका प्रदान करता है।

डिफ़ॉल्ट पोर्ट: 23

23/tcp open  telnet

Enumeration

Banner Grabbing

nc -vn <IP> 23

सभी दिलचस्प enumeration nmap द्वारा किया जा सकता है:

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

The script telnet-ntlm-info.nse NTLM जानकारी (Windows संस्करण) प्राप्त करेगा।

telnet RFC से: TELNET प्रोटोकॉल में विभिन्न "विकल्प" हैं जिन्हें स्वीकृत किया जाएगा और उपयोग किया जा सकता है "DO, DON'T, WILL, WON'T" संरचना के साथ ताकि उपयोगकर्ता और सर्वर एक अधिक जटिल (या शायद बस अलग) सेट के लिए सहमत हो सकें। उनके TELNET कनेक्शन के लिए परंपराएँ। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है।

मुझे पता है कि इन विकल्पों को सूचीबद्ध करना संभव है लेकिन मुझे नहीं पता कैसे, इसलिए मुझे बताएं कि क्या आप जानते हैं।

Brute force

Config file

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

HackTricks स्वचालित आदेश

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'

Recent Vulnerabilities (2022-2025)

  • CVE-2024-45698 D-Link Wi-Fi 6 routers (DIR-X4860): अंतर्निहित Telnet सेवा ने हार्ड-कोडेड क्रेडेंशियल्स को स्वीकार किया और इनपुट को साफ़ करने में विफल रही, जिससे पोर्ट 23 पर तैयार किए गए कमांड के माध्यम से रूट के रूप में प्रमाणीकरण रहित दूरस्थ RCE की अनुमति मिली। फर्मवेयर ≥ 1.04B05 में ठीक किया गया।
  • CVE-2023-40478 NETGEAR RAX30: Telnet CLI passwd कमांड में स्टैक-आधारित बफर ओवरफ्लो एक निकटवर्ती हमलावर को प्रमाणीकरण को बायपास करने और रूट के रूप में मनमाना कोड निष्पादित करने की अनुमति देता है।
  • CVE-2022-39028 GNU inetutils telnetd: एक दो-बाइट अनुक्रम (0xff 0xf7 / 0xff 0xf8) एक NULL-पॉइंटर डेरिफरेंस को ट्रिगर करता है जो telnetd को क्रैश कर सकता है, कई क्रैश के बाद एक स्थायी DoS का परिणाम होता है।

कमजोरियों के वर्गीकरण के दौरान इन CVEs को ध्यान में रखें—यदि लक्ष्य एक अन-पैच किया गया फर्मवेयर या पुराना inetutils Telnet डेमॉन चला रहा है तो आपके पास कोड-निष्पादन या एक विघटनकारी DoS के लिए एक सीधा रास्ता हो सकता है।

Sniffing Credentials & Man-in-the-Middle

Telnet सब कुछ, जिसमें क्रेडेंशियल्स भी शामिल हैं, स्पष्ट-टेक्स्ट में प्रसारित करता है। उन्हें कैप्चर करने के दो त्वरित तरीके:

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

सक्रिय MITM के लिए, ARP स्पूफिंग (जैसे arpspoof/ettercap) को स्विच किए गए नेटवर्क पर पासवर्ड इकट्ठा करने के लिए समान स्निफ़िंग फ़िल्टर के साथ मिलाएं।

स्वचालित ब्रूट-फोर्स / पासवर्ड स्प्रेइंग

# 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

अधिकांश IoT बोटनेट (Mirai वेरिएंट) अभी भी छोटे डिफ़ॉल्ट-क्रेडेंशियल डिक्शनरी के साथ पोर्ट 23 को स्कैन करते हैं—इस तर्क को दोहराने से कमजोर उपकरणों की पहचान जल्दी हो सकती है।

शोषण और पोस्ट-शोषण

Metasploit के पास कई उपयोगी मॉड्यूल हैं:

  • auxiliary/scanner/telnet/telnet_version बैनर और विकल्प गणना।
  • auxiliary/scanner/telnet/brute_telnet मल्टीथ्रेडेड ब्रूटफोर्स।
  • auxiliary/scanner/telnet/telnet_encrypt_overflow कमजोर Solaris 9/10 Telnet (विकल्प ENCRYPT हैंडलिंग) के खिलाफ RCE।
  • exploit/linux/mips/netgear_telnetenable कई NETGEAR राउटर्स पर एक निर्मित पैकेट के साथ टेलनेट सेवा सक्षम करता है।

एक शेल प्राप्त करने के बाद याद रखें कि TTYs आमतौर पर बेवकूफ होते हैं; python -c 'import pty;pty.spawn("/bin/bash")' के साथ अपग्रेड करें या HackTricks TTY tricks का उपयोग करें।

हार्डनिंग और पहचान (ब्लू टीम कोना)

  1. SSH को प्राथमिकता दें और टेलनेट सेवा को पूरी तरह से बंद करें।
  2. यदि टेलनेट आवश्यक है, तो इसे केवल प्रबंधन VLANs से बाइंड करें, ACLs को लागू करें और डेमन को TCP wrappers (/etc/hosts.allow) के साथ लपेटें।
  3. परिवहन एन्क्रिप्शन जोड़ने के लिए पुराने telnetd कार्यान्वयनों को ssl-telnet या telnetd-ssl से बदलें, लेकिन यह केवल डेटा-इन-ट्रांजिट की सुरक्षा करता है—पासवर्ड-गेसिंग सरल रहता है
  4. पोर्ट 23 पर आउटबाउंड ट्रैफ़िक की निगरानी करें; समझौते अक्सर टेलनेट के माध्यम से रिवर्स शेल उत्पन्न करते हैं ताकि सख्त-HTTP ईग्रेस फ़िल्टर को बायपास किया जा सके।

संदर्भ

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

{{#include ../banners/hacktricks-training.md}}