Introduction
Dans ce laboratoire, vous apprendrez à utiliser Gobuster pour effectuer un scan de base des hôtes virtuels (vhost). Les hôtes virtuels sont un moyen courant pour les serveurs web d'héberger plusieurs sites web sur une seule adresse IP. La découverte de ces vhosts cachés peut révéler des surfaces d'attaque supplémentaires ou des informations sensibles lors d'un test d'intrusion ou d'une évaluation de sécurité. Gobuster est un outil puissant pour le brute-force des URI, des sous-domaines DNS et des noms d'hôtes virtuels.
Comprendre ce que sont les Hôtes Virtuels (VHosts)
Dans cette étape, vous apprendrez ce que sont les hôtes virtuels (vhosts) et pourquoi ils sont importants en sécurité web.
Un hôte virtuel permet à un seul serveur d'héberger plusieurs noms de domaine sur la même adresse IP. Par exemple, www.example.com et blog.example.com pourraient tous deux être hébergés sur le même serveur, distingués par l'en-tête Host dans la requête HTTP. Lorsqu'un navigateur web envoie une requête à un serveur, il inclut un en-tête Host spécifiant le nom de domaine auquel il souhaite accéder. Le serveur web utilise ensuite cet en-tête pour déterminer quel site web servir.
La découverte de ces hôtes virtuels est cruciale pour les évaluations de sécurité car :
- Contenu Caché : Un vhost peut héberger une ancienne application non corrigée, une version de développement d'un site, ou une interface administrative qui n'est pas liée depuis le site web principal.
- Surface d'Attaque Étendue : Chaque vhost découvert représente un nouveau point d'entrée potentiel pour des attaques, telles que l'injection SQL, le cross-site scripting (XSS), ou le parcours de répertoires.
- Divulgation d'Informations : Parfois, les vhosts peuvent révéler des structures de réseau internes, des fichiers sensibles, ou des mauvaises configurations.
Des outils comme Gobuster peuvent automatiser le processus d'essai de noms de vhost courants sur une cible afin d'identifier ceux qui sont actifs.
Sélectionner une Adresse IP ou un Domaine Cible
Dans cette étape, vous identifierez la cible pour votre scan de vhost Gobuster.
Pour ce laboratoire, nous utiliserons localhost comme cible, plus précisément http://127.0.0.1:8080. Nous avons configuré un serveur web simple sur le port 8080 qui simule plusieurs hôtes virtuels. Dans un scénario réel, vous remplaceriez 127.0.0.1:8080 par l'adresse IP ou le nom de domaine réel de votre cible.
Pour confirmer que le serveur web est en cours d'exécution, vous pouvez utiliser curl pour lui faire une requête.
curl http://127.0.0.1:8080
Vous devriez voir une sortie similaire à celle-ci, indiquant que le serveur est actif :
This is vhost1 content.
Cette sortie provient du vhost par défaut (ou du premier servi par le serveur Python simple). Notre objectif est de trouver d'autres vhosts "cachés".
Construire la Commande gobuster de Base pour les Vhosts
Dans cette étape, vous apprendrez à construire la commande gobuster de base pour un scan de vhost.
La commande gobuster pour le scan de vhost utilise le mode vhost. Les indicateurs (flags) essentiels pour un scan de vhost sont :
-u: Spécifie l'URL cible.-w: Spécifie la liste de mots (wordlist) à utiliser pour le brute-force des noms de vhost.
La syntaxe de base sera gobuster vhost -u <target_url> -w <wordlist_path>.
Pour notre laboratoire, l'URL cible est http://127.0.0.1:8080. Nous avons également préparé une liste de mots à l'emplacement /tmp/vhost_wordlist.txt qui contient des noms de noms d'hôtes virtuels potentiels.
Examinons le contenu de la liste de mots :
cat /tmp/vhost_wordlist.txt
Vous devriez voir la sortie suivante :
vhost1
vhost2
hidden_vhost
test
dev
admin
Cette liste de mots contient des noms de vhost courants et d'autres plus spécifiques que nous nous attendons à trouver.
Exécuter le Scan avec les Indicateurs -u et -w
Dans cette étape, vous allez exécuter le scan de vhost gobuster en utilisant l'URL cible et la liste de mots fournie.
Maintenant, combinez l'URL cible et le chemin de la liste de mots dans la commande gobuster.
gobuster vhost -u http://127.0.0.1:8080 -w /tmp/vhost_wordlist.txt
Appuyez sur Entrée pour exécuter la commande. Gobuster commencera à parcourir la liste de mots, en envoyant des requêtes avec chaque mot comme en-tête Host, et en rapportant les hôtes virtuels découverts.
La sortie affichera la progression et les résultats réussis. Elle pourrait ressembler à ceci :
===============================================================
Gobuster v3.6
by OJ (https://github.com/OJ/gobuster)
===============================================================
[+] Url: http://127.0.0.1:8080
[+] Wordlist: /tmp/vhost_wordlist.txt
[+] Threads: 10
[+] Timeout: 10s
[+] User Agent: gobuster/3.6
===============================================================
2024/07/30 10:00:00 Starting gobuster in vhost mode
===============================================================
Found: vhost1 (Status: 200) [Size: 20]
Found: vhost2 (Status: 200) [Size: 20]
Found: hidden_vhost (Status: 200) [Size: 27]
===============================================================
2024/07/30 10:00:05 Finished
===============================================================
Vous pouvez constater que gobuster a trouvé avec succès vhost1, vhost2 et hidden_vhost.
Examiner la Sortie des Hôtes Virtuels Découverts
Dans cette étape, vous allez analyser la sortie du scan gobuster pour comprendre les hôtes virtuels découverts.
La sortie de gobuster fournit des informations clés pour chaque hôte virtuel découvert :
Found:: Le nom de l'hôte virtuel qui a été résolu avec succès.(Status: 200): Le code d'état HTTP retourné par le serveur. Un200 OKindique généralement que le vhost existe et a servi du contenu avec succès. D'autres codes d'état (par exemple,301,302,403,404) peuvent également être pertinents en fonction de la configuration du serveur.[Size: XX]: La taille du corps de la réponse en octets. Cela peut parfois aider à distinguer différents types de contenu ou des pages par défaut.
D'après la sortie de l'étape précédente, vous auriez dû voir :
Found: vhost1 (Status: 200) [Size: 20]Found: vhost2 (Status: 200) [Size: 20]Found: hidden_vhost (Status: 200) [Size: 27]
Ces entrées indiquent que gobuster a identifié avec succès trois hôtes virtuels sur http://127.0.0.1:8080 en utilisant la liste de mots fournie. Dans un scénario réel, vous investigueriez ensuite ces vhosts découverts en y naviguant (par exemple, curl -H "Host: vhost1" http://127.0.0.1:8080) ou en utilisant d'autres outils de sécurité web.
Ceci conclut le laboratoire de scan de vhost de base. Vous avez utilisé avec succès gobuster pour identifier des hôtes virtuels.
Résumé
Dans ce laboratoire, vous avez appris à effectuer un scan de base des hôtes virtuels à l'aide de Gobuster. Vous avez compris le concept des hôtes virtuels, sélectionné une cible, construit la commande gobuster avec les indicateurs -u (URL) et -w (liste de mots), exécuté le scan et interprété les résultats. Cette compétence est fondamentale pour découvrir des applications web cachées et élargir la surface d'attaque lors des évaluations de sécurité.



