
Herramienta rápida de escaneo y scraping de directorios
Dirble es una herramienta de escaneo de directorios web para Windows y Linux. Está diseñada para ser rápida de ejecutar y fácil de usar.
Descargue uno de los binarios precompilados para Linux, Windows o Mac, o compile el código fuente usando Cargo, luego ejecútelo desde una terminal. La wordlist predeterminada que usa Dirble es dirble_wordlist.txt en el mismo directorio que el ejecutable.
Se puede instalar en BlackArch usando sudo pacman -S dirble
También hay una imagen de Docker, que se puede ejecutar como:
docker run --rm -t isona/dirble [dirble arguments]
El texto de ayuda se puede mostrar usando dirble --help, alternativamente se puede encontrar en la wiki de GitHub: https://github.com/nccgroup/dirble/wiki/Help-Text
Ejecutar contra un sitio web usando la wordlist predeterminada dirble_wordlist.txt desde el directorio actual:
dirble [address]
Ejecutar con una wordlist diferente e incluyendo las extensiones .php y .html:
dirble [address] -w example_wordlist.txt -x .php,.html
Con el raspado de directorios listables habilitado:
dirble [address] --scrape-listable
Proporcionando una lista de extensiones y una lista de hosts:
dirble [address] -X wordlists/web.lst -U hostlist.txt
Proporcionando múltiples hosts para escanear desde la línea de comandos:
dirble [address] -u [address] -u [address]
Ejecutando con hilos al estilo predeterminado de Gobuster, deshabilitando la recursividad y teniendo 10 hilos escaneando el directorio principal:
dirble [address] --max-threads 10 --wordlist-split 10 -r
Para compilar en su plataforma actual, asegúrese de que cargo esté instalado y luego ejecute cargo build --release. Alternativamente, ejecutar make compilará el binario en modo release (internamente ejecuta cargo build --release).
Para compilación cruzada para objetivos Linux y Windows de 32 y 64 bits, hay un makefile útil. make release compilará para los cuatro objetivos usando cross. Esto depende de tener cross y docker instalados (cargo install cross).
El siguiente gráfico fue generado ejecutando cada herramienta con Hyperfine contra un servidor de prueba con latencia de 5ms y pérdida de paquetes del 1%. (Gobuster fue omitido debido a la falta de recursividad).

Dirble detecta archivos basándose en el código de respuesta enviado por el servidor. El comportamiento se puede categorizar libremente por tipo de código de respuesta.
200: la ruta existe y es válida301, 302: redirección; reportar el código, tamaño y cabecera Location404: no encontrado; por defecto estas respuestas no se reportan+ [url] (CODE:[code]|SIZE:[size])Una ruta se clasifica como directorio si una solicitud a [url] (sin barra inclinada final) devuelve una redirección 301 o 302 a [url]/ (con barra inclinada final). Esto se reporta con un prefijo D y si la recursividad está habilitada, se añadirá a la cola de escaneo.
Este método no depende de que el destino de la redirección exista o sea accesible, por lo que se hará una solicitud separada para determinar el código de respuesta y el tamaño del directorio.
Los directorios listables se detectan inspeccionando el contenido de url/: si devuelve un código de respuesta 200 y el cuerpo contiene "parent directory", "up to " o "directory listing for" (sin distinción de mayúsculas/minúsculas), entonces es probable que sea un directorio listable. Si --scrape-listable está habilitado, las URLs se extraen del listado (ignorando enlaces de ordenación o enlaces fuera de alcance) y se añaden a la cola de escaneo si tienen una barra inclinada final. Los directorios listables tienen un prefijo L en la salida.
El comportamiento de hilos de Dirble se basa en los conceptos de wordlists y jobs (tareas). Un job es cualquier tarea que se puede ejecutar independientemente de otras tareas, por ejemplo solicitar una serie de URLs. Una wordlist es una lista de palabras con una transformación definida, por ejemplo la lista {admin, config, shop} junto con la transformación append ".php" forma una única instancia de wordlist.
Para mejorar aún más el rendimiento, introducimos el concepto de división de wordlist. Este es el proceso por el cual una única instancia de wordlist (es decir, palabras con una transformación) se divide en múltiples jobs, cada uno responsable de una porción de la lista. El número de porciones intercaladas en que se divide cada wordlist se define mediante la opción --wordlist-split (por defecto 3).
Cada vez que se detecta un directorio (y la recursividad está habilitada) se crean nuevos jobs para cada wordlist dividida (con transformación) y se añaden a una cola de jobs central.
El número máximo de tareas concurrentes se define mediante el parámetro --max-threads, y Dirble iniciará los jobs a medida que se añadan a la cola, hasta este límite. Cada vez que un job se completa (es decir, una wordlist dividida se agota), Dirble tomará el siguiente job de la cola y lo iniciará.
Publicado bajo GPL v3.0, consulte LICENSE para más información