Effectuer un balayage de répertoires de base dans Gobuster

Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez les bases de l'utilisation de Gobuster pour le balayage de répertoires. Gobuster est un outil puissant utilisé dans les tests d'intrusion et le piratage éthique pour découvrir des répertoires et des fichiers cachés sur les serveurs web. En forçant par force brute des noms de répertoires courants contre une URL cible, Gobuster peut révéler des informations sensibles ou des points d'entrée négligés. Ce laboratoire vous guidera à travers la sélection d'une cible, le choix d'une liste de mots appropriée, la construction de la commande Gobuster, l'exécution du balayage et l'interprétation des résultats.

Sélectionner une URL cible pour le balayage

Dans cette étape, vous allez sélectionner une URL cible pour votre balayage Gobuster. Dans le cadre de ce laboratoire, nous utiliserons une application web délibérément vulnérable hébergée localement. Cela garantit que vous pouvez effectuer le balayage sans impacter les systèmes externes et observer des résultats typiques.

Tout d'abord, assurons-nous que le serveur web cible est en cours d'exécution. Nous utiliserons curl pour vérifier si le serveur web est accessible.

Ouvrez votre terminal dans le répertoire ~/project.

curl http://localhost:8080

Vous devriez voir une sortie HTML, indiquant que le serveur web est actif. L'URL cible pour notre balayage sera http://localhost:8080.

<!DOCTYPE html>
<html>
<head>
<title>Welcome to Nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to Nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

Choisir une liste de mots basique

Dans cette étape, vous allez choisir une liste de mots basique pour votre balayage Gobuster. Une liste de mots est un fichier contenant une liste de noms de répertoires et de fichiers courants que Gobuster tentera de trouver sur le serveur cible. La qualité et l'exhaustivité de votre liste de mots ont un impact direct sur l'efficacité de votre balayage.

Pour ce laboratoire, nous utiliserons une petite liste de mots pré-installée, adaptée à des fins de démonstration. Cette liste de mots se trouve à l'emplacement /usr/share/wordlists/dirb/common.txt.

Vous pouvez inspecter les premières lignes de cette liste de mots en utilisant la commande head pour comprendre son contenu :

head /usr/share/wordlists/dirb/common.txt

Cette commande affichera le début de la liste de mots, montrant des exemples de noms de répertoires que Gobuster testera.

admin/
backup/
bin/
cgi-bin/
conf/
css/
data/
db/
dev/
doc/

Cette liste de mots contient des noms de répertoires courants que l'on trouve souvent sur les serveurs web. L'utilisation d'une liste de mots plus petite comme celle-ci permet de terminer le balayage rapidement dans le cadre de ce laboratoire.

Construction de la commande de base gobuster dir

Dans cette étape, vous allez construire la commande de base gobuster dir. La commande gobuster dir est utilisée pour le brute-force de répertoires et de fichiers. Elle nécessite au moins deux indicateurs principaux : -u pour l'URL cible et -w pour la liste de mots.

La syntaxe de base de la commande est la suivante :

gobuster dir -u <target_url> -w <wordlist_path>

D'après nos étapes précédentes :

  • L'URL cible est http://localhost:8080.
  • Le chemin de la liste de mots est /usr/share/wordlists/dirb/common.txt.

Par conséquent, la commande que vous allez construire est :

gobuster dir -u http://localhost:8080 -w /usr/share/wordlists/dirb/common.txt

Cette commande indique à Gobuster d'effectuer un balayage de répertoires sur http://localhost:8080 en utilisant les entrées de common.txt comme noms de répertoires potentiels. Vous exécuterez cette commande à l'étape suivante.

Exécuter le balayage avec les indicateurs -u et -w

Dans cette étape, vous allez exécuter la commande gobuster dir que vous avez construite à l'étape précédente. Cela lancera le balayage de répertoires contre notre URL cible en utilisant la liste de mots spécifiée.

Exécutez la commande suivante dans votre terminal :

gobuster dir -u http://localhost:8080 -w /usr/share/wordlists/dirb/common.txt

Pendant l'exécution du balayage, Gobuster affichera sa progression et tous les répertoires ou fichiers qu'il découvre. La sortie montrera le code d'état (par exemple, 200 pour OK, 301 pour Déplacé de façon permanente) et la taille de la réponse pour chaque élément trouvé.

===============================================================
Gobuster vX.X.X-XXXXXX Linux/amd64
===============================================================
[+] Url:                     http://localhost:8080
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Status codes:            200,204,301,302,307,401,403
[+] User Agent:              gobuster/X.X.X
[+] Timeout:                 10s
===============================================================
XXXX/XX/XX XX:XX:XX Starting gobuster in directory enumeration mode
===============================================================
/css                  (Status: 301)
/js                   (Status: 301)
/images               (Status: 301)
/admin                (Status: 301)
/icons                (Status: 301)
/server-status        (Status: 403)
===============================================================
XXXX/XX/XX XX:XX:XX Finished
===============================================================

La sortie ci-dessus montre plusieurs répertoires trouvés, ainsi que leurs codes d'état HTTP. Par exemple, /css a renvoyé un statut 301, indiquant une redirection permanente.

Analyser la sortie pour les répertoires trouvés

Dans cette étape, vous allez analyser la sortie de votre balayage Gobuster pour comprendre les résultats. La sortie fournit des informations précieuses sur les répertoires et fichiers découverts sur le serveur web cible.

Examinez la sortie de l'étape précédente. Vous devriez voir des lignes similaires à celles-ci :

/css                  (Status: 301)
/js                   (Status: 301)
/images               (Status: 301)
/admin                (Status: 301)
/icons                (Status: 301)
/server-status        (Status: 403)

Chaque ligne représente un répertoire ou un fichier potentiel trouvé par Gobuster.

  • La première partie, par exemple /css, est le chemin que Gobuster a identifié avec succès.
  • (Status: XXX) indique le code d'état HTTP renvoyé par le serveur pour ce chemin.
    • 200 OK : La requête a réussi et le contenu a été renvoyé. Cela signifie souvent un répertoire ou un fichier valide.
    • 301 Moved Permanently : La ressource a été déplacée de manière permanente vers une nouvelle URL. Cela indique toujours l'existence du répertoire.
    • 403 Forbidden : Le serveur a compris la requête mais refuse de l'autoriser. Cela signifie que le répertoire existe mais que vous n'avez pas la permission d'y accéder directement.
    • 401 Unauthorized : Similaire à 403, mais nécessite généralement une authentification.

Dans notre exemple, /css, /js, /images, /admin et /icons ont tous renvoyé des codes d'état 301, ce qui signifie que ces répertoires existent et que le serveur redirige les requêtes vers eux. Le chemin /server-status a renvoyé un statut 403, indiquant qu'il existe mais que l'accès est interdit.

Cette analyse vous aide à identifier les domaines potentiels pour des investigations plus approfondies, tels que les panneaux administratifs (/admin) ou les fichiers de configuration, qui pourraient être vulnérables.

Résumé

Dans ce laboratoire, vous avez réussi à effectuer un balayage de répertoires de base à l'aide de Gobuster. Vous avez appris à sélectionner une URL cible, à choisir une liste de mots appropriée, à construire la commande gobuster dir avec les indicateurs -u et -w, à exécuter le balayage et à analyser la sortie pour identifier les répertoires existants et leurs codes d'état HTTP. Cette compétence fondamentale est cruciale pour la reconnaissance en cybersécurité, vous aidant à découvrir des actifs web cachés qui pourraient contenir des informations sensibles ou des vulnérabilités. Vous pouvez maintenant appliquer ces techniques avec différentes listes de mots et cibles pour élargir votre compréhension des structures de serveurs web.