Explotación
El Propósito de la Explotación
La explotación es la fase donde demuestras que una vulnerabilidad es real aprovechándola para obtener acceso o un efecto controlado. Su propósito no es causar daño, sino probar impacto: convertir un hallazgo teórico en evidencia concreta de que un atacante podría comprometer el sistema. Esta demostración es lo que convence a la dirección de priorizar la remediación.
En un engagement profesional, la explotación es deliberada y medida. No se trata de lanzar todo lo que tienes contra un objetivo, sino de seleccionar pruebas que demuestren riesgo real sin comprometer la estabilidad ni la integridad de los sistemas. Un pentester responsable explota lo necesario para probar el punto y se detiene ahí.
Es crucial mantenerse dentro del scope y de las reglas de engagement en todo momento. Algunas vulnerabilidades pueden demostrarse de forma segura; otras, especialmente las que pueden causar denegación de servicio o corrupción de datos, suelen documentarse sin explotarse activamente para evitar daños.
Marco ético: la explotación prueba impacto, no causa daño. Se ejecuta solo dentro del alcance, de forma medida y reversible, y nunca se extraen datos más allá de lo mínimo para demostrar el acceso.
Explotación Responsable
La regla de oro de la explotación ética es: probar impacto sin causar daño. Antes de ejecutar cualquier exploit, evalúa sus posibles efectos secundarios. Un exploit que puede colgar un servicio en producción rara vez vale la interrupción; en esos casos basta con documentar que la condición vulnerable existe y explicar el impacto potencial.
La comunicación es parte de la explotación responsable. Si descubres una vulnerabilidad crítica activamente explotable, las reglas de engagement suelen indicar notificar de inmediato al cliente en lugar de esperar al reporte final. Lo mismo aplica si durante la explotación notas que un sistema ya está comprometido por un tercero: detienes y comunicas.
También debes cuidar los datos. Si la explotación te da acceso a información sensible, no la extraes más allá de lo necesario para probar el acceso. Tomar una captura mínima que demuestre el compromiso es suficiente; copiar bases de datos enteras excede el propósito y puede violar regulaciones de privacidad.
El Framework Metasploit
Metasploit es el framework de explotación más conocido del mundo. Provee una colección organizada de módulos: exploits que aprovechan vulnerabilidades específicas, payloads que se ejecutan tras el compromiso, encoders, y módulos auxiliares para escaneo y enumeración. Su consola msfconsole ofrece una interfaz unificada para buscar, configurar y lanzar estos módulos.
El flujo típico en Metasploit es buscar un módulo relevante para la vulnerabilidad identificada, configurar sus opciones (como el host objetivo y el puerto), seleccionar un payload adecuado y verificar que el objetivo sea vulnerable antes de cualquier acción medida. El framework gestiona gran parte de la complejidad técnica, lo que permite enfocarte en la lógica del engagement.
El siguiente flujo es ilustrativo y conceptual, con placeholders genéricos y una IP de laboratorio autorizada. Muestra cómo se navega la consola, no un ataque llave en mano:
msfconsole # abre la consola del framework
search type:exploit <servicio> # busca módulos por servicio/CVE
use <ruta/del/modulo> # selecciona un módulo
show options # muestra parámetros requeridos
set RHOSTS 10.0.0.5 # define el objetivo (IP de laboratorio autorizada)
set LHOST 10.0.0.10 # define el host de escucha
check # verifica si el objetivo es vulnerable, sin explotar
El ejemplo se detiene deliberadamente antes de ejecutar exploit o run. El paso check es una verificación no destructiva: confirma si el objetivo es susceptible sin lanzar el payload. En un engagement real, la ejecución final ocurre solo dentro del alcance, de forma medida, y con plena conciencia de los efectos secundarios. Entender cada paso importa más que memorizar comandos.
Metasploit también incluye Meterpreter, un payload avanzado que ofrece una sesión interactiva de post-explotación. Su valor educativo es enorme: permite entender cómo funcionan los exploits sin escribir cada uno desde cero. Aun así, comprender los fundamentos detrás de cada módulo es lo que distingue a un pentester de un mero operador de herramientas.
Entendiendo los Payloads
Un payload es el código que se ejecuta en el sistema objetivo después de que un exploit tiene éxito. Conceptualmente, el exploit es la llave que abre la puerta y el payload es lo que haces una vez dentro. Los payloads pueden ser tan simples como abrir una shell o tan sofisticados como una sesión interactiva con múltiples capacidades.
Existen dos modelos principales de conexión. Un bind shell abre un puerto en el objetivo a la espera de que el atacante se conecte, mientras que un reverse shell hace que el objetivo se conecte de vuelta al atacante, lo que suele sortear mejor los firewalls salientes permisivos. Entender esta diferencia es clave para elegir el payload adecuado según la topología de red.
También conviene distinguir payloads staged y stageless. Un payload staged se entrega en etapas: un pequeño componente inicial (stager) descarga el resto en tiempo de ejecución, lo que reduce el tamaño inicial. Un payload stageless viaja completo en una sola pieza, más robusto pero más pesado. La elección depende de las restricciones de la red y del tamaño tolerable.
Existe también msfvenom, la utilidad de Metasploit para generar payloads independientes en distintos formatos. A nivel conceptual, sirve para producir el código que demostraría la ejecución en el objetivo cuando el vector no proviene de un módulo listo. En este curso lo mencionamos como concepto: generar artefactos armados queda fuera del alcance formativo y solo tiene sentido dentro de un engagement autorizado.
En un contexto ético, los payloads se usan para demostrar acceso, no para instalar malware persistente ni causar daño. La distinción es fundamental: las mismas técnicas que un atacante usaría para mantener control prolongado, el pentester las usa de forma acotada y reversible, eliminando cualquier rastro al finalizar y documentando todo lo realizado.
Aplicaciones Web y Otras Superficies
No toda explotación pasa por Metasploit. En aplicaciones web, Burp Suite es la herramienta central: su proxy permite interceptar y manipular peticiones para probar inyección SQL, cross-site scripting, fallos de control de acceso y más. Burp Repeater deja reenviar una misma petición ajustada manualmente, e Intruder automatiza variaciones controladas sobre un parámetro hasta confirmar el impacto.
Cada superficie tiene su toolkit. Los siguientes comandos son ilustrativos (sin objetivos reales), para mostrar la forma de invocación, no para copiarlos contra un sistema:
hydra -l <usuario> -P <lista> <servicio>://<host-autorizado> # fuerza bruta autorizada
hashcat -m <modo> <hashes.txt> <diccionario> # evalúa fortaleza de hashes capturados
john --wordlist=<diccionario> <hashes.txt> # alternativa a hashcat
Hydra prueba combinaciones de credenciales contra servicios, siempre con autorización explícita. Para hashes capturados legítimamente durante el engagement, Hashcat o John the Ripper ayudan a evaluar la fortaleza de las contraseñas de la organización. La elección de la herramienta depende de la vulnerabilidad y el objetivo: lo importante es entender qué hace cada una y por qué, en lugar de ejecutar comandos a ciegas. Un pentester maduro razona sobre el impacto antes de actuar.
Clases de Vulnerabilidades Explotables
Entender qué tipo de falla estás aprovechando aclara por qué un exploit funciona y cómo se remedia. A alto nivel, las clases más comunes son:
- Inyección: el sistema interpreta datos controlados por el usuario como código o comandos (inyección SQL, de comandos, LDAP). La causa raíz es mezclar datos y control sin una separación estricta.
- Corrupción de memoria: desbordamientos de buffer y errores de gestión de memoria en software nativo que permiten alterar el flujo de ejecución. Son técnicamente complejos y muy sensibles a la versión exacta.
- Fallos de autenticación y control de acceso: credenciales débiles, sesiones mal gestionadas o autorización que no valida correctamente el nivel de privilegio del usuario.
- Configuraciones inseguras: servicios expuestos con valores por defecto, permisos laxos o funciones de depuración habilitadas en producción.
- Deserialización insegura: procesar objetos serializados provenientes de fuentes no confiables, lo que puede derivar en ejecución de código.
Reconocer la clase te ayuda a razonar sobre el impacto real y, sobre todo, a redactar una recomendación de remediación que ataque la causa raíz y no solo el síntoma. Un pentester que entiende la clase de la falla comunica mejor el riesgo que uno que solo sabe que "el exploit anduvo".
Mapa MITRE ATT&CK
Es útil ubicar la explotación en un marco reconocido. MITRE ATT&CK cataloga tácticas y técnicas adversarias observadas en el mundo real. La explotación toca directamente dos tácticas: Initial Access (TA0001), el conjunto de técnicas para obtener el primer punto de apoyo en la red, y Execution (TA0002), las técnicas para ejecutar código controlado por el atacante en un sistema.
Mapear tus hallazgos a estas tácticas hace el reporte más claro y accionable: el cliente entiende no solo qué encontraste, sino cómo encaja en el comportamiento real de un adversario y qué controles defensivos corresponden a cada etapa.
Mini-Escenario: Explotación Medida
Imagina que confirmas un servicio vulnerable en el laboratorio autorizado. Ejecutas check y el objetivo responde como susceptible. Antes de avanzar, evalúas el efecto secundario: el módulo tiene fama de poder colgar el servicio si la versión no coincide exactamente. Ahí la decisión responsable es no explotar activamente: documentas la condición, la versión detectada y el impacto potencial, y lo marcas como confirmado por verificación no destructiva.
En cambio, si el exploit es estable y reversible, obtienes una sesión, tomas una captura mínima que prueba el acceso (por ejemplo, el identificador del usuario del proceso) y cierras la sesión. No copias datos, no dejas artefactos y registras cada paso. El criterio siempre es el mismo: cuando el riesgo de daño supera el valor de la demostración, documenta en vez de explotar.
Después de Ganar Acceso
Obtener acceso es un hito, pero el trabajo no termina ahí. Cada compromiso debe documentarse meticulosamente: qué vulnerabilidad se explotó, con qué herramienta, qué acceso se obtuvo y qué evidencia lo respalda. Esta documentación alimenta tanto la fase de post-explotación como el reporte final.
La explotación exitosa también abre la puerta a la siguiente fase: la post-explotación, donde evalúas hasta dónde podría llegar realmente un atacante. Pero antes de avanzar, asegúrate de haber registrado el estado del sistema y de poder restaurar cualquier cambio que hayas hecho. La reversibilidad y la limpieza son responsabilidades del pentester ético, no opciones.
Checklist de Explotación Responsable
- Verificación previa: usa
checku otra prueba no destructiva antes de explotar; confirma que el objetivo está dentro del alcance autorizado. - Evaluación de riesgo: si hay riesgo de DoS o corrupción de datos, documenta en vez de explotar activamente.
- Minimización de datos: extrae solo la evidencia mínima que demuestre el acceso; nunca copies bases enteras.
- Reversibilidad: deja el sistema como lo encontraste; elimina sesiones, artefactos y cualquier cambio realizado.
- Documentación: registra vulnerabilidad, herramienta, payload, acceso obtenido y evidencia, mapeados a MITRE ATT&CK.
- Notificación de críticos: ante una vulnerabilidad crítica activamente explotable o un sistema ya comprometido, detén y notifica al cliente de inmediato.