# 23 - Pentesting Telnet {{#include ../banners/hacktricks-training.md}} ## **बुनियादी जानकारी** Telnet एक नेटवर्क प्रोटोकॉल है जो उपयोगकर्ताओं को नेटवर्क के माध्यम से एक कंप्यूटर तक पहुँचने का UNsecure तरीका प्रदान करता है। **डिफ़ॉल्ट पोर्ट:** 23 ``` 23/tcp open telnet ``` ## **Enumeration** ### **Banner Grabbing** ```bash nc -vn 23 ``` सभी दिलचस्प enumeration **nmap** द्वारा किया जा सकता है: ```bash nmap -n -sV -Pn --script "*telnet* and safe" -p 23 ``` The script `telnet-ntlm-info.nse` NTLM जानकारी (Windows संस्करण) प्राप्त करेगा। [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854) से: TELNET प्रोटोकॉल में विभिन्न "**विकल्प**" हैं जिन्हें स्वीकृत किया जाएगा और उपयोग किया जा सकता है "**DO, DON'T, WILL, WON'T**" संरचना के साथ ताकि उपयोगकर्ता और सर्वर एक अधिक जटिल (या शायद बस अलग) सेट के लिए सहमत हो सकें। उनके TELNET कनेक्शन के लिए परंपराएँ। ऐसे विकल्पों में वर्ण सेट, इको मोड आदि को बदलना शामिल हो सकता है। **मुझे पता है कि इन विकल्पों को सूचीबद्ध करना संभव है लेकिन मुझे नहीं पता कैसे, इसलिए मुझे बताएं कि क्या आप जानते हैं।** ### [Brute force](../generic-hacking/brute-force.md#telnet) ## Config file ```bash /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 सब कुछ, जिसमें क्रेडेंशियल्स भी शामिल हैं, **स्पष्ट-टेक्स्ट** में प्रसारित करता है। उन्हें कैप्चर करने के दो त्वरित तरीके: ```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) ``` सक्रिय MITM के लिए, ARP स्पूफिंग (जैसे `arpspoof`/`ettercap`) को स्विच किए गए नेटवर्क पर पासवर्ड इकट्ठा करने के लिए समान स्निफ़िंग फ़िल्टर के साथ मिलाएं। ### स्वचालित ब्रूट-फोर्स / पासवर्ड स्प्रेइंग ```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 ``` अधिकांश 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](/generic-hacking/reverse-shells/full-ttys.md) का उपयोग करें। ### हार्डनिंग और पहचान (ब्लू टीम कोना) 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}}