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

Основна інформація

Telnet — це мережевий протокол, який дає користувачам незахищений спосіб доступу до комп’ютера через мережу.

Порт за замовчуванням: 23

23/tcp open  telnet

Enumeration

nc -vn <IP> 23

Всю цікаву enumeration можна виконати за допомогою nmap:

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

Скрипт telnet-ntlm-info.nse отримує NTLM info (Windows versions).

From the telnet RFC: У протоколі TELNET є різні “options”, які можуть бути погоджені й використовуватися в структурі “DO, DON’T, WILL, WON’T”, що дозволяє клієнту й серверу узгодити використання більш складного (або просто відмінного) набору правил для їхнього TELNET-з’єднання. Такі options можуть включати зміну набору символів, режиму echo тощо.

Я знаю, що можна перерахувати ці options, але не знаю як, тож дайте знати, якщо знаєте як.

Перерахування параметрів / можливостей Telnet

Telnet використовує IAC + DO/DONT/WILL/WONT переговори для активації опцій. Ви можете спостерігати підтримувані 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-сервісі дозволяє віддаленим зловмисникам увійти з використанням вбудованих облікових даних та впроваджувати команди ОС; виправлено у firmware 1.04B05 або пізнішій версії.
  • CVE-2023-40478 – NETGEAR RAX30: Stack-based buffer overflow у Telnet CLI passwd команді дозволяє виконання коду як root з мережевого сусіднього пристрою; потрібна автентифікація, яка може бути обійдена.
  • CVE-2022-39028 – GNU inetutils telnetd: Двобайтова послідовність (0xff 0xf7 / 0xff 0xf8) може спричинити NULL-pointer dereference у telnetd, а повторні краші можуть призвести до того, що inetd вимкне сервіс (DoS).

Майте ці CVE на увазі під час триажу вразливостей — якщо ціль працює на непатченому firmware або застарілому inetutils Telnet daemon, у вас може бути прямий шлях до виконання коду або руйнівного DoS.

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 версії 1.9.3–2.7 уразливі (опубліковано January 21, 2026).

Заходи

  • Оновіть/запатчіть уражені пакети негайно (наприклад, виправлення для Debian в 2:2.4-2+deb12u2, 2:2.6-3+deb13u1, та 2:2.7-2).
  • Disable Telnet або обмежте доступ до довірених мереж управління під час встановлення патчів.

Перехоплення облікових даних & Man-in-the-Middle

Telnet передає все, включно з обліковими даними, у 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 (наприклад, arpspoof/ettercap) з тими самими фільтрами перехоплення, щоб збирати паролі в комутованих мережах.

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

Більшість IoT-ботнетів (варіанти Mirai) досі сканують порт 23 з невеликими словниками стандартних облікових даних — відтворення цієї логіки швидко виявляє слабкі пристрої.

Експлуатація та післяексплуатація

Metasploit має кілька корисних модулів:

  • auxiliary/scanner/telnet/telnet_version – збір банерів та перерахування опцій.
  • 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 за допомогою спеціально сформованого пакета на багатьох маршрутизаторах NETGEAR.

Після отримання shell пам’ятайте, що TTYs зазвичай мають обмежені можливості; оновіть його за допомогою python -c 'import pty;pty.spawn("/bin/bash")' або скористайтеся HackTricks TTY tricks.

Hardening & Detection (Blue team corner)

  1. Віддавайте перевагу SSH і повністю вимкніть Telnet service.
  2. Якщо Telnet потрібен, прив’язуйте його тільки до management VLANs, застосуйте ACLs і обгорніть демон через TCP wrappers (/etc/hosts.allow).
  3. Замініть застарілі реалізації telnetd на ssl-telnet або telnetd-ssl, щоб додати шифрування транспорту, але це захищає лише дані в русі — підбір паролів залишається тривіальним.
  4. Моніторьте вихідний трафік на порт 23; при компрометації часто запускаються reverse shells по Telnet, щоб обійти суворі HTTP egress-фільтри.

Посилання

  • 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.

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