Dirhunt un outil pour énumérer les répertoires d’un site web (sans-brute-force)

Publié par Geoffrey Sauvageot-Berland le

Rappel : L’article qui va suivre contient des techniques et méthodes qui peuvent s’avérer être illégales et dangereuses si elles sont utilisées à mauvais escient. Ce tutoriel a été construit dans un but pédagogique et doit en aucun cas être utilisé contre un particulier, une entreprise, une organisation à but non lucratif ou une administration publique de quelconque pays. le-guide-du-sysops.fr se dédouane de toute responsabilité en cas de problèmes ou d’incidents de quelque nature que ce soit après le visionnage de cet article.

Hello, je vous présente aujourd’hui l’outil très intéressant Dirhunt que j’ai découvert récemment lors de différentes recherches pour réaliser un article sur ce blog. ^^ Dirhunt est un un outil d’énumération de répertoires web qui n’utilise pas la technique du bruteforce, ce qui peut être très pratique pour passer « sous les radars » de certains systèmes d’auto-détection de ce genre d’attaque.

Mais avant d’aller plus loin, je souhaiterais rappeler les autres méthodes (qui utilisent le principe du brute force)

  • Utiliser un fichier dictionnaire  contenant un ensemble de noms de répertoires « communs », c’est à dire qui sont très souvent présents sur les applications web. Ex : /pages /js /login etc… etc. Des outils tels que dirbuster ou dirsearch permettent de réaliser ce type d’opération. Bien sur, plus la liste est longue, plus la chance d’aboutir à un résultat augmente. Mais cette technique est totalement inefficace si les dossiers ont une forme personnalisée : Ex : resultats-financier-semestre-1-2020
  • Utiliser un proxy web positionné entre notre navigateur et le serveur web, et exploiter manuellement le site avec le plus d’exhaustivité possible. On essaie d’accéder à toutes formes de contenues, et on se retrouve au final avec un grand nombre de fichiers et répertoires listés dans notre proxy, qui pour la très grande majorité sont des résultats non pertinents dans une démarche de pentest.

Ces deux méthodes sont généralement inefficaces si la société à une bonne PSSI, et certains systèmes de protection peuvent facilement détecter et contrer ce genre d’attaque. Si vous avez quelques résultats intéressants, estimez-vous heureux. « Qui ne tente rien n’a rien ».

Dirhunt peut-être utilisé en amont de ces deux autres méthodes. Il agit comme un crawler, c’est à dire qu’il va suivre tous les liens des pages web du site ciblé, et cela automatiquement.

Un robot d’indexation (web crawler en anglais) est un logiciel qui explore automatiquement le Web. Il est généralement conçu pour collecter les ressources (pages Web, images, vidéos, documents Word, PDF ou PostScript, etc.), afin de permettre à un moteur de recherche comme google, ou bing de les indexer. https://fr.wikipedia.org/wiki/Robot_d%27indexation

Je rajouterai à cela que notre fameux Dirhunt est capable de lister et d’accéder à tous les liens HyperText (identifié généralement avec l’attribut HTML href= » ». Cela est très intéressant car nous pouvons espérer trouver des sous-dossiers / fichiers (dont le nom n’est pas commun). Pour faire une petite analogie : Je vois cela un peu comme une araignée qui cherche à tisser des liens entre des pages WEB « voisines l’une de l’autre ».

Cas pratique

Prérequis

  • Un serveur WEB (Dans mon cas Apache2) – Ubuntu 20.04 : IP : 192.168.145.158/24
  • Machine attaquante : Kalilinux 2020.4 : IP 192.168.145.150/24

Installation de Dirhunt

Par défaut cet outil n’est pas présent dans le gestionnaire de paquets apt, nous allons devoir utiliser le gestionnaire de paquets annexe pip. (qui n’est pas présent nativement sous kaliliux lui aussi actuellement)

sudo apt install python3-pip
pip3 install dirhunt

Ensuite, nous allons mettre en place notre serveur WEB rapidement sur la machine victime (192.168.145.158/24) :

sudo apt install apache2
cd /var/www/html
rm index.html 

Puis, je vais uploader un site web factice afin, ou j’ai ajouté un dossier «  » et inséré à l’intérieur un fichier .xlsx factice lui aussi. Voici le lien du faux site si-vous souhaitez gagner du temps. https://le-guide-du-secops.fr/wp-content/uploads/2021/01/site-web-test-dirhunt.zip

Dézipper l’archive dans votre répertoire /var/www/html

Aucune action est requise si vous utiliser l’archive .zip fournit. Sinon dans le cas contraire, créez un dossier avec un nom nom commun et insérez un fichier en guise de test dans celui-ci.
Aucune action est requise. Si vous n’utiliser pas l’archive .zip, ouvrez votre fichier index.html et insérez le lien de se dossier dans une balise href= » ».

Vérifier que vous pouvez joindre le site web depuis votre machine attaquante…

A L’attaque !

Lancez l’attaque (basique) comme cela :

dirhunt http://192.168.145.158

Afin de trier les résultat et d’afficher seulement les pages retournant un status différent de l’erreur 404, nous allons à la suite de cette commande l’argument --exclude-flags "404"

dirhunt http://192.168.145.158 --exclude-flags "404"

En lisant entre les lignes, nous trouvons un dossier dont le nom n’est pas commun : resultats-financier-semestre-1-2020. En accédant au lien par le biais d’un navigateur nous tombons sur le fichier désigné « sensible » mais factice : resultats-financier-semestre-1-2020.xlsx,

Vous pouvez ajuster la granularité de votre attaque en rajoutant l’argument --max-depth

dirhunt http://192.168.145.158 --exclude-flags "404" --max-depth 1
# Le 1 veut dire dirhunt n'explorera pas les sous-dossiers d'un sous-dossier ^^ 

Vous avez aussi d’autres options, qui vous permette de pouvoir ajuster la finesse de votre attaque. dirhunt --help pour plus d’informations.

Bien entendu ce scénario est optimiste, et vous avez peu de chances d’arriver à un résultat concret en finalité. Mais c’est le principe du pentest, vous cherchez, cherchez et éventuellement vous trouvez une faille. Tout est une question d’expérience, d’exploitation des bons outils, d’analyse des résultats et cela dépend du « bouclier numérique » de la victime.

A bientôt !

++

Geoffrey pour le guide du sysops


En savoir plus sur LGDS • Le Guide Du SecOps

Subscribe to get the latest posts sent to your email.


Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"

En savoir plus sur LGDS • Le Guide Du SecOps

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture