Usar Diferentes Listas de Palabras para Escaneo de Directorios en Gobuster

Beginner
Practicar Ahora

Introducción

En este laboratorio, explorará el papel crucial de las listas de palabras (wordlists) en el escaneo de directorios utilizando Gobuster, una herramienta popular para la enumeración web. El escaneo de directorios es un paso fundamental en las pruebas de penetración de aplicaciones web, ya que ayuda a descubrir directorios y archivos ocultos que podrían contener información sensible o proporcionar vectores de ataque. La efectividad y eficiencia de este proceso dependen en gran medida de la lista de palabras utilizada. Aprenderá a localizar listas de palabras predeterminadas en Kali Linux, realizar escaneos con diferentes tamaños de listas de palabras y analizar el impacto en el tiempo de escaneo y el número de entradas descubiertas. Esto proporcionará una comprensión práctica de las compensaciones involucradas en la elección de la lista de palabras adecuada para sus tareas de enumeración.

Localizar las Listas de Palabras Predeterminadas en Kali

En este paso, localizará las listas de palabras (wordlists) predeterminadas proporcionadas en Kali Linux, que son esenciales para herramientas como Gobuster. Kali Linux viene con una rica colección de listas de palabras almacenadas en el directorio seclists. Estas listas de palabras están categorizadas para diversos propósitos, incluyendo la enumeración de directorios, el cracking de contraseñas y el fuzzing.

Primero, navegue al directorio seclists. La ruta común para estas listas de palabras es /usr/share/seclists.

ls -l /usr/share/seclists

Verá varios subdirectorios. Para la enumeración web, el directorio Discovery es particularmente relevante. Dentro de Discovery, encontrará Web-Content, que contiene listas de palabras diseñadas específicamente para encontrar directorios y archivos web.

ls -l /usr/share/seclists/Discovery/Web-Content/

Entre estas, common.txt es una lista de palabras relativamente pequeña, y directory-list-2.3-medium.txt es una más grande y completa. Utilizará estas dos listas de palabras en los pasos subsiguientes para observar el impacto del tamaño de la lista de palabras en los escaneos de Gobuster.

ls -l /usr/share/seclists/Discovery/Web-Content/common.txt
ls -l /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt

También puede ver las primeras líneas de common.txt para tener una idea de su contenido:

head /usr/share/seclists/Discovery/Web-Content/common.txt

Salida esperada (truncada):

.git
.svn
.DS_Store
.htaccess
.htpasswd
.bash_history
.bash_logout
.bashrc
.profile
.ssh

Realizar un Escaneo con una Lista de Palabras Pequeña (common.txt)

En este paso, realizará un escaneo de directorios utilizando Gobuster con la lista de palabras más pequeña common.txt. Esto demostrará un escaneo rápido que podría pasar por alto directorios menos comunes pero que es más veloz.

El objetivo de nuestro escaneo será un servidor web Python simple ejecutándose localmente en el puerto 8000. La URL será http://127.0.0.1:8000.

Utilice el siguiente comando para ejecutar Gobuster:

  • dir: Especifica que estamos realizando un ataque de fuerza bruta de directorios/archivos.
  • -u: Especifica la URL objetivo.
  • -w: Especifica la ruta a la lista de palabras (wordlist).
  • -o: Especifica un archivo de salida para guardar los resultados.
gobuster dir -u http://127.0.0.1:8000 -w /usr/share/seclists/Discovery/Web-Content/common.txt -o ~/project/gobuster_common_results.txt

El escaneo se ejecutará y mostrará su progreso. Una vez completado, puede ver los resultados guardados en ~/project/gobuster_common_results.txt.

cat ~/project/gobuster_common_results.txt

Salida esperada (puede variar ligeramente según el contenido de common.txt y la configuración del servidor):

/admin                (Status: 200)
/backup               (Status: 200)
/common.html          (Status: 200)

Tenga en cuenta el tiempo que tardó en completarse el escaneo. Esto se comparará con el escaneo utilizando una lista de palabras más grande en el siguiente paso.

Realizar un Escaneo con una Lista de Palabras Más Grande (directory-list-2.3-medium.txt)

En este paso, repetirá el escaneo de directorios utilizando Gobuster, pero esta vez con la lista de palabras mucho más grande directory-list-2.3-medium.txt. Esto demostrará cómo una lista de palabras más completa puede encontrar más entradas, pero a costa de un mayor tiempo de escaneo.

gobuster dir -u http://127.0.0.1:8000 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -o ~/project/gobuster_medium_results.txt

Este escaneo tardará significativamente más que el anterior debido al tamaño de la lista de palabras. Tenga paciencia mientras se ejecuta. Una vez que se complete, examine los resultados.

cat ~/project/gobuster_medium_results.txt

Salida esperada (incluirá más entradas que el escaneo con common.txt, incluyendo /admin, /backup, /common.html y potencialmente muchas otras):

/admin                (Status: 200)
/backup               (Status: 200)
/common.html          (Status: 200)
/css                  (Status: 200)
/js                   (Status: 200)
/images               (Status: 200)
... (muchas más entradas)

Observe la diferencia en el número de entradas descubiertas y el tiempo total empleado en comparación con el escaneo anterior.

Comparar el Tiempo y los Resultados de Ambos Escaneos

En este paso, comparará explícitamente los resultados y el tiempo aproximado empleado en ambos escaneos. Si bien Gobuster no proporciona un tiempo exacto en su salida, puede inferirlo de la duración que observó durante la ejecución y verificando los tamaños de archivo o el recuento de líneas de los archivos de salida.

Primero, comparemos el número de líneas (que corresponde al número de entradas descubiertas) en ambos archivos de salida:

echo "Results from common.txt scan:"
wc -l ~/project/gobuster_common_results.txt

echo "Results from directory-list-2.3-medium.txt scan:"
wc -l ~/project/gobuster_medium_results.txt

Salida esperada (los recuentos de líneas variarán):

Results from common.txt scan:
3 /home/labex/project/gobuster_common_results.txt
Results from directory-list-2.3-medium.txt scan:
X /home/labex/project/gobuster_medium_results.txt (donde X es un número mucho mayor)

Debería observar que el escaneo con directory-list-2.3-medium.txt encontró significativamente más entradas.

En cuanto al tiempo, habrá notado que el escaneo con common.txt se completó muy rápidamente (probablemente unos pocos segundos), mientras que el escaneo con directory-list-2.3-medium.txt tardó mucho más (potencialmente minutos, dependiendo de los recursos del sistema y la velocidad de la red). Esto resalta la relación directa entre el tamaño de la lista de palabras y la duración del escaneo.

Comprender la Compensación entre el Tamaño de la Lista de Palabras y el Tiempo de Escaneo

En este paso final, resumirá las conclusiones clave de los escaneos anteriores, centrándose en la compensación entre el tamaño de la lista de palabras, el tiempo de escaneo y la exhaustividad de los resultados.

Listas de Palabras Más Grandes:

  • Ventajas: Mayor probabilidad de descubrir directorios y archivos ocultos, lo que lleva a una enumeración más completa. Esto es crucial para encontrar rutas oscuras o no estándar que puedan contener vulnerabilidades o datos sensibles.
  • Desventajas: Aumenta significativamente el tiempo de escaneo, consume más recursos del sistema y genera un mayor volumen de salida, lo que puede ser difícil de analizar. También puede generar más ruido (falsos positivos o entradas irrelevantes).

Listas de Palabras Más Pequeñas:

  • Ventajas: Tiempos de escaneo mucho más rápidos, menor consumo de recursos y produce una salida más manejable. Ideal para comprobaciones rápidas o cuando se tiene una buena idea de las rutas comunes.
  • Desventajas: Puede pasar por alto directorios y archivos menos comunes o con nombres personalizados, lo que lleva a una enumeración incompleta y potencialmente a pasar por alto información crítica.

Elegir la Lista de Palabras Correcta:
La elección de la lista de palabras depende de su objetivo y del tiempo disponible.

  • Para reconocimiento inicial o comprobaciones rápidas, una lista de palabras pequeña y específica como common.txt suele ser suficiente.
  • Para una evaluación completa y en profundidad, es necesaria una lista de palabras más grande como directory-list-2.3-medium.txt o incluso más grandes (por ejemplo, directory-list-2.3-big.txt).
  • A veces, un enfoque combinado es el mejor: comience con una lista de palabras pequeña para obtener velocidad, luego siga con una más grande si los hallazgos iniciales justifican una inmersión más profunda.
  • Las listas de palabras personalizadas adaptadas al objetivo específico o a la pila tecnológica también pueden ser muy efectivas.

Esta comprensión es vital para pruebas de penetración de aplicaciones web eficientes y efectivas.

Resumen

En este laboratorio, exploró con éxito el impacto de diferentes tamaños de listas de palabras en el escaneo de directorios de Gobuster. Aprendió a localizar listas de palabras predeterminadas en Kali Linux, realizó escaneos utilizando una lista de palabras pequeña (common.txt) y una más grande (directory-list-2.3-medium.txt), y comparó sus resultados y tiempos de escaneo aproximados. Obtuvo una comprensión práctica de las compensaciones involucradas: las listas de palabras más grandes ofrecen resultados más completos pero requieren significativamente más tiempo, mientras que las listas de palabras más pequeñas proporcionan escaneos más rápidos con el riesgo de pasar por alto entradas menos comunes. Este conocimiento es crucial para tomar decisiones informadas durante las tareas de enumeración web en pruebas de penetración.