Los investigadores de seguridad llevan mucho tiempo utilizando herramientas como escáneres para encontrar bugs, pero estas herramientas son limitadas: sólo pueden encontrar los bugs para los que están programadas. Sin embargo, los investigadores de seguridad experimentados utilizan “fuzzers” para encontrar bugs en los programas.
¡Filebuster es un fuzzer HTTP / script de descubrimiento de contenido con un montón de características y construido para ser fácil de usar y rápido!
Utiliza una de las clases HTTP más rápidas del mundo (de PERL) – Furl::HTTP. También el modelado de hilos está optimizado para ejecutarse lo más rápido posible.
Características
Tiene un montón de características como:
- Patrones Regex en listas de palabras
- Soporta proxy HTTP/HTTPS/SOCKS
- Permite múltiples listas de palabras utilizando comodines
- Extensiones de archivos adicionales
- Tiempos de espera y reintentos ajustables
- Retrasos/aceleración ajustables
- Ocultación de resultados en función del código HTTP, la longitud o las palabras en los headers o body
- Compatibilidad con cookies personalizadas
- Soporte para encabezados personalizadas
- Admite varias versiones del protocolo TLS
- Detección automática de TTY
- Escaneos recursivos
- Listas de palabras integradas con cargas útiles (payloads) personalizadas
- Codificación inteligente automática
- Filtrado automático de resultados
Instalación
Ejecución del script Perl
Se requiere la versión 5.10 o superior de Perl
FileBuster recurre en muchas ocasiones a bibliotecas de terceros. Sin embargo, pueden ser fácilmente instaladas con el siguiente comando:
cpan -T install YAML Furl Benchmark Net::DNS::Lite List::MoreUtils IO::Socket::SSL URI::Escape HTML::Entities IO::Socket::Socks::Wrapper URI::URL Cache::LRU IO::Async::Timer::Periodic IO::Async::Loop
La opción -T hará que la instalación sea mucho más rápida, pero si tienes problemas, elimínala para permitir que CPAN realice las pruebas por paquete.
Instalación
Filebuster es un script en Perl, por lo que no es necesario instalarlo. Sin embargo, la mejor manera de utilizar Filebuster es creando un enlace simbólico en un directorio incluido en la ruta. Por ejemplo:
ln -s /ruta/de/filebuster.pl /usr/local/bin/filebuster
Entonces podrás utilizarlo en todo el sistema
Binario empaquetado
Debido a que la instalación de todas las dependencias a veces no es posible, se proporciona un binario pre-empaquetado con todas las dependencias incorporadas. Funciona incluso en las distribuciones de Linux más pequeñas.
Esto se logró utilizando Perl Packer pp
. Puedes descargar la última versión desde la sección Releases.
Si quieres empaquetarlo tú mismo, revisa los pasos del flujo de trabajo de la Acción y allí encontrarás todos los comandos que necesitas ejecutar.
Ejecutar en docker
Tendrás que empezar por construir el docker:
docker build -t filebuster .
Después, puedes ejecutarlo así:
docker run -ti --init --rm filebuster -u http://sitioweb/
Si necesita utilizar listas de palabras personalizadas, recuerda asignar el archivo, por ejemplo
docker run -ti --init --rm -v /ruta/de/wordlist.txt:/filebuster/mywordlist.txt filebuster -u http://sitioweb/ -w /filebuster/mywordlist.txt
Puedes crear un alias en tu shell, y hacerlo (casi) sin problemas:
alias filebuster="docker run -ti --init --rm filebuster"
Ahora puedes simplemente ejecutarlo:
filebuster -u http://sitioweb/
Sintaxis y uso
En su forma más básica, Filebuster puede ejecutarse simplemente utilizando la siguiente sintaxis:
filebuster -u http://sitio-web/
Si quiere hacer fuzz en la parte final de la URL, no necesitas usar la etiqueta {fuzz}
para indicar dónde inyectar.
El parámetro wordlist (-w
) no es obligatorio a partir de la versión 0.9.1. Si no se especifica, Filebuster intentará encontrar y cargar la lista de palabras “Fast” (dentro del directorio) automáticamente.
Argumentos más comunes
-w
– Rutas de acceso a las listas de palabras a usar. Puedes especificar una lista aquí y FileBuster ignorará automáticamente los duplicados.--hc
– oculta los códigos de respuesta especificados. Por ejemplo,--hc 403,400
--hs
– oculta las respuestas que contienen una cadena en el cuerpo/body de la respuesta. Por ejemplo,--hs "does not exist"
--hsh
– oculta las respuestas que contienen una cadena en las cabeceras. Es útil para ignorar las redirecciones a las páginas de inicio de sesión, por ejemplo,--hsh "login.aspx"
-e
– FileBuster probará todas las entradas de la lista de palabras con las extensiones proporcionadas también. Por ejemplo,-e aspx,ashx,asmx
Para la ayuda completa de la sintaxis con ejemplos, simplemente ejecuta:
filebuster --help
Un ejemplo más complejo:
filebuster -u http://sitioweb/{fuzz}.jsp -w /ruta/de/wordlist.txt -t 3 -x http://127.0.0.1:8080 --hs "Error"
Esto permitiría fuzzear un sitio web con 3 hilos para encontrar páginas JSP, utilizando un proxy local y ocultando todas las respuestas con “Error” en el cuerpo/body.
Listas de palabras
El autor ha creado algunas listas de palabras basadas en diferentes fuentes de la web junto con sus propios payloads personalizados encontrados durante sus pentests e investigaciones. Puedes encontrarlas en el directorio wordlists. Si necesitas más listas de palabras, deberías consultar el gran repositorio SecLists.
- Alternativamente, aquí tienes 5 Formas de Crear una Lista de Palabras
filebuster (este enlace se abre en una nueva ventana) por henshin (este enlace se abre en una nueva ventana)
An extremely fast and flexible web fuzzer