Metasploit Framework
desde cero en un laboratorio controlado
Herramientas de Kali Linux | unfantasmaenelsistema.com
En la serie ya hemos visto el reconocimiento con Nmap, la auditoría web con Burp Suite y el descifrado de contraseñas con John y Hashcat. Falta la pieza que la mayoría de la gente asocia con la palabra «hacking»: el framework de explotación. Metasploit es, con diferencia, el más usado —tanto por equipos de red team con contrato como por atacantes reales— y precisamente por eso conviene entender cómo está construido: para reconocer su rastro y defenderse de él.
Este artículo es una introducción divulgativa a la arquitectura del framework y a su flujo de trabajo básico, ejecutado íntegramente contra Metasploitable 2, una máquina virtual deliberadamente vulnerable, en una red aislada sin salida a internet. No es una guía de intrusión: no encontrarás recetas contra objetivos reales ni técnicas de evasión de antivirus. El objetivo es que, al terminar, entiendas qué hace cada componente y por qué un SOC bien montado detecta casi todo lo que genera.
Qué aprenderás en este artículo
Qué es Metasploit y de qué partes se compone (msfconsole y los tipos de módulo) · Cómo se usa el workspace y la base de datos para organizar una auditoría · El flujo estándar de trabajo: search, use, set, check, run · Cómo se integra con Nmap importando resultados · Qué es Meterpreter a alto nivel y qué es msfvenom · Cómo se detecta y se mitiga la actividad típica del framework
Uso legal y responsable — léelo antes de seguir
Ejecutar un exploit contra un sistema que no es tuyo y sin autorización expresa y por escrito es un delito de acceso ilícito y de daños informáticos (en España, arts. 197 bis, 197 ter y 264 del Código Penal), con independencia de que causes o no un perjuicio visible · Todo lo que se muestra aquí apunta a Metasploitable 2 en la red 192.168.56.x: máquinas virtuales propias, en modo solo-anfitrión, sin conexión a internet · Metasploitable y compañía son intencionadamente inseguras; exponerlas a una red con salida convierte tu propio laboratorio en un riesgo para terceros · Un pentest legítimo se sostiene sobre un contrato con alcance definido, ventana de tiempo y autorización del propietario del sistema. Sin ese papel, no hay «solo estaba probando»
1. Qué es Metasploit y por qué importa conocerlo
Metasploit Framework es un conjunto de herramientas en Ruby, de código abierto, mantenido por Rapid7. Su propósito es estandarizar el trabajo de explotación: en lugar de buscar, compilar y adaptar un exploit suelto para cada vulnerabilidad, ofrece miles de módulos con una interfaz común, un catálogo de payloads intercambiables y una base de datos para llevar el registro de todo lo encontrado.
Desde el punto de vista defensivo, esa estandarización es una ventaja: como el framework es público, sus módulos, sus payloads por defecto y sus patrones de tráfico están muy documentados. Los equipos de detección conocen las firmas de Meterpreter, los nombres de los named pipes que crea, las cadenas de sus stagers y el comportamiento de sus shells. Entender el framework es, en la práctica, aprender a reconocer una parte enorme de la actividad post-explotación que se ve en incidentes reales.
- Edición Framework: la de línea de comandos, gratuita y abierta, incluida en Kali. Es la que se usa aquí
- Edición Pro: producto comercial de Rapid7 con interfaz web, informes y automatización; no la tratamos
- Herramientas relacionadas del mismo proyecto: msfvenom (generador de payloads) y msfdb (gestión de la base de datos)
2. Arquitectura: msfconsole y los tipos de módulo
La interfaz principal es msfconsole. Por debajo, todo son «módulos»: ficheros independientes, cada uno con un tipo que define qué hace y qué opciones acepta. Conocer esta taxonomía es media batalla, porque el flujo de trabajo consiste en encadenar módulos de distintos tipos.
| Tipo de módulo | Función | Ejemplo conceptual |
|---|---|---|
| exploit | Aprovecha una vulnerabilidad concreta para ejecutar código o comandos | Fallo en un servicio FTP antiguo de Metasploitable |
| payload | El código que se ejecuta si el exploit tiene éxito | Una shell inversa, o Meterpreter |
| auxiliary | Acciones que no son explotación: escaneo, fuzzing, enumeración, DoS | Escáner de versión SMB, login de servicios |
| post | Se ejecuta tras conseguir acceso: recolección de información, pivoting | Volcar hashes locales, listar procesos |
| encoder | Reescribe un payload para evitar bytes problemáticos | Codificación para sortear caracteres nulos |
| nop | Genera secuencias de relleno para estabilizar exploits | Almohadillado antes de un shellcode |
Sobre los payloads conviene distinguir dos familias. Los single (o inline) son autónomos: todo el código va en un bloque. Los staged se parten en dos: un pequeño stager que solo sirve para abrir la conexión de vuelta y descargar la segunda parte, el stage, que es el payload completo. Meterpreter casi siempre se entrega en modo staged, y ese intercambio en dos tiempos es una de las señales que los sistemas de detección buscan en la red.
3. Workspace y base de datos
Antes de tocar ningún exploit, un uso ordenado del framework empieza por la base de datos. Metasploit se apoya en PostgreSQL para guardar hosts, servicios, credenciales y botín de cada trabajo. Los workspaces separan un encargo de otro, igual que carpetas de proyecto.
# Arrancar el servicio de base de datos (una vez por sesion) sudo msfdb init # solo la primera vez sudo systemctl start postgresql # Ya dentro de msfconsole: db_status # comprobar conexion workspace -a lab-metasploitable # crear un espacio para este laboratorio workspace lab-metasploitable # cambiar a el hosts # listar equipos descubiertos services # listar servicios descubiertos creds # credenciales recogidas
Por qué la base de datos importa también para el defensor
El registro de hosts, servicios y credenciales de un pentest legítimo es la base del informe que se entrega al cliente · En un ejercicio de purple team, ese mismo registro se cruza con lo que vio el equipo de detección para medir cobertura · Reproducir un ataque conocido y comprobar qué alertas saltó es la forma estándar de validar reglas del SIEM
4. El flujo de trabajo estándar
Casi todo en msfconsole sigue el mismo ciclo de cinco pasos. Lo ilustramos con un servicio vulnerable de Metasploitable 2, sin entrar en el detalle de ningún exploit concreto.
| Paso | Comando | Qué hace |
|---|---|---|
| 1. Buscar | search <termino> | Localiza módulos por nombre, CVE, plataforma o servicio |
| 2. Seleccionar | use <ruta/del/modulo> | Carga el módulo y pasa a su contexto |
| 3. Configurar | show options / set RHOSTS … | Fija objetivo, puerto, payload y demás parámetros |
| 4. Comprobar | check | Cuando el módulo lo soporta, verifica si el objetivo es vulnerable sin lanzar nada |
| 5. Ejecutar | run (o exploit) | Lanza el módulo contra el objetivo configurado |
# Ejemplo ilustrativo contra el laboratorio (NO es una receta de intrusion real) msf6 > workspace lab-metasploitable msf6 > search type:auxiliary smb msf6 > use auxiliary/scanner/smb/smb_version msf6 auxiliary(scanner/smb/smb_version) > set RHOSTS 192.168.56.101 msf6 auxiliary(scanner/smb/smb_version) > run # [*] 192.168.56.101:445 - SMB Detected (version, dialecto, nombre de equipo...) # los resultados quedan guardados en 'services' del workspace
Los módulos de tipo auxiliary como el del ejemplo son un buen punto de partida para practicar: enumeran y verifican sin llegar a explotar nada, así que su impacto es mínimo incluso en el laboratorio. La mayoría de opciones se ajustan con set; las que aparecen como *Required* en show options son obligatorias. RHOSTS es el objetivo (o rango), LHOST y LPORT son la dirección y el puerto del atacante donde vuelve la conexión de un payload inverso.
5. Integración con Nmap
Metasploit no reinventa el reconocimiento: se apoya en Nmap, que ya cubrimos en su propio artículo. Hay dos vías. La primera es lanzar Nmap desde dentro de msfconsole con db_nmap, que ejecuta el escaneo y vuelca el resultado directamente en el workspace. La segunda es importar un XML de Nmap hecho por separado.
# Opcion A: escanear desde dentro y guardar en la base de datos msf6 > db_nmap -sV -O 192.168.56.101 # Opcion B: importar un escaneo previo # (fuera) nmap -sV -oX lab.xml 192.168.56.0/24 msf6 > db_import lab.xml msf6 > hosts # equipos ya poblados msf6 > services -p 445 # filtrar por puerto
Con los servicios cargados, search puede filtrarse por lo que realmente hay delante (`search type:exploit name:vsftpd`, por ejemplo), lo que evita perder el tiempo con módulos que no aplican. Este cruce entre inventario y catálogo de exploits es exactamente lo que hace un escáner de vulnerabilidades comercial por dentro.
6. Meterpreter y msfvenom, a alto nivel
6.1 Meterpreter
Meterpreter es el payload avanzado del framework. En lugar de darte una shell del sistema, carga en memoria un intérprete propio que ofrece comandos multiplataforma para tareas de post-explotación: moverse por el sistema de archivos, listar procesos, capturar la pantalla o pivotar hacia otras redes. Su diseño busca dejar poco en disco, lo que históricamente ha complicado el análisis forense… pero también ha hecho que su comportamiento en memoria y en red esté hoy muy caracterizado.
- Se comunica con el atacante por un canal cifrado sobre TCP, HTTP o HTTPS, con un patrón de reconexión regular
- Muchas acciones de post-explotación (por ejemplo el volcado de credenciales) crean named pipes y lanzan procesos con patrones reconocibles
- La migración de proceso —moverse a otro PID para sobrevivir— genera eventos de acceso y de creación de hilos remotos que Sysmon registra
6.2 msfvenom
msfvenom es la utilidad que genera payloads independientes en muchos formatos (ejecutable, script, biblioteca, shellcode). Es la herramienta legítima que un red team usa para preparar el artefacto acordado en un ejercicio. Aquí lo mencionamos solo para situarlo en el mapa: no vamos a cubrir codificadores, empaquetado ni ninguna técnica orientada a evadir controles de seguridad, porque ese conocimiento aporta poco al enfoque defensivo y mucho al ofensivo.
Dónde ponemos el límite en este artículo
Sin payloads funcionales ni líneas de msfvenom listas para copiar · Sin técnicas de evasión de antivirus/EDR, ofuscación ni cifrado de stagers para sortear defensas · Sin exploits contra software actual ni contra objetivos que no sean el laboratorio de la serie · El objetivo es comprender la herramienta para detectarla, no operarla contra nadie
7. El otro lado: detección y mitigación
Como el framework es público, defenderse de él es sobre todo cuestión de higiene y de telemetría. Estas son las líneas de trabajo principales.
7.1 Prevención
| Control | Qué consigue |
|---|---|
| Gestión de parches | La mayoría de exploits del framework atacan vulnerabilidades ya corregidas; parchear los neutraliza |
| Reducción de superficie | Menos servicios expuestos = menos módulos aplicables. Segmentar la red limita el pivoting |
| Mínimo privilegio y EDR | Frena la fase post-explotación: sin admin local, media agenda de ‘post’ deja de funcionar |
| Application allowlisting | Bloquea la ejecución de artefactos no aprobados en endpoints |
| Egress filtering | Un beacon necesita salir; restringir el tráfico saliente corta muchos payloads inversos |
7.2 Detección
- Firmas de red: los payloads staged por defecto tienen patrones conocidos; IDS como Suricata traen reglas para stagers de Meterpreter y para su handshake
- Beaconing: la reconexión a intervalos regulares hacia una misma IP externa se detecta con analítica de cadencia sobre logs de proxy y firewall
- JA3/JARM: la huella TLS del handler por defecto de Metasploit es identificable; muchos NDR la marcan
- Endpoint (Sysmon): creación de procesos hijos anómalos desde servicios, Event ID 8 (CreateRemoteThread) en la migración, Event ID 17/18 (named pipes) durante el volcado de credenciales, Event ID 7 (carga de imágenes sin firmar)
- Windows nativo: Event ID 4688 (nuevo proceso), 4624/4672 (inicio de sesión con privilegios), y accesos a LSASS (4656/4663) durante la recolección de credenciales
- Mapeo ATT&CK: la actividad cae en T1059 (intérpretes de comandos), T1055 (inyección en procesos), T1003 (volcado de credenciales) y TA0011 (mando y control)
# Revision rapida en un servidor propio: procesos con conexiones salientes inusuales
sudo ss -tnp | grep ESTAB
# Windows (PowerShell, sistema propio): procesos hijos de servicios de red
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Sysmon/Operational'; Id=1} |
Where-Object { $_.Message -match 'ParentImage.*(w3wp|sqlservr|svchost)' }Checklist Blue Team frente a frameworks de explotación
Inventario de activos y ciclo de parcheo con SLA para lo expuesto a internet · Sysmon desplegado con una configuración de referencia (SwiftOnSecurity / Olaf Hartong) y enviado al SIEM · Reglas de IDS/NDR actualizadas para stagers conocidos y huellas TLS por defecto · Analítica de beaconing sobre logs de proxy y DNS · Alertas por acceso a LSASS, CreateRemoteThread y named pipes sospechosos · EDR con bloqueo, no solo detección, y egress filtering en el perímetro · Ejercicios de validación periódicos (purple team) reproduciendo módulos concretos y midiendo qué se detecta
8. Montar el laboratorio
Para seguir esto por tu cuenta —por los dos lados— necesitas un entorno cerrado.
- Atacante: una VM de Kali Linux con red solo-anfitrión (VirtualBox: ‘Host-Only’, rango 192.168.56.x)
- Objetivo: Metasploitable 2 (o 3), o máquinas de VulnHub, en esa misma red y sin adaptador NAT ni puente
- Defensor: idealmente una tercera VM Windows/Linux con Sysmon y el reenvío de eventos activado, para ver la telemetría que genera cada acción
- Haz una instantánea limpia de cada VM antes de empezar: los ejercicios dejan el objetivo en un estado inconsistente
- Comprueba con `ip a` y un `ping` que ninguna VM llega a internet antes de lanzar nada
Recordatorio final
Metasploitable, DVWA y las imágenes de VulnHub son inseguras a propósito: una sola de ellas con salida a internet puede acabar comprometida en minutos y usada contra terceros · Cualquier objetivo que no hayas creado tú requiere autorización escrita del propietario, con alcance y fechas; sin ese documento, el simple intento ya es delito · Practica la detección con el mismo interés que la explotación: es la mitad que de verdad se paga en el mercado laboral
Conclusión
Metasploit es, en el fondo, un organizador: coge el caos de exploits y payloads sueltos y le pone una interfaz común, una base de datos y un flujo de trabajo repetible. Entender su arquitectura —los tipos de módulo, el ciclo search/use/set/run, el papel de Meterpreter— es entender cómo se estructura una buena parte de los ataques que se ven en incidentes reales.
Y precisamente porque es una herramienta pública y tan usada, su rastro está catalogado hasta el detalle. Un entorno con parches al día, superficie reducida, Sysmon bien configurado y analítica de beaconing convierte casi toda su actividad en alertas. Si trabajas en defensa, la sección 7 es tu hoja de ruta; si aspiras a red team, recuerda que sin el contrato y el alcance por escrito no hay ejercicio que valga.
Practica esto en el laboratorio guiado de GhostAcademy
GhostAcademy dedica un laboratorio completo a Metasploit y Meterpreter: msfconsole, msfvenom, explotación de EternalBlue contra Metasploitable 2, escalada de privilegios, pivoting y persistencia, con ejercicios guiados paso a paso.
Abrir el laboratorio de Metasploit →Referencias
El laboratorio interactivo de Metasploit y Meterpreter de GhostAcademy, con EternalBlue, pivoting y persistencia sobre Metasploitable 2 · docs.metasploit.com — Documentación oficial del framework · Metasploit Unleashed (Offensive Security) — Curso gratuito de introducción · information.rapid7.com/metasploitable-download.html — Metasploitable 2 para el laboratorio · MITRE ATT&CK — T1059, T1055, T1003 y la táctica TA0011 (Command and Control) · github.com/SwiftOnSecurity/sysmon-config y github.com/olafhartong/sysmon-modular — Configuraciones de Sysmon de referencia · Nuestros artículos sobre Nmap, John the Ripper y Hashcat, para el contexto de reconocimiento y credenciales
unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

