
Alternativa moderna a dirbuster/dirb
Dirstalk es una aplicación multi-hilo diseñada para realizar fuerza bruta de rutas en servidores web.
La herramienta contiene funcionalidades similares a las ofrecidas por dirbuster y dirb.
La aplicación se auto-documenta; ejecutar dirstalk -h devolverá todos los comandos disponibles con una
breve descripción. Puedes obtener la ayuda de cada comando usando dirstalk <comando> -h.
Ej. dirstalk result.diff -h
Para realizar un escaneo debes proporcionar al menos un diccionario y una URL:
dirstalk scan http://someaddress.url/ --dictionary mydictionary.txt
Como se mencionó antes, para ver todas las banderas disponibles para el comando scan puedes
simplemente llamar al comando con la bandera -h:
dirstalk scan -h
dirstalk scan http://someaddress.url/ \
--dictionary mydictionary.txt \
--http-methods GET,POST \
--http-timeout 10000 \
--scan-depth 10 \
--threads 10 \
--socks5 127.0.0.1:9150 \
--cookie name=value \
--use-cookie-jar \
--user-agent my_user_agent \
--header "Authorization: Bearer 123"
--cookie stringArray cookie para añadir a cada solicitud; ej. name=value (se puede especificar varias veces)
-d, --dictionary string diccionario a usar para el escaneo (ruta a un archivo local o URL remota)
--header stringArray cabecera para añadir a cada solicitud; ej. name=value (se puede especificar varias veces)
-h, --help ayuda para scan
--http-cache-requests almacenar en caché las solicitudes para evitar repetir la misma solicitud varias veces dentro del mismo escaneo (ej. si el servidor responde con la misma ubicación de redirección varias veces, dirstalk la seguirá solo una vez) (por defecto true)
--http-methods strings lista separada por comas de métodos HTTP a usar; ej.: GET,POST,PUT (por defecto [GET])
--http-statuses-to-ignore ints lista separada por comas de estados HTTP a ignorar al mostrar y procesar resultados; ej.: 404,301 (por defecto [404])
--http-timeout int tiempo de espera en milisegundos (por defecto 5000)
--out string ruta donde almacenar la salida del resultado
--scan-depth int profundidad de escaneo (por defecto 3)
--socks5 string host SOCKS5 a usar
-t, --threads int cantidad de hilos para solicitudes concurrentes (por defecto 3)
--use-cookie-jar habilita el uso de una cookie jar: retendrá cualquier cookie enviada por el servidor y la enviará en las siguientes solicitudes
--user-agent string user agent a usar para las solicitudes HTTP
docker run -d -p 127.0.0.1:9150:9150 stefanoj3/tordock:latest y luego al lanzar un
escaneo especifica la siguiente bandera: --socks5 127.0.0.1:9150)Dirstalk también puede producir sus propios diccionarios, útil por ejemplo si quieres verificar si un conjunto específico de archivos está disponible en un servidor web dado.
dirstalk dictionary.generate /path/to/local/files --out mydictionary.txt
El resultado se imprimirá en stdout si no se especifica la bandera out.
Puedes descargar un release desde aquí
o puedes usar una imagen docker (ej. docker run stefanoj3/dirstalk dirstalk <cmd>)
Si usas una distribución Linux basada en Arch, puedes obtenerlo mediante AUR: https://aur.archlinux.org/packages/dirstalk/
Ejemplo:
yay -S aur/dirstalk
Todo lo que necesitas para el desarrollo local es tener make y golang disponibles, y el GOPATH configurado correctamente.
Luego puedes clonar el proyecto, entrar a la carpeta y:
make dep # para obtener dependencias
make tests # para ejecutar la suite de pruebas
make check # para verificar problemas de estilo de código
make fix # para corregir automáticamente el estilo de código usando goimports
make build # para compilar un ejecutable para tu sistema operativo (no probado en Windows)
make help
imprimirá una descripción de cada comando disponible en el Makefile.
¿Quieres añadir una funcionalidad? ¿corregir un error? haz un fork y crea un PR.