Las aplicaciones web son un objetivo común para los atacantes, lo que hace que la identificación y mitigación de vulnerabilidades sea esencial. En este post quiero documentar bajo mi punto de vista, qué es Wfuzz y cómo usarla para hacer pruebas de pentesting.
¿Qué es Wfuzz?
Wfuzz es una herramienta de pentesting de código abierto que te permite identificar posibles vulnerabilidades mediante ataques de fuerza bruta y fuzzing a través de diccionarios predefinidos en Kali y así descubrir directorios ocultos, archivos, subdominios, etc.
Cómo usar WFUZZ
Para más información te dejo el enlace del creador del github
Instalación
Para llevar a cabo la instalación de la herramienta en una instancia Linux (lo más recomendado), tendremos que ejecutar los siguientes comandos:
Antes de llevar a cabo la instalación tendremos que actualizar nuestra instacia de linux, el comando es el siguiente
Ubuntu / Debian
sudo apt update // sudo apt upgrade
Kali Linux
sudo apt-get update && apt-get upgrade
Te dejo por aqui un enlace para que puedas aprender más sobre el maravilloso mundo de Linux
pip install wfuzz
En el caso de que por un casual no tengas pip instalado te dejo por aqui como podrias instalarlo:
sudo apt install python3-pip.
Una vez que lo tengamos instalado podemos pasar con la instalación de la herramienta:
pip install wfuzz
Una vez que te lo tengamos instalado para ejecutar Wfuzz desde una imagen de docker, ejecute:
docker run -v $(pwd)/wordlist:/wordlist/ -it ghcr.io/xmendez/wfuzz wfuzz
Una vez que lo tengamos hecho todo podremos usar ya la herramienta con total normalidad.
Cómo usar WFUZZ
Encontrar Directorios Ocultos
Para poder ejecutar wfuzz y tratar de encontrar directorios ocultos, tendríamos que aplicar el siguiente comando para invocarlo y seguido de una serie de parámetros (los puedes encontrar en el manual «man wfuzz»):
wfuzz -c --hc 404 -t 200 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u IP_Víctima/FUZZ
Es importante incluir la palabra reservada FUZZ como directorio dentro de la IP que declaremos para indicarle que queremos encontrar directorios internos.
- -c = colour para que salga el output en colores (visualmente queda más claro)
- –hc = hide code para ocultar códigos de estado que devuelvan por ejemplo un 404 (not found)
- -t = son los threats o hilos para configurar la potencia del escaneo (ej. 200)
- -w = para indicarle el wordlists o diccionario/s disponible por defecto. El wordlist que más se suele usar es el de *medium.txt que tiene más de 220K combinaciones de palabras.
- -u = y le indicamos la url o IP víctima
Encontrar Subdominios Ocultos
Si por otro lado, lo que te interesa es encontrar subdominios ocultos mediante Virtual hosting, tendrías que aplicar el siguiente comando:
wfuzz -c --hc 404 -t 200 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u -H "Host: FUZZ.url"
-H = para indicarle el host o dominio del sitio web y la palabra reservada FUZZ por delante para encontrar subdominios.
*Si quieres ocultar resultados que tengan el mismo número de líneas, sería:
wfuzz -c --hc 404 -t 200 --hl 546 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u -H "Host: FUZZ.url"
–hl = hide lines para ocultar las líneas que contengan ese número
Una vez la herramienta te encuentra un resultado, lo que tendrías que hacer sería añadir ese subdominio en el fichero etc/hosts y probar que en el navegador te da un contenido diferente, de tal forma que se estaría aplicando un virtual hosting.
Explicación de herramienta similar