Telnet (Telecommunication Network) es un protocolo de red y herramienta de línea de comandos que permite establecer conexiones remotas a otros dispositivos mediante el protocolo TCP. Fue uno de los primeros protocolos de Internet, desarrollado en 1969.
¿Para qué sirve?
Acceso remoto a servidores y dispositivos de red
Pruebas de conectividad en puertos específicos
Interacción manual con servicios de red (HTTP, SMTP, POP3, etc.)
Enumeración de servicios en pentesting
Debugging de aplicaciones de red
¿Cuándo usarlo en hacking?
En pentesting y ciberseguridad, telnet es especialmente útil para:
🔍 Enumerar banners de servicios (fingerprinting)
🧪 Probar servicios como SMTP, POP3, HTTP manualmente
🔌 Verificar puertos abiertos y conectividad
🐛 Explotar vulnerabilidades en servicios específicos
📡 Interactuar con shells obtenidas en post-explotación
Importante
Telnet NO es seguro porque transmite toda la información (incluidas credenciales) en texto plano sin cifrado. Por eso fue reemplazado por SSH en entornos de producción. Sin embargo, sigue siendo valioso para pruebas y explotación.
🛠️ Instalación
En la mayoría de sistemas
Telnet suele venir preinstalado, pero si no está disponible:
# Kali Linux / Debian / Ubuntusudo apt updatesudo apt install telnet# Arch Linuxsudo pacman -S inetutils# Red Hat / CentOS / Fedorasudo yum install telnet# macOS (usualmente preinstalado)# Si no está: brew install telnet# Windows# Activar desde "Activar o desactivar características de Windows"# O desde PowerShell (como administrador):dism /online /Enable-Feature /FeatureName: TelnetClient
Verificar instalación
telnet# Owhich telnet
📖 Sintaxis básica
telnet [opciones] <host> [puerto]
Parámetros principales
Parámetro
Descripción
Ejemplo
<host>
IP o dominio del objetivo
192.168.1.100, example.com
[puerto]
Puerto al que conectar (por defecto 23)
80, 25, 110
-l <usuario>
Especifica nombre de usuario (en algunos sistemas)
-l admin
-a
Intenta login automático
-a
-e <char>
Establece carácter de escape
-e ^]
Comandos internos de telnet
Una vez dentro de una sesión telnet, puedes usar:
Comando
Acción
Ctrl + ]
Entrar al modo comando de telnet
quit o close
Cerrar la conexión
open <host> <puerto>
Abrir nueva conexión
status
Ver estado de la conexión
? o help
Mostrar ayuda
💻 Casos de uso en pentesting
1️⃣ Verificar conectividad y puertos abiertos
# Probar si el puerto 80 está abiertotelnet 192.168.1.100 80
Resultado esperado:
Trying 192.168.1.100...
Connected to 192.168.1.100.
Escape character is '^]'.
Si el puerto está abierto, verás “Connected”. Si está cerrado:
telnet: Unable to connect to remote host: Connection refused
Alternativa moderna
nc -zv 192.168.1.100 80 (netcat) es más rápido para este propósito, pero telnet permite interacción posterior.
2️⃣ Enumerar banners de servicios
Los banners revelan información valiosa sobre versiones de software y configuraciones.
graph TD
A[Identificar objetivo y puerto] --> B{¿Puerto abierto?}
B -->|Sí| C[telnet IP puerto]
B -->|No| Z[Puerto cerrado/filtrado]
C --> D[Recibir banner]
D --> E{¿Banner informativo?}
E -->|Sí| F[Anotar versión/servicio]
E -->|No| G[Interactuar manualmente]
F --> H[Buscar exploits conocidos]
G --> I[Probar comandos del protocolo]
H --> J[Preparar exploit]
I --> K{¿Vulnerable?}
K -->|Sí| L[Explotar vulnerabilidad]
K -->|No| M[Documentar y seguir enumerando]
style L fill:#90EE90
style Z fill:#ffcccc
💡 Tips y buenas prácticas
✅ Consejos generales
Usa telnet para pruebas rápidas
Es más rápido que abrir un navegador o cliente especializado para verificar servicios web, SMTP o POP3.
Combina con netcat
Para tareas simples de conectividad, nc es más versátil:
Telnet es una herramienta fundamental para pentesting y enumeración manual de servicios. Aunque obsoleto para uso en producción debido a la falta de seguridad, sigue siendo invaluable para interacciones directas con protocolos de red, pruebas de conectividad y explotación de servicios vulnerables en laboratorios controlados. **