Désactiver la vérification des certificats TLS dans Gobuster

Beginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à gérer les situations où Gobuster rencontre des erreurs de certificat TLS, en particulier lorsqu'il s'agit de certificats auto-signés ou invalides. Par défaut, Gobuster, comme de nombreux autres outils, effectue une vérification stricte des certificats TLS pour garantir une communication sécurisée. Cependant, dans certains scénarios de test, vous pourriez avoir besoin de contourner cette vérification. Ce laboratoire vous guidera dans l'identification d'une telle cible, l'observation de l'erreur par défaut, puis l'utilisation de l'option -k pour désactiver la vérification des certificats, permettant ainsi au scan de se poursuivre. Enfin, nous discuterons des implications de sécurité de la désactivation de la vérification TLS.

Identifier une cible utilisant un certificat TLS auto-signé ou invalide

Dans cette étape, vous allez identifier une URL cible qui utilise un certificat TLS auto-signé ou invalide. Dans le cadre de ce laboratoire, nous utiliserons un site de test publiquement disponible, connu pour avoir des problèmes de certificat que Gobuster signalera. Cela nous permettra de démontrer de manière fiable le problème et sa solution.

Ouvrez votre terminal et utilisez curl pour tenter d'accéder à l'URL cible. Vous devriez observer une erreur de certificat, indiquant que le certificat n'est pas approuvé par votre système. C'est le type de scénario où Gobuster rencontrerait également des problèmes.

Exécutez la commande suivante :

curl https://self-signed.badssl.com/

Vous devriez voir une sortie similaire à celle-ci, indiquant un problème de certificat :

curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about such a situation and
how to fix it, please consult the relevant articles in the links above.

Cette sortie confirme que la cible https://self-signed.badssl.com/ présente un certificat qui n'est pas approuvé par défaut, ce qui est exactement ce dont nous avons besoin pour ce laboratoire.

Tenter un scan et observer l'erreur de certificat

Dans cette étape, vous allez tenter d'exécuter Gobuster sur la cible identifiée sans désactiver la vérification du certificat TLS. Comme prévu, Gobuster rencontrera le certificat auto-signé et se terminera par une erreur, similaire à ce que curl a montré. Cela démontre le comportement par défaut de Gobuster qui impose une validation stricte des certificats.

Exécutez la commande Gobuster suivante :

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -q
  • dir : Spécifie que nous effectuons un scan de force brute de répertoires/fichiers.
  • -u https://self-signed.badssl.com/ : Définit l'URL cible.
  • -w /usr/share/wordlists/dirb/common.txt : Spécifie la liste de mots à utiliser pour la force brute.
  • -q : Supprime la bannière et les autres sorties non essentielles, rendant l'erreur plus claire.

Vous devriez observer une sortie similaire à celle-ci, indiquant une erreur de handshake TLS :

[!] GoBuster is unable to connect to the target: Get "https://self-signed.badssl.com/": x509: certificate signed by unknown authority

Ce message d'erreur confirme que Gobuster n'a pas réussi à établir une connexion en raison du certificat non approuvé, empêchant ainsi le scan de se poursuivre.

Relancer le scan avec le drapeau -k

Dans cette étape, vous allez relancer le scan Gobuster, mais cette fois-ci, vous inclurez le drapeau -k. Le drapeau -k (abréviation de --no-tls-validation) demande à Gobuster d'ignorer la vérification du certificat TLS. Ceci est utile dans des environnements contrôlés ou lors de tests sur des cibles avec des certificats auto-signés où vous faites explicitement confiance à la cible malgré l'avertissement du certificat.

Exécutez la commande Gobuster suivante, en ajoutant le drapeau -k :

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -k -q
  • -k : C'est le drapeau crucial qui désactive la vérification du certificat TLS.

Cette fois, Gobuster ne devrait pas se terminer immédiatement avec une erreur de certificat. Au lieu de cela, il commencera le processus de force brute de répertoires. Vous pourriez ne pas voir de sortie immédiate si la liste de mots est volumineuse et si aucun répertoire n'est trouvé rapidement, mais l'absence de l'erreur précédente indique un succès.

Observer que le scan progresse maintenant

Dans cette étape, vous allez confirmer que le scan Gobuster est maintenant actif et traite la liste de mots, grâce au drapeau -k. Comme le drapeau -q a été utilisé pour supprimer la plupart des sorties, vous pourriez ne pas voir beaucoup d'activité à moins qu'un répertoire ne soit trouvé. Pour rendre la progression plus visible, nous allons supprimer le drapeau -q et laisser Gobuster s'exécuter pendant une courte période.

Exécutez à nouveau la commande suivante, mais cette fois sans le drapeau -q, afin de pouvoir voir la progression :

gobuster dir -u https://self-signed.badssl.com/ -w /usr/share/wordlists/dirb/common.txt -k

Vous devriez maintenant voir la sortie normale de Gobuster, indiquant qu'il scanne activement la cible. La sortie montrera la progression et tous les répertoires ou fichiers découverts. Par exemple :

===============================================================
Gobuster vX.X.X                -- by OJ <@_odejim> & @Neohapsis
===============================================================
[+] Url:                     https://self-signed.badssl.com/
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Status codes:            200,204,301,302,307,401,403,405
[+] User Agent:              gobuster/X.X.X
[+] Timeout:                 10s
[+] Allow redirects:         false
[+] Follow new location:     false
[+] No TLS validation:       true
===============================================================
2023/10/27 10:30:00 Starting gobuster in directory enumeration mode
/admin                (Status: 301)
/login                (Status: 301)
...

Vous pouvez appuyer sur Ctrl+C pour arrêter le scan une fois que vous avez confirmé qu'il est en cours d'exécution. Le point clé est que le scan a démarré avec succès sans l'erreur de certificat précédente.

Comprendre les implications de sécurité de la désactivation de la vérification

Dans cette dernière étape, nous allons discuter des implications de sécurité de la désactivation de la vérification du certificat TLS. Bien que le drapeau -k soit utile pour des scénarios de test spécifiques, il est crucial de comprendre pourquoi il doit être utilisé avec prudence et uniquement lorsque cela est nécessaire.

Lorsque vous désactivez la vérification du certificat TLS, vous demandez essentiellement à Gobuster (ou à tout autre outil) de faire confiance à tout certificat présenté par le serveur, qu'il soit valide, expiré, auto-signé ou émis par une autorité non fiable. Cela ouvre la porte à plusieurs risques de sécurité :

  1. Attaques de l'homme du milieu (MitM - Man-in-the-Middle) : Un attaquant pourrait intercepter votre connexion à un serveur légitime et présenter son propre certificat falsifié. Si la vérification est désactivée, votre outil se connecterait à l'insu à un serveur de l'attaquant, lui permettant d'écouter ou de manipuler votre trafic.
  2. Usurpation d'identité : Vous pourriez accidentellement vous connecter à un serveur malveillant usurpant l'identité de votre cible prévue. Sans vérification de certificat, il n'y a aucune assurance cryptographique que vous communiquez avec le serveur authentique.
  3. Compromission de l'intégrité et de la confidentialité des données : Si un attaquant parvient à effectuer une attaque MitM, il peut potentiellement lire, modifier ou injecter des données dans votre communication, compromettant ainsi la confidentialité et l'intégrité.

Quand est-il acceptable d'utiliser -k ?

  • Environnements de test contrôlés : Lorsque vous testez une application ou un serveur dans un environnement de laboratoire où vous contrôlez explicitement le serveur et êtes conscient de ses certificats auto-signés ou invalides.
  • Réseaux internes : Pour les outils internes communiquant au sein d'un réseau de confiance où vous avez un contrôle total sur tous les points d'extrémité et comprenez les risques.
  • Débogage : Temporairement à des fins de débogage, mais réactivez toujours la vérification pour les opérations de production ou sensibles.

Meilleure pratique : Privilégiez toujours une vérification forte des certificats TLS. Ne la désactivez que lorsque cela est absolument nécessaire et en comprenant pleinement les risques associés. Pour les systèmes de production, assurez-vous que des certificats valides et fiables sont toujours utilisés.

Ceci conclut le laboratoire sur la désactivation de la vérification du certificat TLS dans Gobuster. Vous avez appris comment identifier une cible avec des problèmes de certificat, observer le comportement par défaut de Gobuster, puis contourner la vérification en utilisant le drapeau -k, tout en comprenant les implications critiques en matière de sécurité.

Résumé

Dans ce laboratoire, vous avez appris avec succès comment gérer la vérification des certificats TLS dans Gobuster. Vous avez commencé par identifier une cible avec un certificat auto-signé à l'aide de curl, ce qui a démontré l'erreur de certificat typique. Ensuite, vous avez observé comment Gobuster, par défaut, échoue à scanner une telle cible en raison d'une validation TLS stricte. Le cœur du laboratoire a consisté à utiliser le drapeau -k avec Gobuster pour contourner la vérification du certificat, permettant au scan de se poursuivre. Enfin, vous avez acquis une compréhension des implications de sécurité importantes de la désactivation de la vérification TLS, en soulignant son utilisation prudente uniquement dans des scénarios de test contrôlés ou spécifiques. Ces connaissances sont cruciales pour une utilisation efficace et sécurisée des outils de scan web.