Saltar al contenido

Metasploit Framework desde cero en un laboratorio controlado

    Metasploit Framework

    desde cero en un laboratorio controlado

    Herramientas de Kali Linux  |  unfantasmaenelsistema.com

    En la serie ya hemos visto el reconocimiento con Nmap, la auditoría web con Burp Suite y el descifrado de contraseñas con John y Hashcat. Falta la pieza que la mayoría de la gente asocia con la palabra «hacking»: el framework de explotación. Metasploit es, con diferencia, el más usado —tanto por equipos de red team con contrato como por atacantes reales— y precisamente por eso conviene entender cómo está construido: para reconocer su rastro y defenderse de él.

    Este artículo es una introducción divulgativa a la arquitectura del framework y a su flujo de trabajo básico, ejecutado íntegramente contra Metasploitable 2, una máquina virtual deliberadamente vulnerable, en una red aislada sin salida a internet. No es una guía de intrusión: no encontrarás recetas contra objetivos reales ni técnicas de evasión de antivirus. El objetivo es que, al terminar, entiendas qué hace cada componente y por qué un SOC bien montado detecta casi todo lo que genera.

    Qué aprenderás en este artículo

    Qué es Metasploit y de qué partes se compone (msfconsole y los tipos de módulo) · Cómo se usa el workspace y la base de datos para organizar una auditoría · El flujo estándar de trabajo: search, use, set, check, run · Cómo se integra con Nmap importando resultados · Qué es Meterpreter a alto nivel y qué es msfvenom · Cómo se detecta y se mitiga la actividad típica del framework

    Uso legal y responsable — léelo antes de seguir

    Ejecutar un exploit contra un sistema que no es tuyo y sin autorización expresa y por escrito es un delito de acceso ilícito y de daños informáticos (en España, arts. 197 bis, 197 ter y 264 del Código Penal), con independencia de que causes o no un perjuicio visible · Todo lo que se muestra aquí apunta a Metasploitable 2 en la red 192.168.56.x: máquinas virtuales propias, en modo solo-anfitrión, sin conexión a internet · Metasploitable y compañía son intencionadamente inseguras; exponerlas a una red con salida convierte tu propio laboratorio en un riesgo para terceros · Un pentest legítimo se sostiene sobre un contrato con alcance definido, ventana de tiempo y autorización del propietario del sistema. Sin ese papel, no hay «solo estaba probando»

    1. Qué es Metasploit y por qué importa conocerlo

    Metasploit Framework es un conjunto de herramientas en Ruby, de código abierto, mantenido por Rapid7. Su propósito es estandarizar el trabajo de explotación: en lugar de buscar, compilar y adaptar un exploit suelto para cada vulnerabilidad, ofrece miles de módulos con una interfaz común, un catálogo de payloads intercambiables y una base de datos para llevar el registro de todo lo encontrado.

    Desde el punto de vista defensivo, esa estandarización es una ventaja: como el framework es público, sus módulos, sus payloads por defecto y sus patrones de tráfico están muy documentados. Los equipos de detección conocen las firmas de Meterpreter, los nombres de los named pipes que crea, las cadenas de sus stagers y el comportamiento de sus shells. Entender el framework es, en la práctica, aprender a reconocer una parte enorme de la actividad post-explotación que se ve en incidentes reales.

    • Edición Framework: la de línea de comandos, gratuita y abierta, incluida en Kali. Es la que se usa aquí
    • Edición Pro: producto comercial de Rapid7 con interfaz web, informes y automatización; no la tratamos
    • Herramientas relacionadas del mismo proyecto: msfvenom (generador de payloads) y msfdb (gestión de la base de datos)

    2. Arquitectura: msfconsole y los tipos de módulo

    La interfaz principal es msfconsole. Por debajo, todo son «módulos»: ficheros independientes, cada uno con un tipo que define qué hace y qué opciones acepta. Conocer esta taxonomía es media batalla, porque el flujo de trabajo consiste en encadenar módulos de distintos tipos.

    Tipo de móduloFunciónEjemplo conceptual
    exploitAprovecha una vulnerabilidad concreta para ejecutar código o comandosFallo en un servicio FTP antiguo de Metasploitable
    payloadEl código que se ejecuta si el exploit tiene éxitoUna shell inversa, o Meterpreter
    auxiliaryAcciones que no son explotación: escaneo, fuzzing, enumeración, DoSEscáner de versión SMB, login de servicios
    postSe ejecuta tras conseguir acceso: recolección de información, pivotingVolcar hashes locales, listar procesos
    encoderReescribe un payload para evitar bytes problemáticosCodificación para sortear caracteres nulos
    nopGenera secuencias de relleno para estabilizar exploitsAlmohadillado antes de un shellcode

    Sobre los payloads conviene distinguir dos familias. Los single (o inline) son autónomos: todo el código va en un bloque. Los staged se parten en dos: un pequeño stager que solo sirve para abrir la conexión de vuelta y descargar la segunda parte, el stage, que es el payload completo. Meterpreter casi siempre se entrega en modo staged, y ese intercambio en dos tiempos es una de las señales que los sistemas de detección buscan en la red.

    3. Workspace y base de datos

    Antes de tocar ningún exploit, un uso ordenado del framework empieza por la base de datos. Metasploit se apoya en PostgreSQL para guardar hosts, servicios, credenciales y botín de cada trabajo. Los workspaces separan un encargo de otro, igual que carpetas de proyecto.

    # Arrancar el servicio de base de datos (una vez por sesion)
    sudo msfdb init        # solo la primera vez
    sudo systemctl start postgresql
     
    # Ya dentro de msfconsole:
    db_status                       # comprobar conexion
    workspace -a lab-metasploitable # crear un espacio para este laboratorio
    workspace lab-metasploitable    # cambiar a el
     
    hosts                           # listar equipos descubiertos
    services                        # listar servicios descubiertos
    creds                           # credenciales recogidas

    Por qué la base de datos importa también para el defensor

    El registro de hosts, servicios y credenciales de un pentest legítimo es la base del informe que se entrega al cliente · En un ejercicio de purple team, ese mismo registro se cruza con lo que vio el equipo de detección para medir cobertura · Reproducir un ataque conocido y comprobar qué alertas saltó es la forma estándar de validar reglas del SIEM

    4. El flujo de trabajo estándar

    Casi todo en msfconsole sigue el mismo ciclo de cinco pasos. Lo ilustramos con un servicio vulnerable de Metasploitable 2, sin entrar en el detalle de ningún exploit concreto.

    PasoComandoQué hace
    1. Buscarsearch <termino>Localiza módulos por nombre, CVE, plataforma o servicio
    2. Seleccionaruse <ruta/del/modulo>Carga el módulo y pasa a su contexto
    3. Configurarshow options / set RHOSTS …Fija objetivo, puerto, payload y demás parámetros
    4. ComprobarcheckCuando el módulo lo soporta, verifica si el objetivo es vulnerable sin lanzar nada
    5. Ejecutarrun (o exploit)Lanza el módulo contra el objetivo configurado
    # Ejemplo ilustrativo contra el laboratorio (NO es una receta de intrusion real)
    msf6 > workspace lab-metasploitable
    msf6 > search type:auxiliary smb
    msf6 > use auxiliary/scanner/smb/smb_version
    msf6 auxiliary(scanner/smb/smb_version) > set RHOSTS 192.168.56.101
    msf6 auxiliary(scanner/smb/smb_version) > run
     
    # [*] 192.168.56.101:445 - SMB Detected (version, dialecto, nombre de equipo...)
    # los resultados quedan guardados en 'services' del workspace

    Los módulos de tipo auxiliary como el del ejemplo son un buen punto de partida para practicar: enumeran y verifican sin llegar a explotar nada, así que su impacto es mínimo incluso en el laboratorio. La mayoría de opciones se ajustan con set; las que aparecen como *Required* en show options son obligatorias. RHOSTS es el objetivo (o rango), LHOST y LPORT son la dirección y el puerto del atacante donde vuelve la conexión de un payload inverso.

    5. Integración con Nmap

    Metasploit no reinventa el reconocimiento: se apoya en Nmap, que ya cubrimos en su propio artículo. Hay dos vías. La primera es lanzar Nmap desde dentro de msfconsole con db_nmap, que ejecuta el escaneo y vuelca el resultado directamente en el workspace. La segunda es importar un XML de Nmap hecho por separado.

    # Opcion A: escanear desde dentro y guardar en la base de datos
    msf6 > db_nmap -sV -O 192.168.56.101
     
    # Opcion B: importar un escaneo previo
    #   (fuera)  nmap -sV -oX lab.xml 192.168.56.0/24
    msf6 > db_import lab.xml
     
    msf6 > hosts        # equipos ya poblados
    msf6 > services -p 445   # filtrar por puerto

    Con los servicios cargados, search puede filtrarse por lo que realmente hay delante (`search type:exploit name:vsftpd`, por ejemplo), lo que evita perder el tiempo con módulos que no aplican. Este cruce entre inventario y catálogo de exploits es exactamente lo que hace un escáner de vulnerabilidades comercial por dentro.

    6. Meterpreter y msfvenom, a alto nivel

    6.1 Meterpreter

    Meterpreter es el payload avanzado del framework. En lugar de darte una shell del sistema, carga en memoria un intérprete propio que ofrece comandos multiplataforma para tareas de post-explotación: moverse por el sistema de archivos, listar procesos, capturar la pantalla o pivotar hacia otras redes. Su diseño busca dejar poco en disco, lo que históricamente ha complicado el análisis forense… pero también ha hecho que su comportamiento en memoria y en red esté hoy muy caracterizado.

    • Se comunica con el atacante por un canal cifrado sobre TCP, HTTP o HTTPS, con un patrón de reconexión regular
    • Muchas acciones de post-explotación (por ejemplo el volcado de credenciales) crean named pipes y lanzan procesos con patrones reconocibles
    • La migración de proceso —moverse a otro PID para sobrevivir— genera eventos de acceso y de creación de hilos remotos que Sysmon registra

    6.2 msfvenom

    msfvenom es la utilidad que genera payloads independientes en muchos formatos (ejecutable, script, biblioteca, shellcode). Es la herramienta legítima que un red team usa para preparar el artefacto acordado en un ejercicio. Aquí lo mencionamos solo para situarlo en el mapa: no vamos a cubrir codificadores, empaquetado ni ninguna técnica orientada a evadir controles de seguridad, porque ese conocimiento aporta poco al enfoque defensivo y mucho al ofensivo.

    Dónde ponemos el límite en este artículo

    Sin payloads funcionales ni líneas de msfvenom listas para copiar · Sin técnicas de evasión de antivirus/EDR, ofuscación ni cifrado de stagers para sortear defensas · Sin exploits contra software actual ni contra objetivos que no sean el laboratorio de la serie · El objetivo es comprender la herramienta para detectarla, no operarla contra nadie

    7. El otro lado: detección y mitigación

    Como el framework es público, defenderse de él es sobre todo cuestión de higiene y de telemetría. Estas son las líneas de trabajo principales.

    7.1 Prevención

    ControlQué consigue
    Gestión de parchesLa mayoría de exploits del framework atacan vulnerabilidades ya corregidas; parchear los neutraliza
    Reducción de superficieMenos servicios expuestos = menos módulos aplicables. Segmentar la red limita el pivoting
    Mínimo privilegio y EDRFrena la fase post-explotación: sin admin local, media agenda de ‘post’ deja de funcionar
    Application allowlistingBloquea la ejecución de artefactos no aprobados en endpoints
    Egress filteringUn beacon necesita salir; restringir el tráfico saliente corta muchos payloads inversos

    7.2 Detección

    • Firmas de red: los payloads staged por defecto tienen patrones conocidos; IDS como Suricata traen reglas para stagers de Meterpreter y para su handshake
    • Beaconing: la reconexión a intervalos regulares hacia una misma IP externa se detecta con analítica de cadencia sobre logs de proxy y firewall
    • JA3/JARM: la huella TLS del handler por defecto de Metasploit es identificable; muchos NDR la marcan
    • Endpoint (Sysmon): creación de procesos hijos anómalos desde servicios, Event ID 8 (CreateRemoteThread) en la migración, Event ID 17/18 (named pipes) durante el volcado de credenciales, Event ID 7 (carga de imágenes sin firmar)
    • Windows nativo: Event ID 4688 (nuevo proceso), 4624/4672 (inicio de sesión con privilegios), y accesos a LSASS (4656/4663) durante la recolección de credenciales
    • Mapeo ATT&CK: la actividad cae en T1059 (intérpretes de comandos), T1055 (inyección en procesos), T1003 (volcado de credenciales) y TA0011 (mando y control)
    # Revision rapida en un servidor propio: procesos con conexiones salientes inusuales
    sudo ss -tnp | grep ESTAB
     
    # Windows (PowerShell, sistema propio): procesos hijos de servicios de red
    Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Sysmon/Operational'; Id=1} |
      Where-Object { $_.Message -match 'ParentImage.*(w3wp|sqlservr|svchost)' }

    Checklist Blue Team frente a frameworks de explotación

    Inventario de activos y ciclo de parcheo con SLA para lo expuesto a internet · Sysmon desplegado con una configuración de referencia (SwiftOnSecurity / Olaf Hartong) y enviado al SIEM · Reglas de IDS/NDR actualizadas para stagers conocidos y huellas TLS por defecto · Analítica de beaconing sobre logs de proxy y DNS · Alertas por acceso a LSASS, CreateRemoteThread y named pipes sospechosos · EDR con bloqueo, no solo detección, y egress filtering en el perímetro · Ejercicios de validación periódicos (purple team) reproduciendo módulos concretos y midiendo qué se detecta

    8. Montar el laboratorio

    Para seguir esto por tu cuenta —por los dos lados— necesitas un entorno cerrado.

    • Atacante: una VM de Kali Linux con red solo-anfitrión (VirtualBox: ‘Host-Only’, rango 192.168.56.x)
    • Objetivo: Metasploitable 2 (o 3), o máquinas de VulnHub, en esa misma red y sin adaptador NAT ni puente
    • Defensor: idealmente una tercera VM Windows/Linux con Sysmon y el reenvío de eventos activado, para ver la telemetría que genera cada acción
    • Haz una instantánea limpia de cada VM antes de empezar: los ejercicios dejan el objetivo en un estado inconsistente
    • Comprueba con `ip a` y un `ping` que ninguna VM llega a internet antes de lanzar nada

    Recordatorio final

    Metasploitable, DVWA y las imágenes de VulnHub son inseguras a propósito: una sola de ellas con salida a internet puede acabar comprometida en minutos y usada contra terceros · Cualquier objetivo que no hayas creado tú requiere autorización escrita del propietario, con alcance y fechas; sin ese documento, el simple intento ya es delito · Practica la detección con el mismo interés que la explotación: es la mitad que de verdad se paga en el mercado laboral

    Conclusión

    Metasploit es, en el fondo, un organizador: coge el caos de exploits y payloads sueltos y le pone una interfaz común, una base de datos y un flujo de trabajo repetible. Entender su arquitectura —los tipos de módulo, el ciclo search/use/set/run, el papel de Meterpreter— es entender cómo se estructura una buena parte de los ataques que se ven en incidentes reales.

    Y precisamente porque es una herramienta pública y tan usada, su rastro está catalogado hasta el detalle. Un entorno con parches al día, superficie reducida, Sysmon bien configurado y analítica de beaconing convierte casi toda su actividad en alertas. Si trabajas en defensa, la sección 7 es tu hoja de ruta; si aspiras a red team, recuerda que sin el contrato y el alcance por escrito no hay ejercicio que valga.

    Practica esto en el laboratorio guiado de GhostAcademy

    GhostAcademy dedica un laboratorio completo a Metasploit y Meterpreter: msfconsole, msfvenom, explotación de EternalBlue contra Metasploitable 2, escalada de privilegios, pivoting y persistencia, con ejercicios guiados paso a paso.

    Abrir el laboratorio de Metasploit →

    Referencias

    El laboratorio interactivo de Metasploit y Meterpreter de GhostAcademy, con EternalBlue, pivoting y persistencia sobre Metasploitable 2 · docs.metasploit.com — Documentación oficial del framework · Metasploit Unleashed (Offensive Security) — Curso gratuito de introducción · information.rapid7.com/metasploitable-download.html — Metasploitable 2 para el laboratorio · MITRE ATT&CK — T1059, T1055, T1003 y la táctica TA0011 (Command and Control) · github.com/SwiftOnSecurity/sysmon-config y github.com/olafhartong/sysmon-modular — Configuraciones de Sysmon de referencia · Nuestros artículos sobre Nmap, John the Ripper y Hashcat, para el contexto de reconocimiento y credenciales

    unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

    Resumen de privacidad

    Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.