wfuzz-logo

Wfuzz: qué es, para qué sirve y cómo usarla

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 instalar WFUZZ en Kali

Kali suele llevar instalada la herramienta en sus repositorios, pero puedes asegurarte ejecutando el comando de instalación:

sudo apt install wfuzz

y después revisando la versión instalada de WFUZZ:

wfuzz --version

Otra opción de instalación de la herramienta es mediante la descarga o clonación del repositorio en Github de XMENDEZ:

git clone https://github.com/xmendez/wfuzz.git
cd wfuzz
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python setup.py install

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 IP -H "Host: FUZZ.url"

-H = para indicarle el host o dominio del sitio web y la palabra reservada FUZZ por delante para encontrar subdominios.

ejemplo real

wfuzz -c --hc 404 -t 200 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -H "Host: FUZZ.logan.hmv" -u 192.168.1.237

*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 URL -H "Host: FUZZ.url"

–hl = hide lines para ocultar las líneas que contengan ese número

Ejemplo real de laboratorio Logan de HackMyVM:

wfuzz -c --hc 404 -t 200 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -H "Host: FUZZ.logan.hmv" -u 192.168.1.237 --hl 1

*el diccionario da igual si es «lowercase o no», lo va a encontrar igual.

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.

Otros posts relacionados