Concepto clave
El pentesting es una metodología estructurada para evaluar la seguridad de sistemas informáticos simulando ataques reales. Se divide en fases que siguen un flujo lógico: primero, reconocimiento (recopilar información sobre el objetivo), luego escaneo (identificar vulnerabilidades específicas) y finalmente explotación (intentar aprovechar esas vulnerabilidades).
Imagina que eres un cerrajero profesional evaluando la seguridad de una casa. Primero, observas desde fuera (reconocimiento: puertas, ventanas, alarmas). Luego, pruebas cada cerradura con herramientas especializadas (escaneo: buscar puntos débiles). Finalmente, intentas abrir una cerradura vulnerable (explotación: demostrar que se puede entrar). En ciberseguridad, este proceso ayuda a encontrar y corregir fallos antes que los atacantes reales.
Cómo funciona en la práctica
Vamos a aplicar las tres fases a un servidor web hipotético usando Kali Linux. Supongamos que el objetivo es ejemplo.com (un dominio de prueba).
- Reconocimiento: Usa
whois ejemplo.compara obtener datos del dominio, ynslookup ejemplo.compara ver direcciones IP. Esto te da una visión inicial. - Escaneo: Ejecuta
nmap -sV -O ejemplo.compara descubrir puertos abiertos, servicios y sistema operativo. Por ejemplo, podrías encontrar el puerto 80 (HTTP) con Apache 2.4. - Explotación: Si el escaneo revela una versión vulnerable de Apache, usa una herramienta como
metasploitpara intentar un ataque controlado. Por ejemplo, buscar un exploit para CVE-2021-41773.
Este flujo asegura que no saltes etapas: sin reconocimiento, podrías escanear objetivos equivocados; sin escaneo, no sabrías qué explotar.
Caso de estudio
Una empresa contrata un pentest para su sitio web tiendaonline.com. Como analista, sigues este proceso:
| Fase | Herramienta en Kali | Resultado clave |
|---|---|---|
| Reconocimiento | theHarvester | Encuentra subdominios: admin.tiendaonline.com |
| Escaneo | nmap -p 1-1000 | Puerto 22 (SSH) abierto con versión antigua |
| Explotación | searchsploit + metasploit | Explota vulnerabilidad en SSH para acceso no autorizado |
En un pentest real, siempre se obtiene autorización por escrito y se trabaja en entornos aislados para evitar daños.
El informe final mostraría cómo el reconocimiento llevó al escaneo, que identificó el SSH vulnerable, permitiendo la explotación. Esto ayuda a la empresa a parchear el servicio.
Errores comunes
- Saltarse el reconocimiento: Ir directamente al escaneo puede hacer que pierdas información crítica, como subdominios ocultos. Solución: Dedica al menos 20% del tiempo a recopilar datos con herramientas como
whoisodnsrecon. - Escaneo agresivo sin permiso: Usar opciones como
-Aen nmap sin autorización puede bloquear sistemas o alertar a defensores. Solución: Empieza con escaneos silenciosos (-sS) y ajusta la velocidad. - Explotar sin verificar impactos: Lanzar un exploit sin entenderlo puede causar caídas del servicio. Solución: Prueba primero en un laboratorio controlado y revisa documentación.
- Olvidar documentar pasos: No tomar notas dificulta reproducir hallazgos para el informe. Solución: Usa herramientas como
keepnoteo un cuaderno digital desde el inicio.
Checklist de dominio
- ¿Puedo recopilar información básica de un dominio usando comandos como
whoisynslookup? - ¿Sé escanear puertos y servicios con
nmap, interpretando resultados como estados (open, filtered)? - ¿Identifico al menos una vulnerabilidad común (ej., servicio desactualizado) a partir de un escaneo?
- ¿Utilizo
searchsploitpara buscar exploits relacionados con vulnerabilidades encontradas? - ¿Ejecuto un exploit simple en un entorno de prueba (ej., máquina virtual) usando
metasploit? - ¿Documento cada paso con herramientas o notas para un futuro informe?
- ¿Comprendo la importancia de la autorización y el alcance definido antes de empezar?
Pentest básico a un servidor web local
En este ejercicio, aplicarás las fases de reconocimiento, escaneo y explotación en un entorno seguro. Usarás Kali Linux en una máquina virtual y un servidor web vulnerable (ej., Metasploitable2) en otra máquina virtual en la misma red.
- Preparación: Configura dos máquinas virtuales: una con Kali Linux y otra con Metasploitable2 (descargable desde internet). Asegúrate de que estén en la misma red (ej., modo NAT).
- Reconocimiento: Desde Kali, identifica la IP del servidor Metasploitable2. Usa
ifconfigen Metasploitable2 para ver su IP, luego en Kali, ejecutaping [IP]para verificar conectividad. Anota la IP. - Escaneo: Escanea el servidor con
nmap -sV [IP]. Analiza los resultados: busca puertos abiertos (ej., 80 para HTTP, 21 para FTP) y versiones de servicios. Anota al menos un servicio con versión desactualizada. - Explotación: Para un servicio vulnerable (ej., vsftpd 2.3.4 en puerto 21), usa Metasploit. Ejecuta
msfconsole, luego busca el exploit:search vsftpd. Selecciona y configura el exploit (ej.,use exploit/unix/ftp/vsftpd_234_backdoor), define el objetivo (set RHOSTS [IP]) y ejecuta (exploit). Si tiene éxito, obtendrás acceso. - Documentación: Crea un archivo de texto con los pasos, comandos usados y resultados. Incluye capturas de pantalla si es posible.
- Si no encuentras la IP de Metasploitable2, usa
netdiscoveren Kali para escanear la red local. - En el escaneo, si nmap no muestra versiones, prueba agregando
-sCpara scripts básicos. - Al usar Metasploit, lee la descripción del exploit con
infoantes de ejecutarlo para entender su funcionamiento.
Evalua tu comprension
Completa el quiz interactivo de arriba para ganar XP.