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.

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 facillement participer aux jeux du hackfest et commencer son apprentissage des techniques de test de pénétration.