Backtrack 101-2-Dirbuster
La série Backtrack 101 a pour objectif de faire découvrir aux débutants plusieurs outils distribués avec Backtrack Linux. Ainsi, en suivant ces articles, un débutant peut participer aux jeux du hackfest et commencer son apprentissage des techniques de test de pénétration.
Dans ce premier article, nous allons parler d'un outils pratique nommé Dirbuster.
Site officiel du projet: https://www.owasp.org/index.php/Category:OWASP_DirBuster_Project
Synopsie:
Dirbuster est une application Java libre distribuée par le groupe OWASP. L'objectif de l'outil est de découvrir des répertoires et fichiers cachés sur un serveur web. En effet, plusieurs programmeurs et administrateurs ont une tendance à vouloir cacher des pages et sections critiques en ne liant pas ces pages et répertoire sur leur site web. Hors, avec un outil comme Dirbuster, il est possible de décrouvrir ces pages et répertoires.
Comment est-ce que ça fonctionne?
Dirbuster peut fonctionner en deux mode:
- Attaque de dictionnaire
- Force brutte
Dans le premier cas, une liste de mot sera utilisĂ©e pour faire des requĂȘtes sur le site web ciblĂ©. Ceci a la limitation que seuls les mots prĂ©sents dans la liste peuvent ĂȘtre dĂ©couvert sur le site web. Dans l'Ă©ventualitĂ© oĂč cela ne serait pas suffisant, il est possible d'utiliser le mode Force brutte dans lequel toutes les possibilitĂ©s de mot seront essayĂ©s. Malheureusement, le mode Force brutte peu augmenter considĂ©rablement le temps nĂ©cĂ©ssaire pour faire une dĂ©couverte et augmente aussi la trace du programme sur le rĂ©seau. Ainsi donc, lorsque qu'une tentative est faite avec un mot, peu importe le mode, le rĂ©sultat de la requĂȘte HTTP est analysĂ© par l'application. Dans l'Ă©ventualitĂ© d'une requĂȘte rĂ©ussie, le programme indique qu'il a dĂ©couvert un rĂ©pertoire ou un fichier.
Liste de mots
Heureusement pour nous, Dirbuster est distribué avec 9 listes de mots distinctes préparées par l'équipe d'OWASP. Ces listes sont disponibles dans le répertoire /pentest/web/dirbuster tel que le montre la figure suivante:
Les bases
Avec ces listes de mots, vous ĂȘtes prĂȘt Ă utiliser Dirbuster. Pour lancer l'application, Ă partir de la ligne de commande, Ă l'intĂ©rieur du rĂ©pertoire de Dirbuster, vous pouvez faire la commande:
root@bt:/pentest/web/dirbuster# java -jar Dirbuster-0.12.jar
L'application Dirbuster devrait s'ouvrir tel que montré à la figure suivante:
Nous sommes donc prĂȘt Ă utiliser l'application. Dans le but de l'article, j'ai prĂ©parĂ© un serveur web avec un hiĂ©rarchie dans le but de faire des tests. Voici le listing des fichiers prĂ©sent sur le serveur web organisĂ© de maniĂšre Ă voir les fichiers contenus par les rĂ©pertoire:
Pour commencer, nous allons utiliser les paramÚtres par défaut de l'application en sélectionnant la cible désirée (192.168.1.1 dans mon cas) et la liste de mots directory-list-2.3-small.txt (vous pouvez en apprendre plus sur l'organisation des listes de mots sur le site officiel du projet déja cité en début d'article). Avant de lancer l'outil, l'interface devrait ressembler à ceci:
En appuyant sur le bouton Start l'outil est lancĂ© et commence l'attaque de dictionnaire. Comme un passage de l'outil peut ĂȘtre assez long, il est possible et trĂšs pratique de voir les rĂ©sultats de recherche live pendant que celle-ci est en cours. La figure suivante montre l'outil en action:
Lorsque le passge de Dirbust est terminĂ©, ou lorsque vous arrĂȘtez ce dernier, il est possible de sauvegarder les trouvailles dans un rapport, la figure suivante montre une petite partie du rapport fait sur l'environnement de test:
Comme le montre le rapport, il est possible d'apprendre qu'un répertoire inatentu a été découvert. En effet, le répertoire manual ajouté par la configuratin du serveur apache utilisé pour faire cette démonstration a été découvert. Une visite rapide sur le répertoire permet de voir tel que le montre la figure suivante que le répertoire est bel et bien disponible sur le serveur web.
Ainsi, cette approche permet d'apprendre beaucoup d'information sur les fichiers et répertoires présents sur le serveur. Malheureusement pour la partie attaquante, cette méthode de découvrir les fichiers et dossiers cachés sur le serveur laisse de lourdes traces dans les journaux du serveur web tel que le montre la figure suivante.
N'oublions pas que ce serveur est utilisé uniquement pour l'exemple présent. Ainsi, des fichiers log de 44 et 26 Mo sont donc définitivement annormal. Une simple surveillance de routine pourrait permettre la découverte de l'utilisation de l'outil en inspectant les journaux du serveur.
Quelques options supplémentaires
Brute force
Ă partir de l'interface principale, il est possible de sĂ©lectionner, tel que le montre la figure suivante, le mode brute force. Lorsque ce mode est activĂ©, l'application cesse d'utiliser une liste de mots et tente l'ensemble des possibilitĂ©s. Ce mode peut ĂȘtre pratique si ce que vous cherchez n'est pas prĂ©sent dans les listes de mots.
URL Fuzz
à partir de l'interface principale, il est possible de sélectionner le mode URL Fuzz. Ce mode est pratique pour tester, par exemple, les inclusions de fichiers faite à l'intérieur d'URL. La figure suivante montre comment utiliser ce mode.
Dans l'exemple donné ici, les inclusions de fichiers faites en paramÚtre lors d'un appel au fichier includeFile.php seront testé soit par liste de mot soit par force brutte. Notez qu'avec une liste de mot appropriée, il serait possible d'utiliser le fuzzer de cet outil pour fuzzer une foule de choses.
HTML Parsing
Par dĂ©faut, l'interprĂ©tation des balises HTML est activĂ©e. L'interprĂ©tation faite des balises HTML peut ĂȘtre configurĂ©e de maniĂšre plus fine. Les options d'interprĂ©tation sont disponibles Ă partir des options avancĂ©s disponibles par le menu options de l'application. Voici l'interface de configuration:
Tel que vous pouvez voir, il est possible à partir de cette interface de spécifier les balises html à inspecter ainsi que l'attribut de la balise pouvant contenir un lien HTML. Ainsi, il sera possible pour Dirbuster pour découvrir des fichiers et dossiers en inspectant les paramÚtres de balises HTML. Nous pourrions par exemple ajouter la balise link normalement utilisée pour inclure des fichiers css pour qu'elle soit aussi interprétée car les paramÚtres par défaut de Dirbuster ne permettent pas l'interprétation de cette balise.
Options d'authentification
Dirbuster offre aussi la gestion des authentifications. Ainsi,en utilisant les options d'authentification, il serait possible pour disbuster d'entrer à l'intérieur des répertoires protégés par mot de passe. Les options d'authentification sont disponibles à partir des options avancés disponibles par le menu options de l'application. Tel que le montre la figure suivante, l'activation de ces options est simple. Il suffit d'activer la case à cocher, d'entrer les informations d'authentification et de sélectionner le mode d'authentification.
Options du protocole HTTP
Certaines options du protocole HTTP peuvent ĂȘtre configurĂ©es pour modifier le comportement de l'application. Les options du protocole HTTP sont disponibles Ă partir des options avancĂ©s disponibles par le menu options de l'application. C'est dans cette interface qu'il serait possible de configurer un proxy si nĂ©cĂ©ssaire. De plus, il serait aussi possible de configurer des entĂȘtes HTTP personnalisĂ©es au besoin. Une des fonctionnalitĂ©s importante est la configuration du User Agent. Certains sites pourraient dĂ©tecter l'utilisation de Dirbuster Ă l'aide de son User Agent et ainsi refuser les requĂȘtes provenant de l'outil. Un attaquant pourrait donc modifier le paramĂštre en utilisant une valeur User Agent d'un navigateur populaire et ainsi empĂȘcher un serveur de le bloquer sur la base du User Agent. La figure suivante montre l'interface de configuration des options HTTP.
Mot de la fin
Ainsi, comme nous avons Ă©tĂ© en mesure de le constater, l'utilisation de Dirbuster pourrait ĂȘtre une des premiĂšres Ă©tapes dans un test de pĂ©nĂ©tration sur un serveur web. Malheureusement, l'empreinte qu'il laisse sur le serveur, bien que limitable (option de scan non discutĂ© dans l'article) demeure quand mĂȘme majeure et relativement facile Ă dĂ©tecter.
Vous avez aimez cet article?
Vous aimeriez lire un article sur un outil qui ne vous est pas famillier? Laissez simplement le nom de l'outil en commentaire, s'il est disponible dans Backtrack, un article sera écrit sur l'outil en question.