XUT_ / COURSES / CYBER SECURITY 101

Use Case - Directory and File Enumeration

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:

bash
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:

FlagFlag largaDescripción
-c--cookiesConfigura una cookie que pasar con cada petición, como una cookie de sesión.
-x--extensionsEspecifica las extensiones que quieres listar (como .php, .js, etc).
-H--headersConfigura un header completo el cual pasar con cada petición.
-k--no-tls-validationSe 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-statusConfigura esta flag si no quieres ver códigos de estado de cada respuesta en pantalla.
-PpasswordPuedes usar esta flag junto a la flag --username para lanzar peticiones autentificadas. Útil cuando ya has obtenido credenciales.
-s--status-codesConfigura qué respuestas ver dependiendo de su código de estado. De una en una (200) o en rango (300-400).
-b--status-codes-blacklistPermite configurar qué respuestas NO quieres ver dependiendo de su código de estado.
-U--usernamePuedes usarla junto a --password para lo expuesto arriba.
-r--followredirectConfigura 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.
  • -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.