Concepto clave
El pentesting o prueba de penetración es una evaluación de seguridad autorizada que simula ataques reales para identificar vulnerabilidades en sistemas, redes o aplicaciones. Imagínalo como un ensayo de incendio para la ciberseguridad: en lugar de esperar a que ocurra un ataque real, contratas a expertos para que intenten "romper" tus defensas de manera controlada y descubran dónde están los puntos débiles antes de que los atacantes maliciosos lo hagan.
La metodología básica sigue un ciclo estructurado: reconocimiento (recopilar información sobre el objetivo), escaneo (identificar puertos y servicios activos), ganar acceso (explotar vulnerabilidades), mantener acceso (establecer persistencia si es necesario) y análisis y reporte (documentar hallazgos). Este proceso no es lineal; a menudo requiere volver atrás y ajustar tácticas basándose en lo que se descubre.
Cómo funciona en la práctica
Veamos un ejemplo simplificado de un pentest básico contra un servidor web:
- Reconocimiento: Usas herramientas como
whoisonslookuppara obtener información del dominio objetivo (ejemplo.com). - Escaneo: Ejecutas
nmap -sV ejemplo.compara descubrir puertos abiertos y versiones de servicios. Supongamos que encuentras el puerto 80 (HTTP) y 22 (SSH) abiertos. - Análisis de vulnerabilidades: Usas
nikto -h ejemplo.compara buscar vulnerabilidades conocidas en el servidor web. Encuentras que usa una versión antigua de Apache. - Explotación: Investigas si hay exploits para esa versión de Apache. Si encuentras uno, lo pruebas en un entorno controlado (como una máquina virtual de laboratorio).
- Reporte: Documentas todos los pasos, hallazgos y recomendaciones en un informe estructurado.
Recuerda: Siempre debes tener autorización por escrito antes de realizar cualquier pentest. Testear sistemas sin permiso es ilegal.
Caso de estudio
Una pequeña empresa contrata a un analista de seguridad para evaluar su sitio web corporativo. El analista sigue estos pasos:
| Fase | Herramienta | Resultado |
|---|---|---|
| Reconocimiento | theHarvester | Encuentra subdominios no documentados |
| Escaneo | Nmap | Puerto 443 (HTTPS) con certificado SSL débil |
| Vulnerabilidades | OWASP ZAP | Cross-Site Scripting (XSS) en formulario de contacto |
| Explotación | Manual | Demuestra el XSS inyectando código benigno |
| Reporte | Plantilla personalizada | Prioriza el XSS como riesgo alto, recomienda parchear |
El informe final incluye evidencia (capturas de pantalla), puntuación de riesgo (alta/medio/baja) y pasos de remediación específicos. La empresa implementa las correcciones y mejora su postura de seguridad.
Errores comunes
- Saltarse la fase de reconocimiento: Muchos principiantes van directamente al escaneo sin investigar primero. Esto puede hacer que pierdan información crítica como subdominios o tecnologías ocultas. Solución: Dedica al menos 20% del tiempo a recopilar inteligencia pasiva.
- No documentar durante el proceso: Esperar hasta el final para tomar notas lleva a olvidar detalles importantes. Solución: Usa herramientas como KeepNote o Dradis para documentar en tiempo real.
- Probar exploits sin entenderlos: Ejecutar ciegamente scripts de explotación puede causar daños o alertar a sistemas de detección. Solución: Estudia el código del exploit y prueba primero en un entorno de laboratorio aislado.
- Informes poco claros: Usar lenguaje demasiado técnico o no priorizar hallazgos. Solución: Escribe para una audiencia no técnica (gerentes) y usa una escala de riesgo simple.
Checklist de dominio
- Puedo explicar las 5 fases del ciclo de pentesting sin consultar notas.
- He realizado al menos un escaneo completo con Nmap identificando puertos y servicios.
- Sé cómo buscar vulnerabilidades conocidas usando bases de datos como Exploit-DB.
- Puedo crear un informe básico que incluya: resumen ejecutivo, metodología, hallazgos y recomendaciones.
- Entiendo la diferencia entre pentesting ético y hacking malicioso, y la importancia de la autorización.
- He configurado y usado al menos 3 herramientas de Kali Linux en un escenario práctico.
- Puedo identificar y evitar errores comunes como no documentar o saltarse fases.
Simulación de Pentest Básico y Reporte
En este ejercicio, realizarás un mini-pentest contra un servidor web de práctica y generarás un informe profesional. Sigue estos pasos:
- Configura el entorno: Descarga e instala la máquina virtual "Metasploitable2" (disponible gratuitamente) en VirtualBox. Esta es tu máquina objetivo para pruebas.
- Reconocimiento: Desde Kali Linux, usa
ifconfigpara encontrar la IP de Metasploitable2 en tu red local. Anota esta IP. - Escaneo: Ejecuta
nmap -sV -O [IP_objetivo]para identificar puertos abiertos y sistemas operativos. Guarda los resultados en un archivo:nmap -oN escaneo.txt [IP_objetivo]. - Análisis de vulnerabilidades: Usa
nikto -h http://[IP_objetivo]para escanear el servidor web. Toma capturas de pantalla de cualquier hallazgo interesante. - Reporte: Crea un documento con las siguientes secciones:
- Resumen ejecutivo (2-3 oraciones describiendo el objetivo y hallazgos principales)
- Metodología (lista de herramientas y pasos seguidos)
- Hallazgos (tabla con vulnerabilidades encontradas, riesgo asignado y evidencia)
- Recomendaciones (3 acciones concretas para mejorar la seguridad)
Tiempo estimado: 60-90 minutos. Asegúrate de trabajar solo en tu red local aislada.
Pistas- Si no encuentras la IP de Metasploitable2, revisa la configuración de red en VirtualBox (usualmente NAT o red interna).
- Para el reporte, usa un formato simple en un procesador de texto; no necesita ser complejo, pero sí claro y profesional.
- Si nikto no muestra resultados, verifica que el servidor web en Metasploitable2 esté corriendo (puerto 80 o 443).
Evalua tu comprension
Completa el quiz interactivo de arriba para ganar XP.