Utiliser différentes listes de mots pour le balayage de répertoires dans Gobuster

Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous explorerez le rôle crucial des listes de mots (wordlists) dans le balayage de répertoires à l'aide de Gobuster, un outil populaire pour l'énumération web. Le balayage de répertoires est une étape fondamentale dans les tests d'intrusion d'applications web, aidant à découvrir des répertoires et des fichiers cachés qui pourraient contenir des informations sensibles ou fournir des vecteurs d'attaque. L'efficacité et la performance de ce processus dépendent fortement de la liste de mots utilisée. Vous apprendrez à localiser les listes de mots par défaut dans Kali Linux, à effectuer des balayages avec différentes tailles de listes de mots, et à analyser l'impact sur le temps de balayage et le nombre d'entrées découvertes. Cela vous donnera une compréhension pratique des compromis impliqués dans le choix de la bonne liste de mots pour vos tâches d'énumération.

Localiser les listes de mots par défaut dans Kali

Dans cette étape, vous localiserez les listes de mots (wordlists) par défaut fournies dans Kali Linux, qui sont essentielles pour des outils comme Gobuster. Kali Linux est livré avec une riche collection de listes de mots stockées dans le répertoire seclists. Ces listes de mots sont catégorisées pour divers usages, notamment l'énumération de répertoires, le cassage de mots de passe (password cracking) et le fuzzing.

Tout d'abord, naviguez vers le répertoire seclists. Le chemin courant pour ces listes de mots est /usr/share/seclists.

ls -l /usr/share/seclists

Vous verrez divers sous-répertoires. Pour l'énumération web, le répertoire Discovery est particulièrement pertinent. À l'intérieur de Discovery, vous trouverez Web-Content, qui contient des listes de mots spécifiquement conçues pour trouver des répertoires et des fichiers web.

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

Parmi celles-ci, common.txt est une liste de mots relativement petite, et directory-list-2.3-medium.txt est une liste plus grande et plus complète. Vous utiliserez ces deux listes de mots dans les étapes suivantes pour observer l'impact de la taille de la liste de mots sur les balayages 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

Vous pouvez également afficher les premières lignes de common.txt pour avoir une idée de son contenu :

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

Sortie attendue (tronquée) :

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

Effectuer un balayage avec une petite liste de mots (common.txt)

Dans cette étape, vous effectuerez un balayage de répertoires à l'aide de Gobuster avec la liste de mots plus petite common.txt. Cela démontrera un balayage rapide qui pourrait manquer des répertoires moins courants mais qui est plus rapide.

La cible de notre balayage sera un serveur web Python simple fonctionnant localement sur le port 8000. L'URL sera http://127.0.0.1:8000.

Utilisez la commande suivante pour exécuter Gobuster :

  • dir : Spécifie que nous effectuons un brute-forcing de répertoires/fichiers.
  • -u : Spécifie l'URL cible.
  • -w : Spécifie le chemin vers la liste de mots.
  • -o : Spécifie un fichier de sortie pour enregistrer les résultats.
gobuster dir -u http://127.0.0.1:8000 -w /usr/share/seclists/Discovery/Web-Content/common.txt -o ~/project/gobuster_common_results.txt

Le balayage s'exécutera et affichera sa progression. Une fois terminé, vous pourrez consulter les résultats enregistrés dans ~/project/gobuster_common_results.txt.

cat ~/project/gobuster_common_results.txt

Sortie attendue (peut varier légèrement en fonction du contenu de common.txt et de la configuration du serveur) :

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

Notez le temps nécessaire à la complétion du balayage. Ceci sera comparé au balayage utilisant une liste de mots plus grande dans l'étape suivante.

Effectuer un balayage avec une liste de mots plus grande (directory-list-2.3-medium.txt)

Dans cette étape, vous répéterez le balayage de répertoires à l'aide de Gobuster, mais cette fois avec la liste de mots beaucoup plus grande directory-list-2.3-medium.txt. Cela démontrera comment une liste de mots plus complète peut trouver plus d'entrées, mais au prix d'un temps de balayage accru.

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

Ce balayage prendra considérablement plus de temps que le précédent en raison de la taille de la liste de mots. Soyez patient pendant son exécution. Une fois qu'il sera terminé, examinez les résultats.

cat ~/project/gobuster_medium_results.txt

Sortie attendue (inclura plus d'entrées que le balayage avec common.txt, y compris /admin, /backup, /common.html et potentiellement beaucoup d'autres) :

/admin                (Status: 200)
/backup               (Status: 200)
/common.html          (Status: 200)
/css                  (Status: 200)
/js                   (Status: 200)
/images               (Status: 200)
... (beaucoup plus d'entrées)

Observez la différence dans le nombre d'entrées découvertes et le temps total pris par rapport au balayage précédent.

Comparer le temps et les résultats des deux balayages

Dans cette étape, vous comparerez explicitement les résultats et le temps approximatif pris par les deux balayages. Bien que Gobuster ne fournisse pas de temps précis dans sa sortie, vous pouvez l'inférer de la durée que vous avez observée pendant l'exécution et en vérifiant la taille des fichiers ou le nombre de lignes des fichiers de sortie.

Tout d'abord, comparons le nombre de lignes (qui correspond au nombre d'entrées découvertes) dans les deux fichiers de sortie :

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

Sortie attendue (le nombre de lignes variera) :

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 (où X est un nombre beaucoup plus grand)

Vous devriez observer que le balayage avec directory-list-2.3-medium.txt a trouvé beaucoup plus d'entrées.

Concernant le temps, vous aurez remarqué que le balayage avec common.txt s'est terminé très rapidement (probablement quelques secondes), tandis que le balayage avec directory-list-2.3-medium.txt a pris beaucoup plus de temps (potentiellement plusieurs minutes, selon les ressources système et la vitesse du réseau). Cela souligne la relation directe entre la taille de la liste de mots et la durée du balayage.

Comprendre le compromis entre la taille de la liste de mots et le temps de balayage

Dans cette dernière étape, vous résumerez les points clés des balayages précédents, en vous concentrant sur le compromis entre la taille de la liste de mots, le temps de balayage et l'exhaustivité des résultats.

Listes de mots plus grandes :

  • Avantages : Plus susceptibles de découvrir des répertoires et des fichiers cachés, ce qui conduit à une énumération plus approfondie. Ceci est crucial pour trouver des chemins obscurs ou non standard qui pourraient contenir des vulnérabilités ou des données sensibles.
  • Inconvénients : Augmente considérablement le temps de balayage, consomme plus de ressources système et génère un volume de sortie plus important, ce qui peut être difficile à analyser. Cela peut également générer plus de bruit (faux positifs ou entrées non pertinentes).

Listes de mots plus petites :

  • Avantages : Temps de balayage beaucoup plus rapides, moins gourmand en ressources et produit une sortie plus gérable. Idéal pour des vérifications rapides ou lorsque vous avez une bonne idée des chemins courants.
  • Inconvénients : Peut manquer des répertoires et des fichiers moins courants ou nommés de manière personnalisée, ce qui conduit à une énumération incomplète et potentiellement à négliger des informations critiques.

Choisir la bonne liste de mots : Le choix de la liste de mots dépend de votre objectif et du temps disponible.

  • Pour la reconnaissance initiale ou les vérifications rapides, une liste de mots plus petite et ciblée comme common.txt est souvent suffisante.
  • Pour une évaluation complète et approfondie, une liste de mots plus grande comme directory-list-2.3-medium.txt ou même des listes plus grandes (par exemple, directory-list-2.3-big.txt) est nécessaire.
  • Parfois, une approche combinée est la meilleure : commencez par une petite liste de mots pour la vitesse, puis suivez avec une liste plus grande si les premières découvertes justifient une analyse plus approfondie.
  • Les listes de mots personnalisées, adaptées à la cible spécifique ou à la pile technologique, peuvent également être très efficaces.

Cette compréhension est essentielle pour des tests d'intrusion d'applications web efficaces et performants.

Résumé

Dans ce laboratoire, vous avez exploré avec succès l'impact de différentes tailles de listes de mots sur le balayage de répertoires avec Gobuster. Vous avez appris à localiser les listes de mots par défaut dans Kali Linux, effectué des balayages en utilisant une petite liste (common.txt) et une liste plus grande (directory-list-2.3-medium.txt), et comparé leurs résultats et temps de balayage approximatifs. Vous avez acquis une compréhension pratique des compromis impliqués : les listes de mots plus grandes offrent des résultats plus complets mais nécessitent beaucoup plus de temps, tandis que les listes de mots plus petites fournissent des balayages plus rapides au risque de manquer des entrées moins courantes. Ces connaissances sont cruciales pour prendre des décisions éclairées lors des tâches d'énumération web dans les tests d'intrusion.