Dépannage des erreurs de connexion Gobuster courantes

Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous acquerrez une expérience pratique dans l'identification et la résolution des erreurs de connexion courantes qui peuvent survenir lors de l'utilisation de Gobuster, un outil puissant pour le brute-forcing de répertoires et de fichiers. Comprendre ces erreurs est crucial pour une énumération web et des tests d'intrusion efficaces. Vous simulerez différents scénarios réseau, observerez le comportement de Gobuster et apprendrez à interpréter ses messages d'erreur pour ajuster votre stratégie de scan. Cette approche pratique vous dotera des compétences nécessaires pour résoudre efficacement les problèmes de Gobuster dans des scénarios réels.

Simulation d'une erreur "Connection Refused" en ciblant un port fermé

Dans cette étape, vous allez simuler une erreur de type "Connection Refused". Cette erreur se produit généralement lorsque Gobuster tente de se connecter à un hôte et à un port cibles, mais qu'aucun service n'écoute sur ce port, ou qu'un pare-feu rejette activement la connexion. Vous utiliserez un port inexistant sur un site web courant pour déclencher cette erreur.

Ouvrez votre terminal et exécutez la commande gobuster suivante. Nous ciblerons example.com sur un port élevé, peu susceptible d'être ouvert (par exemple, 65530) pour garantir une erreur de connexion refusée. Nous utiliserons également une petite liste de mots pour voir rapidement l'erreur.

gobuster dir -u http://example.com:65530 -w /usr/share/wordlists/dirb/common.txt -t 1 -k -q
  • -u http://example.com:65530: Spécifie l'URL cible avec un port fermé.
  • -w /usr/share/wordlists/dirb/common.txt: Utilise une petite liste de mots courante.
  • -t 1: Définit le nombre de threads concurrents à 1 pour rendre l'erreur plus évidente.
  • -k: Ignore la vérification du certificat SSL (pas strictement nécessaire ici, mais bonne pratique pour le scan web général).
  • -q: Supprime la bannière et la sortie de progression, se concentrant sur les erreurs.

Vous devriez observer une sortie similaire à celle-ci, indiquant des erreurs de connexion refusée :

[!] Could not connect to http://example.com:65530: dial tcp XX.XX.XX.XX:65530: connect: connection refused

Cette sortie montre clairement que Gobuster n'a pas pu établir de connexion car elle a été activement refusée par la cible.

Simulation d'une erreur "Timeout" en ciblant un serveur lent avec un --timeout bas

Dans cette étape, vous allez simuler une erreur de type "Timeout". Un timeout se produit lorsque Gobuster tente de se connecter à un serveur ou d'envoyer/recevoir des données, mais que l'opération prend plus de temps que la durée de timeout spécifiée. Cela peut arriver avec des serveurs lents, une congestion réseau, ou lorsqu'un serveur retarde intentionnellement les réponses. Vous utiliserez un point d'accès public de "serveur lent" et définirez une valeur de timeout très basse pour provoquer cette erreur.

Exécutez la commande gobuster suivante. Nous ciblerons http://slowwly.robertomurray.co.uk/delay/1000/url/http://www.google.com qui introduit un délai de 1 seconde, et nous définirons un timeout de gobuster de 500ms (0,5 seconde).

gobuster dir -u http://slowwly.robertomurray.co.uk/delay/1000/url/http://www.google.com -w /usr/share/wordlists/dirb/common.txt -t 1 --timeout 500ms -k -q
  • -u http://slowwly.robertomurray.co.uk/delay/1000/url/http://www.google.com: L'URL qui introduit un délai.
  • --timeout 500ms: Définit le timeout de connexion à 500 millisecondes. Comme le serveur retarde de 1000 ms, cela provoquera un timeout.

Vous devriez voir une sortie similaire à celle-ci, indiquant des erreurs de timeout :

[!] Could not connect to http://slowwly.robertomurray.co.uk/delay/1000/url/http://www.google.com: Get "http://slowwly.robertomurray.co.uk/delay/1000/url/http://www.google.com/admin": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

Ceci montre que la tentative de connexion de Gobuster a expiré avant qu'une réponse ne puisse être reçue.

Comprendre les erreurs DNS en ciblant un domaine inexistant

Dans cette étape, vous rencontrerez une erreur DNS. Ce type d'erreur se produit lorsque Gobuster ne parvient pas à résoudre le nom d'hôte de l'URL cible en une adresse IP. Cela arrive généralement si le nom de domaine est mal orthographié, n'existe pas, ou s'il y a des problèmes avec votre résolveur DNS.

Exécutez la commande gobuster suivante, en ciblant un domaine clairement inexistant comme nonexistentdomain12345.com.

gobuster dir -u http://nonexistentdomain12345.com -w /usr/share/wordlists/dirb/common.txt -t 1 -k -q
  • -u http://nonexistentdomain12345.com: Cible un domaine qui ne devrait pas être résolu.

Vous devriez observer une sortie similaire à celle-ci, indiquant un échec de résolution DNS :

[!] Could not connect to http://nonexistentdomain12345.com: dial tcp: lookup nonexistentdomain12345.com: no such host

Ce message d'erreur no such host indique clairement que le nom de domaine n'a pas pu être résolu par le système DNS.

Utiliser le drapeau --no-error pour supprimer ces messages

Dans cette étape, vous apprendrez à utiliser le drapeau --no-error dans Gobuster. Bien que la compréhension des erreurs soit importante pour le dépannage, vous pourriez parfois vouloir supprimer les messages d'erreur verbeux, en particulier lors de scans importants où quelques problèmes de connexion sont attendus et où vous ne vous souciez que des résultats réussis. Le drapeau --no-error indique à Gobuster de ne pas afficher les erreurs de connexion.

Réexécutons la commande de l'étape 1, mais cette fois en ajoutant le drapeau --no-error.

gobuster dir -u http://example.com:65530 -w /usr/share/wordlists/dirb/common.txt -t 1 -k -q --no-error

Notez que même si la connexion est toujours refusée, Gobuster n'affichera pas les messages [!] Could not connect... dans la console. La sortie sera beaucoup plus propre, affichant potentiellement uniquement les résultats réussis (s'il y en a, ce qui est peu probable pour un port fermé) ou simplement le résumé final.

## Aucun message d'erreur lié au refus de connexion ne sera affiché.

Ce drapeau est utile lorsque vous souhaitez vous concentrer uniquement sur les résultats réussis de votre scan sans être submergé par les journaux d'erreurs de connexion.

Apprendre à interpréter les erreurs pour ajuster les paramètres de scan

Dans cette étape, vous consoliderez votre compréhension de la manière d'interpréter les erreurs de Gobuster et utiliserez ces connaissances pour ajuster vos paramètres de scan afin d'obtenir des résultats plus efficaces. Le point clé est que différentes erreurs suggèrent différentes solutions.

  • "Connection Refused" (Connexion refusée) : Cela signifie souvent que le service ne fonctionne pas sur ce port, qu'un pare-feu bloque, ou que l'hôte est hors service.
    • Action : Vérifiez à nouveau l'URL et le port cible. Si vous êtes sûr que le service devrait être présent, enquêtez sur les règles du pare-feu ou la connectivité réseau. Vous pourriez avoir besoin de passer à un port ou une cible différent.
  • "Timeout" (Délai d'attente dépassé) : Cela indique que le serveur est lent, que la latence réseau est élevée, ou que le serveur retarde intentionnellement les réponses.
    • Action : Augmentez la valeur de --timeout (par exemple, --timeout 5s). Vous pourriez également envisager de réduire le nombre de threads (-t) pour moins solliciter la cible ou votre réseau.
  • "No such host" (Aucun hôte de ce type - Erreur DNS) : Le nom de domaine ne peut pas être résolu.
    • Action : Vérifiez les fautes de frappe dans le nom de domaine. Vérifiez vos paramètres DNS ou essayez d'utiliser un résolveur DNS différent. Si le domaine n'existe réellement pas, vous avez ciblé le mauvais endroit.

Considérez un scénario où vous scannez une cible et rencontrez fréquemment des erreurs "Timeout". D'après ce que vous avez appris, vous ajusteriez votre commande en augmentant le délai d'attente. Par exemple, si votre commande initiale était :

gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt -t 20

Et que vous constatez de nombreux timeouts, vous la modifieriez comme suit :

gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt -t 10 --timeout 5s

Ici, vous avez réduit le nombre de threads à 10 et augmenté le délai d'attente à 5 secondes, ce qui améliorerait probablement le taux de réussite de vos requêtes sur un serveur lent.

Ce processus itératif consistant à exécuter Gobuster, à observer les erreurs et à ajuster les paramètres est une compétence fondamentale pour une énumération web efficace.

Résumé

Dans ce laboratoire, vous avez appris avec succès à identifier et à résoudre les erreurs de connexion courantes de Gobuster. Vous avez simulé les erreurs "Connection Refused" (Connexion refusée), "Timeout" (Délai d'attente dépassé) et "No such host" (Aucun hôte de ce type - Erreur DNS), en comprenant les causes sous-jacentes de chacune. Vous avez également appris à supprimer les messages d'erreur à l'aide du drapeau --no-error pour une sortie plus propre. Plus important encore, vous avez acquis des connaissances pour interpréter ces erreurs afin d'ajuster efficacement vos paramètres de scan Gobuster, tels que l'augmentation du délai d'attente ou la vérification de l'URL cible, afin d'améliorer l'efficacité et le taux de réussite de vos efforts d'énumération web. Ces connaissances pratiques sont inestimables pour toute personne effectuant des tests de pénétration web ou de la chasse aux bugs (bug bounty hunting).