1 · Qué es la enumeración de contenido
Un servidor web publica las rutas enlazadas desde su interfaz, pero puede exponer otras que nadie enlaza: paneles de administración, copias de seguridad olvidadas, endpoints de API sin documentar o archivos de configuración. Dirb y DirBuster automatizan la búsqueda de esas rutas probando, una a una, cada palabra de un diccionario como si fuera un directorio o un archivo, y observando cómo responde el servidor.
Ninguna de las dos «adivina» nada: repiten peticiones HTTP a gran velocidad y clasifican la respuesta por su código de estado. La utilidad depende por completo de la calidad del diccionario y de cómo interpretes esa respuesta, nunca de un exploit.
2 · Instalación en Kali y Debian
DIRB está empaquetado tanto para Kali como para Debian. DirBuster y el paquete de diccionarios SecLists se documentan aquí sobre Kali; DirBuster depende de Java y el paquete instala ese entorno automáticamente. Los comandos usan sudo porque modifican los paquetes del sistema.
sudo apt updatesudo apt install -y dirb dirbuster seclistssudo apt updatesudo apt install -y dirbComprueba la instalación antes de seguir. En Kali deben aparecer dos ejecutables y SecLists debe estar en/usr/share/seclists/; en Debian verifica solo dirb.
command -v dirbcommand -v dirbustertest -d /usr/share/seclists && echo 'SecLists disponible'DIRB incluye diccionarios en /usr/share/wordlists/dirb/: common.txt sirve para un primer barrido y small.txt/big.txt amplían la búsqueda. SecLists añade colecciones más grandes y específicas por tecnología, pero ocupa bastante más espacio; empieza por el diccionario pequeño y aumenta el alcance solo cuando tengas una razón.
Si instalaste los paquetes únicamente para este laboratorio y quieres revertir el cambio, elimina en Kalidirb, dirbuster y seclists; en Debian conserva solo el nombredirb en el comando.
sudo apt remove dirb dirbuster seclists3 · Dirb en la práctica
Antes del barrido solicita una ruta de control que sepas que no existe. Guarda su código y tamaño: si una ruta encontrada devuelve exactamente la misma respuesta, probablemente estás ante una página genérica y no ante contenido real.
curl -sS -o /dev/null -w '%{http_code} %{size_download}\n' \ http://10.0.0.5/cubix-ruta-control-20260824# Salida de ejemplo: código HTTP y bytes recibidos404 153Ahora ejecuta un barrido básico con el diccionario común:
# Nunca contra un objetivo sin autorización explícitadirb http://10.0.0.5/ /usr/share/wordlists/dirb/common.txtUna salida abreviada puede verse así; cada línea es una observación que todavía debes validar:
+ http://10.0.0.5/admin/ (CODE:301|SIZE:169)+ http://10.0.0.5/backup.php (CODE:403|SIZE:153)Dirb es recursivo por defecto: si encuentra /admin/, repite el diccionario dentro de esa ruta. Para buscar también archivos con una extensión concreta, por ejemplo contra una aplicación PHP:
dirb http://10.0.0.5/ /usr/share/wordlists/dirb/common.txt -X .php,.bakGuarda el informe y frena el ritmo de peticiones para no saturar el servicio de laboratorio:
# -o guarda el informe, -z añade 200 ms entre peticionesdirb http://10.0.0.5/ /usr/share/wordlists/dirb/common.txt -o informe-dirb.txt -z 2004 · DirBuster: heredado, útil para entender el modo headless
Kali sigue distribuyendo la versión 1.0-RC1 de DirBuster. Es una interfaz heredada útil para practicar el concepto y entender sus parámetros; OWASP ZAP mantiene hoy la capacidad equivalente en su complementoForced Browse. Para automatizaciones nuevas conviene evaluar una herramienta mantenida en lugar de acoplar scripts a esta interfaz antigua.
Para repetir el escaneo sin abrir la interfaz gráfica, usa el modo headless:
dirbuster -H -u http://10.0.0.5/ \ -l /usr/share/wordlists/dirb/common.txt \ -t 10 -r informe-dirbuster.txt-H arranca sin interfaz y guarda el informe al salir; -u fija el objetivo, -l el diccionario, -t el número de hilos y -r la ruta del informe. No confundas esta última opción con -r en DIRB, donde significa «no buscar recursivamente».
5 · Interpretar resultados sin caer en falsos positivos
El código de estado por sí solo no basta para confirmar un hallazgo:
200 OK
La ruta responde con contenido. Ábrela y confirma que no es la misma página genérica que devuelve el resto del sitio.
301 / 302
Redirección. Sigue el destino (Location) antes de darla por buena o descartarla.
403 Forbidden
El servidor bloqueó la petición, pero eso no confirma por sí solo una ruta real: un WAF puede devolver el mismo 403 para cualquier nombre.
404 Not Found
Ninguna herramienta es perfecta; combina con detección de wildcard antes de descartar en bloque.
Algunos servidores devuelven 200 para cualquier ruta con una página genérica de «no encontrado» en vez de un 404 real, lo que satura el informe de falsos positivos. La opción -f de DIRB ajusta la detección de respuestas NOT_FOUND. Aun así, compara manualmente código, tamaño, cabeceras, destino de redirección y cuerpo con la ruta de control: una coincidencia es evidencia para revisar, no una vulnerabilidad confirmada.
6 · Cómo defenderse
La enumeración es barata de ejecutar; la mayoría de hallazgos serios se evitan con higiene básica:
- No dejes nada «temporal» en producción. Copias de seguridad (
.bak,.zip,.old), configuraciones de ejemplo o carpetas.gitdesplegadas por error son los hallazgos más dañinos y los más evitables. - Desactiva el listado de directorios del servidor web (
Options -Indexesen Apache,autoindex offen nginx) para que una carpeta sin índice no revele su contenido completo. - Autentica cada endpoint sensible en el servidor, nunca solo por no aparecer enlazado: la seguridad por oscuridad retrasa, no impide.
- Limita la tasa de peticiones por IP con el WAF o el propio servidor; un barrido de diccionario deja un patrón de tráfico muy reconocible.
- Alerta ante picos de 404 en los logs: decenas de rutas distintas en segundos desde la misma IP es la firma de este tipo de escaneo.
Checklist antes de cerrar el laboratorio
- Autorización explícita sobre el objetivo, o uso exclusivo de mi propio laboratorio
- Escaneo lanzado contra una IP privada o de laboratorio, nunca un objetivo real sin permiso
- Ritmo de peticiones ajustado para no saturar el servicio (-z en dirb, -t moderado en DirBuster)
- Resultado revisado a mano para descartar falsos positivos por wildcard
- Informe guardado sin credenciales ni datos reales antes de compartirlo
- Escaneo detenido y proceso finalizado: no queda un barrido corriendo de fondo
Glosario
Enumeración de contenido
Descubrimiento sistemático de rutas y archivos que una aplicación no enlaza públicamente.
Diccionario
Lista de nombres candidatos que la herramienta combina con la URL del objetivo.
Recursividad
Proceso de repetir la enumeración dentro de cada directorio descubierto.
Respuesta wildcard
Respuesta genérica que el servidor devuelve para muchas rutas inexistentes y que puede crear falsos positivos.
Forced browsing
Prueba de acceso directo a recursos que no aparecen en la navegación normal.