Dirhunt: encuentra directorios web sin fuerza bruta

 
Dirhunt es un web crawler optimizado para buscar y analizar directorios. Esta herramienta puede encontrar cosas interesantes si el servidor tiene habilitado el modo "index of", aunque también es útil si el listado de directorios no está habilitado. También detecta directorios con errores 404 "falsos", directorios donde se ha creado un archivo de índice vacío para ocultar cosas y mucho más.

$ dirhunt http://website.com/

Dirhunt no usa fuerza bruta. Pero tampoco es solo un crawler. Esta herramienta es más rápida que otras porque minimiza las solicitudes al servidor. En general, esta herramienta tarda entre 5-30 segundos, dependiendo del sitio web y del servidor.

Características

- Procesa uno o múltiples sitios a la vez.
- Procesa páginas de 'index of' y reporta archivos interesantes.
- Detecta redirecciones.
- Detecta index en blanco creados en directorios para ocultar cosas.
- Procesa algunos archivos html en busca de nuevos directorios.
- Páginas de error 404 y detectar errores 404 falsos.
- Filtrar resultados por flags.
- Analiza los resultados al final.

Instalación:

$ pip install dirhunt

o desde el repo:

$ git clone git://github.com/Nekmo/dirhunt
$ curl  -OL https://github.com/Nekmo/dirhunt/tarball/master
$ python setup.py install

Uso:
Usage: dirhunt [OPTIONS] [URLS]...

  :param int threads: :type exclude_flags: list

Options:
  -t, --threads INTEGER           Number of threads to use.
  -x, --exclude-flags TEXT        Exclude results with these flags. See
                                  documentation.
  -i, --include-flags TEXT        Only include results with these flags. See
                                  documentation.
  -e, --interesting-extensions TEXT
                                  The files found with these extensions are
                                  interesting
  -f, --interesting-files TEXT    The files with these names are interesting
  --stdout-flags TEXT             Return only in stdout the urls of these
                                  flags
  --progress-enabled / --progress-disabled
  --timeout INTEGER
  --version
  --help                          Show this message and exit.

Ejemplos:

Escanear dos urls:

$ dirhunt http://domain1/blog/awesome-post.html http://domain1/admin/login.html http://domain2/

Indicar extensiones a buscar (por defecto busca php, zip, sh, asp, csv y log)

$ dirhunt http://domain1/blog/ -e php,zip,sh

Buscar ficheros interesantes

$ dirhunt http://domain1/blog/ -f access_log,error_log

o cargarlos desde un fichero:

$ dirhunt http://domain1/blog/ -f /home/user/dict.txt,./files.txt

Excluir algunas flags:

$ dirhunt http://domain1/blog/ -x http,not_found,index_of.nothing,300-500

o incluirlas:

$ dirhunt http://domain1/blog/ -i html,300-500

Indicar el número de hilos (por defecto usa 5)

$ dirhunt http://domain1/blog/ --threads 10

Modificar el timeout de respuesta a cada petición (por defecto 10 seg):

$ dirhunt http://domain1/blog/ --timeout 15

Volcar el resultado a un fichero de texto:

dirhunt www.domain.com/path > directories.txt

También se puede especificar las flags que queremos que se guarden:

dirhunt www.domain.com/path --stdout-flags blank,not_found.fake,html > directories.txt

O usar la salida estándar para ejecutar otros programas para usar fuerza bruta:

for url in $(dirhunt www.domain.com/path); do
    other.py -u "$url";
done

Demo:

Github: https://github.com/Nekmo/dirhunt

Site: http://docs.nekmo.org/dirhunt/readme.html

Comentarios