Scanner des extensions de fichiers spécifiques avec Gobuster

Beginner
Pratiquer maintenant

Introduction

Gobuster est un outil puissant utilisé pour le brute-force de répertoires et de fichiers sur les serveurs web. Bien qu'il soit couramment utilisé pour découvrir des répertoires cachés, il peut également être exploité pour trouver des fichiers avec des extensions spécifiques. Cette capacité est cruciale dans les tests d'intrusion et les évaluations de sécurité, car elle aide à identifier les points d'entrée potentiels, les fichiers sensibles ou les mauvaises configurations qui pourraient ne pas être immédiatement évidents. Par exemple, trouver des fichiers .php pourrait indiquer une application web, tandis que des fichiers .bak ou .old pourraient révéler des copies de sauvegarde de données sensibles.

Dans ce laboratoire, vous apprendrez à utiliser efficacement le drapeau -x de Gobuster pour cibler des extensions de fichiers spécifiques lors de votre processus d'énumération web. Vous commencerez par identifier les extensions de fichiers courantes et pertinentes, construirez une commande Gobuster de base, puis l'améliorerz pour inclure la numérisation spécifique aux extensions. Enfin, vous exécuterez la numérisation et analyserez les résultats pour comprendre comment interpréter la sortie. Cette expérience pratique vous dotera d'une compétence précieuse pour une reconnaissance web plus ciblée et efficace.

Identifier les extensions de fichiers cibles (par ex. .php, .html)

Dans cette étape, vous apprendrez à identifier les extensions de fichiers courantes et pertinentes que vous pourriez vouloir rechercher lors d'une énumération web. Le choix des extensions dépend souvent de la pile technologique cible (par ex. .php pour les applications PHP, .aspx pour ASP.NET, .jsp pour les applications Java) ou des types de fichiers courants qui pourraient contenir des informations sensibles (par ex. .txt, .bak, .zip, .sql).

Pour ce laboratoire, nous nous concentrerons sur quelques extensions courantes liées au web : .php, .html et .txt. Celles-ci sont fréquemment rencontrées et servent de bons exemples pour démontrer les capacités de Gobuster.

Vous pouvez lister quelques extensions courantes à garder à l'esprit pour vos scans. Bien que vous n'ayez pas besoin d'exécuter de commande à cette étape, comprendre les types de fichiers que vous recherchez est la première étape cruciale de tout scan ciblé.

Considérez les extensions courantes suivantes :

  • .php : Scripts PHP
  • .html, .htm : Pages HTML
  • .txt : Fichiers texte, contenant souvent des notes ou des journaux
  • .js : Fichiers JavaScript
  • .css : Feuilles de style en cascade (Cascading Style Sheets)
  • .xml : Fichiers XML
  • .json : Fichiers de données JSON
  • .bak, .old, .orig : Fichiers de sauvegarde
  • .zip, .tar.gz : Fichiers d'archives
  • .sql : Sauvegardes de bases de données

Savoir quelles extensions cibler permet de restreindre votre recherche et de rendre votre énumération plus efficace.

Construction de la commande de base gobuster dir

Dans cette étape, vous allez construire la commande de base gobuster dir. Le mode dir de Gobuster est utilisé pour le brute-force de répertoires et de fichiers. Avant d'ajouter des options spécifiques aux extensions de fichiers, il est de bonne pratique de comprendre la structure fondamentale de la commande.

Les composants essentiels d'une commande gobuster dir sont :

  • gobuster dir : Spécifie le mode (brute-force de répertoires/fichiers).
  • -u <URL> : Spécifie l'URL cible. Pour ce laboratoire, notre cible sera http://localhost:8000, qui sert des fichiers depuis /tmp/web_root.
  • -w <wordlist> : Spécifie la liste de mots (wordlist) à utiliser pour le brute-force. Une liste de mots courante pour l'énumération web est common.txt ou directory-list-2.3-medium.txt. Pour la simplicité et la rapidité dans ce laboratoire, nous utiliserons une petite liste de mots personnalisée qui inclut index, about, notes, et admin.

Créons une liste de mots simple dans votre répertoire ~/project.

echo -e "index\nabout\nnotes\nadmin\nconfig" > ~/project/small_wordlist.txt

Maintenant, construisons la commande de base sans extensions. Cette commande tentera de trouver des répertoires ou des fichiers correspondant aux entrées de small_wordlist.txt.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt

Vous verrez une sortie similaire à celle-ci, montrant les répertoires/fichiers trouvés sans extensions spécifiques :

...
/index (Status: 200)
/about (Status: 200)
/notes (Status: 200)
/admin (Status: 200)
/config (Status: 200)
...

Cette sortie montre que Gobuster a trouvé des entrées correspondant à la liste de mots, mais elle ne nous indique pas encore leurs types de fichiers spécifiques.

Ajouter le drapeau -x pour spécifier les extensions

Dans cette étape, vous apprendrez à utiliser le drapeau -x dans Gobuster pour spécifier les extensions de fichiers que vous souhaitez rechercher. C'est le cœur de la recherche de fichiers de types spécifiques.

Le drapeau -x prend une liste d'extensions séparées par des virgules. Par exemple, pour rechercher les fichiers .php et .html, vous utiliseriez -x php,html. Gobuster ajoutera alors ces extensions à chaque entrée de votre liste de mots et tentera de trouver des fichiers tels que index.php, about.html, etc.

Modifions la commande précédente pour inclure les extensions .php, .html et .txt.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt -x php,html,txt,bak

Cette commande indique à Gobuster de rechercher index.php, index.html, index.txt, index.bak, about.php, about.html, about.txt, about.bak, et ainsi de suite, pour chaque entrée de votre liste de mots.

Exécutez la commande et observez la sortie. Vous devriez maintenant voir des résultats qui incluent explicitement les extensions de fichiers.

...
/index.php (Status: 200)
/about.html (Status: 200)
/notes.txt (Status: 200)
/admin.php (Status: 200)
/config.bak (Status: 200)
...

Remarquez comment la sortie montre maintenant clairement les noms de fichiers avec leurs extensions respectives, indiquant que Gobuster a trouvé avec succès ces fichiers.

Exécuter le scan sur la cible

Dans cette étape, vous allez exécuter la commande Gobuster complète avec les extensions spécifiées sur notre cible simulée. C'est l'application pratique de ce que vous avez appris.

Nous utiliserons la commande de l'étape précédente, qui inclut l'URL cible, la liste de mots personnalisée et le drapeau -x avec les extensions .php, .html, .txt et .bak.

gobuster dir -u http://localhost:8000 -w ~/project/small_wordlist.txt -x php,html,txt,bak

Lorsque vous exécutez cette commande, Gobuster commencera à parcourir la liste de mots, en ajoutant chaque extension spécifiée et en effectuant des requêtes au serveur http://localhost:8000.

La sortie affichera les fichiers qu'il découvre ainsi que leurs codes d'état HTTP. Un code d'état 200 OK indique que le fichier a été trouvé avec succès.

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                     http://localhost:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/small_wordlist.txt
[+] Extensions:              php,html,txt,bak
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/index.php            (Status: 200)
/about.html           (Status: 200)
/notes.txt            (Status: 200)
/admin.php            (Status: 200)
/config.bak           (Status: 200)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Cette sortie confirme que Gobuster a identifié avec succès index.php, about.html, notes.txt, admin.php et config.bak sur le serveur cible.

Examiner les résultats des fichiers avec des extensions spécifiques

Dans cette dernière étape, vous allez examiner et interpréter les résultats obtenus de votre scan Gobuster. Comprendre la sortie est crucial pour identifier les informations précieuses lors d'une évaluation de sécurité.

La sortie de l'étape précédente liste clairement les fichiers trouvés ainsi que leurs codes d'état HTTP.

===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url:                     http://localhost:8000
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /home/labex/project/small_wordlist.txt
[+] Extensions:              php,html,txt,bak
[+] Timeout:                 10s
===============================================================
2024/01/01 12:00:00 Starting gobuster in directory enumeration mode
===============================================================
/index.php            (Status: 200)
/about.html           (Status: 200)
/notes.txt            (Status: 200)
/admin.php            (Status: 200)
/config.bak           (Status: 200)
===============================================================
2024/01/01 12:00:00 Finished
===============================================================

Voici ce que signifie chaque ligne :

  • /index.php (Status: 200) : Indique qu'un fichier nommé index.php a été trouvé à la racine du serveur web, et que le serveur a répondu avec un statut 200 OK, signifiant que la requête a réussi.
  • /about.html (Status: 200) : De même, about.html a été trouvé.
  • /notes.txt (Status: 200) : Un fichier texte nommé notes.txt a été trouvé. Il pourrait potentiellement contenir des informations sensibles.
  • /admin.php (Status: 200) : Un fichier admin.php a été trouvé. Il pourrait s'agir d'une interface administrative, qui est souvent une cible pour des investigations plus poussées.
  • /config.bak (Status: 200) : Un fichier de sauvegarde nommé config.bak a été trouvé. Les fichiers de sauvegarde contiennent souvent des détails de configuration sensibles ou du code source.

En examinant ces résultats, vous pouvez identifier les fichiers qui pourraient être intéressants pour des investigations plus approfondies. Par exemple, vous pourriez essayer d'accéder à /admin.php dans un navigateur web ou télécharger /config.bak pour examiner son contenu.

Ce scan ciblé par extensions aide à découvrir des fichiers cachés ou oubliés qui pourraient mener à des vulnérabilités ou à une divulgation d'informations.

Résumé

Dans ce laboratoire, vous avez appris avec succès à utiliser Gobuster pour scanner des extensions de fichiers spécifiques sur un serveur web cible. Vous avez commencé par comprendre l'importance d'identifier les extensions de fichiers pertinentes, puis vous avez construit une commande gobuster dir de base, et enfin vous l'avez améliorée en utilisant le drapeau -x pour cibler les fichiers .php, .html, .txt et .bak.

Vous avez exécuté le scan sur un serveur web simulé et interprété les résultats, identifiant divers fichiers avec leurs extensions et codes d'état HTTP respectifs. Cette compétence est inestimable pour l'énumération web lors des tests d'intrusion, vous permettant de découvrir des fichiers cachés qui pourraient contenir des informations sensibles, révéler la pile technologique ou exposer des points d'entrée potentiels.

En maîtrisant l'utilisation du drapeau -x, vous pouvez effectuer une reconnaissance plus ciblée et efficace, améliorant considérablement votre capacité à découvrir des vulnérabilités dans les applications web. Continuez à vous entraîner avec différentes listes de mots et combinaisons d'extensions pour perfectionner davantage vos compétences en matière d'énumération web.