Dans les parties précédentes, nous avons appris à nous renseigner sur la cible, son écosystème, les services exposés, vérifier son chiffrement, etc. Mais nous n’avons normalement même pas encore regardé à quoi ressemblait l’application !
Comprenez l’intérêt d'un proxy d'interception web
Avant de commencer à tester et réaliser des actions malveillantes dessus, je vous conseille fortement de prendre 30 minutes à 1 heure (en fonction de sa complexité) pour vous familiariser avec l'application, afin de :
comprendre son fonctionnement global et quelles sont ses fonctionnalités intéressantes ou sensibles,
chercher quels pourraient être les objectifs d’un attaquant par rapport à cette application,
regarder les URL/URI pour se donner des idées, etc.
Pour visualiser les données qui sont échangées entre vous et l’application, vous pourriez utiliser la console de débogage de votre navigateur (généralement via la touche F12) :
Mais entre nous, ce n’est pas très pratique :
la recherche dans l’historique n’est pas vraiment ergonomique ;
il est difficile de modifier et rejouer des requêtes ;
il n’est pas toujours possible de modifier des requêtes à la volée ;
et ne parlons même pas d’automatisation !
Il va permettre de répondre à tous les besoins cités précédemment, et bien plus encore. Voyons tout de suite de quoi il s’agit.
Contrôlez vos requêtes avec un proxy d'interception web
Comment ça fonctionne, un proxy d’interception dans notre cas ?
Techniquement, presque comme un proxy d’entreprise “normal” comme Cisco, Zscaler ou Squid. Mais attention à ne pas les confondre avec les reverse proxies comme NGINX !
On va configurer notre PC pour que les flux web soient envoyés à ce proxy, et ce proxy va ensuite les relayer aux serveurs web. La différence avec le proxy d’entreprise, c’est que nous avons la main sur le proxy pour intercepter, modifier et rejouer les requêtes.
À date sur le marché, on retrouve principalement :
Burp Suite, qui possède une version gratuite “community” ;
Ces deux outils sont édités en anglais, mais inutile d’être bilingue ici pour l’utiliser.
Si ce n'est pas installé par défaut sur Kali, voici la commande pour installer Burp Suite :
sudo apt update sudo apt install burpsuite -y
Voyons maintenant en vidéo comment :
lancer Burp.
configurer le proxy.
configurer le magasin de certificats.
Dans le cas de flux chiffrés, le proxy est obligé de faire ce qu’on appelle une terminaison SSL, c'est-à-dire déchiffrer les flux puis les rechiffrer avec son autorité de certification à lui, pour les envoyer au navigateur. Le proxy va donc générer, pour chaque site en HTTPS que nous visitons, un certificat SSL. Sans ça, impossible pour lui de faire son travail d’interception et de modification !
Voilà, vous êtes maintenant prêt à intercepter même les flux HTTPS, sans avoir de message d’erreur sur le certificat !
Maîtrisez les fonctions essentielles de Burp
Passons en revue les principales fonctionnalités de Burp. Vous allez forcément les utiliser à un moment ou un autre, que ce soit dans le cours, ou plus tard dans votre carrière de pentester :
Dans ce screencast, nous avons parlé de l’onglet "Intruder", qui permet d’automatiser un certain nombre de tâches, et notamment des attaque par force brute ou des attaques par dictionnaire.
Le projet SecLists compile une bonne base de départ pour les attaques par dictionnaire et la découverte de contenu. Dans Kali, vous pouvez l'installer via le gestionnaire de paquets APT :
sudo apt install seclists
Les listes seront dans le répertoire /usr/share/seclists/
; installez-le.
J’utiliserai parfois le terme "attaque par dictionnaire" dans le cours pour désigner le fait de tester un très grand nombre de possibilités.
À vous de jouer !
Challenge
Le but ici est de réaliser les actions suivantes avec Burp :
définir le scope sur l’URL du challenge sur le dossier du challenge en question ;
dans l’onglet Proxy, filtrer les résultats pour n’afficher que ceux du scope ;
rejouer la requête d’authentification depuis le repeater en faisant varier les paramètres
username
etpassword
;utiliser l’onglet Intruder avec la liste de mot situés ici sur l’URL de base du challenge ;
trouver le drapeau (flag) dans les résultats de l’intruder.
L’exercice sera réussi quand vous aurez réussi à valider le flag sur le site de Root Me !
Solution
En résumé
Un proxy d’interception permet notamment aux pentesters d’intercepter les échanges entre le navigateur du pentester et le serveur web pour les modifier, dans le but de tester le comportement de l’application.
Le proxy que nous allons utiliser, Burp Suite Community, permet bien d’autres choses, comme journaliser les requêtes, les rejouer et automatiser un certain nombre de tâches relatives au pentest.
Burp Suite est un outil personnalisable qui permet de rajouter et même de créer des extensions pour vos différents besoins.
Certaines sont développées directement par PortSwigger, l’éditeur de Burp, mais la plupart le sont par la communauté d'utilisateurs.
Dans la prochaine partie, nous allons apprendre à identifier le socle technique de notre cible pour collecter encore des informations sur cette dernière.