Gobuster tiene un modo dir, que nos permite enumerar los directorios web y sus archivos. Este es útil al realizar pentesting y explorar la estructura de directorios y los archivos que contienen. Normalmente, las estructuras de directorios siguen una convención concreta, haciéndolos susceptibles a ser enumerados. Por ejemplo, la estructura de directorios de un servidor web que contiene WordPress es algo como:
root@tryhackme:~# tree -L 3 -d . └── html └── wordpress ├── wp-admin ├── wp-content └── wp-includes
Gobuster es una herramienta potente porque te permite escanear una página web y observar los códigos de respuesta.
Help
Si quieres una vista por encima completa de lo que el modo dri puede hacer en Gobuster, puedes mirar la página de ayuda con gobuster dir --help:
| Flag | Flag larga | Descripción |
|---|---|---|
-c | --cookies | Configura una cookie que pasar con cada petición, como una cookie de sesión. |
-x | --extensions | Especifica las extensiones que quieres listar (como .php, .js, etc). |
-H | --headers | Configura un header completo el cual pasar con cada petición. |
-k | --no-tls-validation | Se salta el proceso que verifica el certificado TLS cuando se usa HTTPS. Pasa con páginas que están autofirmadas, como un CTF o las rooms en tryhackme que puede causar error. |
-n | --no-status | Configura esta flag si no quieres ver códigos de estado de cada respuesta en pantalla. |
-P | password | Puedes usar esta flag junto a la flag --username para lanzar peticiones autentificadas. Útil cuando ya has obtenido credenciales. |
-s | --status-codes | Configura qué respuestas ver dependiendo de su código de estado. De una en una (200) o en rango (300-400). |
-b | --status-codes-blacklist | Permite configurar qué respuestas NO quieres ver dependiendo de su código de estado. |
-U | --username | Puedes usarla junto a --password para lo expuesto arriba. |
-r | --followredirect | Configura Gobuster para seguir la redirección que recibió (301 o 302). |
Cómo usar el modo dir
Para usar Gobuster en modo dir, usa el siguiente formato:
gobuster dir -u <URL> -w <WORDLIST>
Fíjate que el comando también incluye las flags -u y -w, además del modo dir. Estas dos flags son necesarias para que Gobuster funcione en modo enumeración de directorios. Veamos un caso práctico:
gobuster dir -u "http://www.example.thm" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -r
Este comando escanea todos los directorios en www.example.thm usando el diccionario directory-list-2.3-medium.txt.
gobuster dir: Configura Gobuster en modo escaneo de directorios.-u http://www.example.thm:- La URL será la base donde Gobuster empezará a mirar. Puedes pensar en esto como
http://www.example.com/path/to/folder. - Se requiere el protocolo, si pasaas el erroneo, el escaneo fallará, en este caso es
http. - Si pones la IP en lugar del dominio podrías estar escaneando una web que no es ya que un sólo servidor puede hostear varias páginas web con virtual hosting.
- Gobuster no enumera recursivamente, por lo que si ves un directorio que te interese deberás escanearlo tú mismo.
- La URL será la base donde Gobuster empezará a mirar. Puedes pensar en esto como
-w /usr/hsare/wordlists/dirbuster/directory-list-2.3-medum.txt: Configura Gobuster para usar dicho diccionario para enumerar. Cada una de las entradas del documenro es añadida a la URL base.-r: Configura Gobuster para seguir las redirecciones.
Miremos otro ejemplo en el que usamos -x:
gobuster dir -u "http://www.example.thm" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.js
Es igual que el comando anterior pero hemos quitado -r y añadido -x. Esta flag configura qué extensiones de directorios/archivos debe listar Gobuster.
