127 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 23 - Pentesting Telnet
{{#include ../banners/hacktricks-training.md}}
## **Основна інформація**
Telnet - це мережевий протокол, який надає користувачам незахищений спосіб доступу до комп'ютера через мережу.
**Порт за замовчуванням:** 23
```
23/tcp open telnet
```
## **Перерахунок**
### **Отримання банера**
```bash
nc -vn <IP> 23
```
Всі цікаві перерахунки можна виконати за допомогою **nmap**:
```bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
```
Скрипт `telnet-ntlm-info.nse` отримає інформацію NTLM (версії Windows).
З [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): У протоколі TELNET є різні "**options**", які будуть санкціоновані і можуть використовуватися зі структурою "**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'
```
### Останні вразливості (2022-2025)
* **CVE-2024-45698 D-Link Wi-Fi 6 маршрутизатори (DIR-X4860)**: Вбудована служба Telnet приймала жорстко закодовані облікові дані та не очищала введення, що дозволяло неавтентифіковане віддалене RCE як root через спеціально підготовлені команди на порту 23. Виправлено у прошивці ≥ 1.04B05.
* **CVE-2023-40478 NETGEAR RAX30**: Переповнення буфера на основі стеку в команді Telnet CLI `passwd` дозволяє сусідньому зловмиснику обійти автентифікацію та виконати довільний код як root.
* **CVE-2022-39028 GNU inetutils telnetd**: Двобайтовий рядок (`0xff 0xf7` / `0xff 0xf8`) викликає розіменування NULL-вказівника, що може призвести до збою `telnetd`, в результаті чого виникає постійний DoS після кількох збоїв.
Тримайте ці CVE на увазі під час триажу вразливостей — якщо ціль працює на непатченої прошивці або застарілому демоні inetutils Telnet, ви можете мати простий шлях до виконання коду або деструктивного DoS.
### Перехоплення облікових даних та атака "людина посередині"
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://<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` RCE проти вразливого Solaris 9/10 Telnet (обробка опції ENCRYPT).
* `exploit/linux/mips/netgear_telnetenable` активує службу telnet за допомогою спеціально підготовленого пакета на багатьох маршрутизаторах NETGEAR.
Після отримання оболонки пам'ятайте, що **TTY зазвичай тупі**; оновіть за допомогою `python -c 'import pty;pty.spawn("/bin/bash")'` або використовуйте [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md).
### Укріплення та виявлення (куток синьої команди)
1. Вибирайте SSH і повністю вимкніть службу Telnet.
2. Якщо Telnet необхідний, прив'яжіть його лише до VLAN для управління, забезпечте ACL і обгорніть демон за допомогою TCP обгорток (`/etc/hosts.allow`).
3. Замініть застарілі реалізації `telnetd` на `ssl-telnet` або `telnetd-ssl`, щоб додати шифрування транспорту, але **це лише захищає дані в русі—вгадування паролів залишається тривіальним**.
4. Моніторте вихідний трафік на порт 23; компрометації часто запускають зворотні оболонки через Telnet, щоб обійти суворі фільтри виходу HTTP.
## Посилання
* D-Link Advisory CVE-2024-45698 Критичний Telnet RCE.
* NVD CVE-2022-39028 inetutils `telnetd` DoS.
{{#include ../banners/hacktricks-training.md}}