El escaneo automatizado es una fase crucial del reconocimiento web (DAST - Dynamic Application Security Testing). Herramientas como Nikto detectan fallos de configuración y CVEs conocidos, mientras que Dirb y Gobuster mapean la superficie de ataque descubriendo directorios y archivos ocultos.
Nikto es un escáner de código abierto escrito en Perl que analiza servidores web en busca de más de 6700 vulnerabilidades, versiones desactualizadas de software y fallos de configuración. Aunque es "ruidoso" y fácilmente detectable por un WAF (Web Application Firewall), sigue siendo un estándar en la industria.
# Escaneo básico al puerto 80:
nikto -h http://192.168.1.10
# Especificar puerto (ej. HTTPS en un puerto no estándar):
nikto -h https://192.168.1.10 -p 8443 -ssl
# Escanear a través de un proxy (Ej: Burp Suite para depuración):
nikto -h http://192.168.1.10 -useproxy http://127.0.0.1:8080
# Con autenticación HTTP Basic:
nikto -h http://192.168.1.10 -id admin:password
# Con Cookie de Sesión (para escanear zonas autenticadas):
nikto -h http://192.168.1.10 -c "PHPSESSID=abc12345; security=low"
Lanzar Nikto con todas sus pruebas puede tardar horas e inundar los logs del cliente. Puedes afinar (-Tuning) el escáner para que solo busque tipos específicos de vulnerabilidades:
1 - Archivos interesantes / Registros.2 - Misconfiguraciones / Por defecto.3 - Fuga de información (Information Disclosure).4 - Ataques de inyección (XSS, SQLi).8 - Ejecución de comandos.# Buscar solo fugas de información y archivos interesantes:
nikto -h http://192.168.1.10 -Tuning 13
# Técnicas de Evasión de IDS/WAF (Parámetro -evasion):
# 1: Codificación URI aleatoria
# 2: Añadir directorios falsos /./
# 8: Invalidación de terminadores de Windows
nikto -h http://192.168.1.10 -evasion 128
Un analista Junior ha ejecutado un escaneo completo de Nikto contra un servidor Legacy de la empresa, pero no sabe interpretar los resultados. Lee el reporte crudo del escáner e identifica las 3 vulnerabilidades críticas descubiertas.
>_ INICIAR RETO CTF 17Un servidor web no publica un índice de todas sus páginas. Dirb ataca a fuerza bruta las rutas utilizando diccionarios (wordlists) para descubrir paneles ocultos (ej. /admin o /backup.zip).
# Escaneo básico con el diccionario por defecto (common.txt):
dirb http://192.168.1.10
# Especificar un diccionario más grande:
dirb http://192.168.1.10 /usr/share/wordlists/dirb/big.txt
# Buscar extensiones específicas (-X):
dirb http://192.168.1.10 -X .php,.txt,.html,.bak,.sql
# Ignorar un código de respuesta HTTP (ej. ignorar los 403 Forbidden):
dirb http://192.168.1.10 -N 403
# Añadir un User-Agent personalizado para evitar bloqueos básicos:
dirb http://192.168.1.10 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
Gobuster ha reemplazado a Dirb en la mayoría de los flujos de trabajo modernos. Al estar escrito en Go, maneja la concurrencia mucho mejor, lo que lo hace exponencialmente más rápido. No es recursivo por defecto, lo que te da un control exacto de dónde estás buscando.
# Descubrimiento de directorios a máxima velocidad (50 hilos):
gobuster dir -u http://192.168.1.10 \
-w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
-x php,html,txt,bak -t 50
# Ocultar los códigos de estado irrelevantes (solo mostrar 200 OK y 301 Redirect):
gobuster dir -u http://192.168.1.10 \
-w /usr/share/wordlists/dirb/big.txt \
-s 200,301,302 \
-b 404,403
# Descubrimiento de Subdominios (Fuzzing de DNS):
gobuster dns -d target.com \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
# Fuzzing de Virtual Hosts (VHosts):
gobuster vhost -u http://192.168.1.10 \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
--append-domain
Para no dar palos de ciego, un pentester sigue un flujo de trabajo metodológico. Las herramientas se encadenan:
nmap -sV -p 80,443 10.0.0.1)./api/v1/users) y los explota manualmente proxyando las peticiones.Tanto Nikto como Gobuster son muy utilizados en DevSecOps para auditar los entornos de Staging antes de pasar a Producción. Exportar los resultados a formatos legibles por máquinas (XML, JSON) es vital.
# Nikto - Salida a XML (Para integrar con SonarQube o DefectDojo):
nikto -h http://192.168.1.10 -o reporte_nikto.xml -Format xml
# Nikto - Generar un reporte HTML bonito para clientes:
nikto -h http://192.168.1.10 -o reporte_nikto.html -Format html
# Gobuster - Guardar salida estándar:
gobuster dir -u http://192.168.1.10 -w dicc.txt -o gobuster_results.txt