Prise en main de Bettercap sur Kali Linux

Bonjour à tous, aujourd'hui nous allons prendre en main l'utilitaire Bettercap (version actuelle : 2.X) qui est le couteau suisse pour la supervision et les attaques réseaux.

Pour l'installation, je vous invite à suivre leur github, qui est très bien documentée : https://github.com/bettercap/bettercap

Tout d'abord, pour lancer bettercap, il suffit de lancer la commande suivante :

1

o bettercap

1
2
3Avant de commencer à voir les différentes attaques, il faut savoir que nous allons utiliser des « **modules** », et ces derniers peuvent se configurer en utilisant la commande « **set** » : 
4
5
1 dns.spoof.domain toto.com
2

Et pour lancer le module, il suffit simplement d'appeler le module et d'ajouter l'argument « on » ou « off »

1

.spoof on

 1
 2
 3
 4
 5## Attaque ARP
 6
 7Cette attaque consiste à empoisonner le cache ARP de la machine cible afin de permettre de router les paquets vers la machine pirate.  
 8En effet, dans un réseau local, toutes les communications se font via les adresses MAC des machines. L'attaque ARP va permettre de modifier la table d'adresse MAC de la victime.
 9
10Il est judicieux de modifier l'adresse MAC de la passerelle par défaut de la victime afin de pouvoir récupérer tous les paquets transmis par la victime.  
11Attention, si vous attaquez la victime sans configurer votre machine comme « routeur », l'attaque sera appelé DOS (**Denial Of Service**). Les requêtes réalisés par la victime ne sera pas transmis au « vrai » destinataire et seront donc « drop ».
12
13Il est donc judicieux d'activer le mode routeur du Kali en saisissant cette commande :
14
15
1o 1 > /proc/sys/net/ipv4/ip_forward
2

Pour trouver la cible que l'on souhaite attaquer, nous utilisons la commande suivante :

1

.show

1<figure class="wp-block-image">
2
3[<img loading="lazy" width="1024" height="255" src="images/bettercap/bettercap_1-1024x255.png" alt="" class="wp-image-371" srcset="images/bettercap/bettercap_1-1024x255.png 1024w, images/bettercap/bettercap_1-300x75.png 300w, images/bettercap/bettercap_1-768x191.png 768w, images/bettercap/bettercap_1.png 1186w" sizes="(max-width: 1024px) 100vw, 1024px" />][1]</figure> 
4
5Notre victime sera la machine possédant l'adresse IP : **192.168.5.99** :
6
7
1 arp.spoof.targets 192.168.5.99
2

NB : Par défaut, la cible est le réseau où se trouve l'attaquant. Dans mon cas, si je n'avais pas modifié arp.spoof.target, l'attaque ARP aurait été propagée sur le réseau 192.168.5.0/24.

Nous vérifions la table ARP de la victime (avant l'attaque) :

L'adresse MAC commençant par « e4-5d » est la passerelle du réseau.
L'adresse MAC commençant par « d8-cb » est la machine de l'attaquant.

Lorsque nous activons le module :

1

.spoof on

 1
 2
 3Nous pouvons observer la modification de la table ARP de la victime : 
 4
 5![](/)
 6  <figure class="aligncenter"><a href="images/bettercap/bettercap_3.png"><img loading="lazy" width="451" height="124" src="images/bettercap/bettercap_3.png" alt="" class="wp-image-372" srcset="images/bettercap/bettercap_3.png 451w, images/bettercap/bettercap_3-300x82.png 300w" sizes="(max-width: 451px) 100vw, 451px" /></a></figure>
 7</div>
 8
 9A partir de maintenant, nous avons effectué une attaque MITM (**M**an-**I**n-**T**he-**M**iddle). Nous pouvons « sniffer » le réseau et nous verrons apparaître les paquets transmis par la victime.
10
11Nous pouvons dès à présent combiner cette attaque avec une attaque de type « Spoof DNS » pour vérifier son fonctionnement.
12
13## Attaque DNS
14
15Un « Spoof DNS » consiste à modifier la table DNS d'un client (ou d'un réseau entier). Lorsque la victime souhaitera contacter le site web http://apache.org (nous allons prendre le site apache.org comme exemple), il sera alors rediriger vers une autre adresse IP (privée ou public) en gardant le même nom de domaine.
16
17Nous commençons tout d'abord par configurer le spoof DNS : 
18
19

set dns.spoof.domains apache.org set dns.spoof.all true dns.spoof on

 1
 2
 3![](/)
 4  <figure class="aligncenter is-resized"><a href="images/bettercap/bettercap_4.png"><img loading="lazy" src="images/bettercap/bettercap_4.png" alt="" class="wp-image-375" width="502" height="77" srcset="images/bettercap/bettercap_4.png 629w, images/bettercap/bettercap_4-300x46.png 300w" sizes="(max-width: 502px) 100vw, 502px" /></a></figure>
 5</div>
 6
 7<u>NB :</u> _la commande « set dns.spoof.all true » permet de prendre en compte les requêtes provenant de l'extérieur (et non local à la machine)._
 8
 9Nous gardons bien évidement l'attaque spoof ARP en place pour cibler l'utilisateur que nous attaquons. 
10
11<u>Rappel : </u>
12
13

set arp.spoof.targets 192.168.5.99 arp.spoof on

1
2
3Vu que nous redirigeons les flux en provenance de « apache.org » vers l'ip de l'attaquant, nous allons monter un serveur web avec Bettercap : 
4
5

set http.server.path /var/www/html http.server on

 1
 2
 3_Attention de ne pas avoir un serveur web déjà allumé, sinon il faut modifier le port dans la configuration du serveur dans Bettercap (set http.server.port)_
 4
 5![](/)
 6  <figure class="aligncenter"><a href="images/bettercap/bettercap_5.png"><img loading="lazy" width="1024" height="282" src="images/bettercap/bettercap_5-1024x282.png" alt="" class="wp-image-377" srcset="images/bettercap/bettercap_5-1024x282.png 1024w, images/bettercap/bettercap_5-300x83.png 300w, images/bettercap/bettercap_5-768x212.png 768w, images/bettercap/bettercap_5.png 1212w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
 7</div>
 8
 9Avant la modification de la table ARP de la victime, lorsqu'il se rend sur apache.org il atteint la page officiel :
10
11![](/)
12  <figure class="aligncenter"><a href="images/bettercap/bettercap_6.png"><img loading="lazy" width="789" height="518" src="images/bettercap/bettercap_6.png" alt="" class="wp-image-378" srcset="images/bettercap/bettercap_6.png 789w, images/bettercap/bettercap_6-300x197.png 300w, images/bettercap/bettercap_6-768x504.png 768w" sizes="(max-width: 789px) 100vw, 789px" /></a></figure>
13</div>
14
15Après l&#8217;empoisonnement du cache ARP, la page apache.org redirige vers la page web de l'attaquant : <figure class="wp-block-image">
16
17[<img loading="lazy" width="794" height="495" src="images/bettercap/bettercap_7.png" alt="" class="wp-image-379" srcset="images/bettercap/bettercap_7.png 794w, images/bettercap/bettercap_7-300x187.png 300w, images/bettercap/bettercap_7-768x479.png 768w" sizes="(max-width: 794px) 100vw, 794px" />][2]</figure> 
18
19L'attaque DNS est maintenant terminée, je vous laisse imaginer ce que vous pouvez faire avec.
20
21## Attaque Proxy
22
23Une attaque Proxy est le fait de pouvoir récupérer les logs de toutes les requêtes web. Il est intéressant de mettre en place un proxy lorsque l'on souhaite bloquer certains sites web dans une entreprise.  
24Dans notre cas, nous allons utiliser le proxy pour récupérer les pages que consulte la victime.
25
26Tout d'abord, il faut configurer le niveau de verbosité du sniffer (false équivaut à réduit) : 
27
28

set net.sniff.verbose false net.sniff on

1
2
3Puis on configure le proxy : 
4
5

set http.proxy.sslstrip true http.proxy on

 1
 2
 3L'utilisation du paramètre « sslstrip » nous permet d'activer le proxy https, et de proposer au client un certificat généré par Bettercap.
 4
 5Là encore nous gardons en place l'attaque ARP afin de cibler la victime.
 6
 7Et lorsque la victime consulte des pages web, nous avons des messages sur bettercap : <figure class="wp-block-image">
 8
 9[<img loading="lazy" width="1024" height="325" src="images/bettercap/bettercap_8-1024x325.png" alt="" class="wp-image-383" srcset="images/bettercap/bettercap_8-1024x325.png 1024w, images/bettercap/bettercap_8-300x95.png 300w, images/bettercap/bettercap_8-768x244.png 768w, images/bettercap/bettercap_8.png 1168w" sizes="(max-width: 1024px) 100vw, 1024px" />][3]</figure> 
10
11Attention aux sites en HTTPS, certains ont une protection HSTS qui permet de bloquer (ou du moins complexifier l'attaque) : 
12
13![](/)
14  <figure class="aligncenter"><a href="images/bettercap/bettercap_9.png"><img loading="lazy" width="794" height="482" src="images/bettercap/bettercap_9.png" alt="" class="wp-image-384" srcset="images/bettercap/bettercap_9.png 794w, images/bettercap/bettercap_9-300x182.png 300w, images/bettercap/bettercap_9-768x466.png 768w" sizes="(max-width: 794px) 100vw, 794px" /></a></figure>
15</div>
16
17Nous pouvons voir dans Bettercap que la victime à bien été sur google : 
18
19![](/)
20  <figure class="aligncenter"><a href="images/bettercap/bettercap_10.png"><img loading="lazy" width="1024" height="684" src="images/bettercap/bettercap_10-1024x684.png" alt="" class="wp-image-385" srcset="images/bettercap/bettercap_10-1024x684.png 1024w, images/bettercap/bettercap_10-300x200.png 300w, images/bettercap/bettercap_10-768x513.png 768w, images/bettercap/bettercap_10-272x182.png 272w, images/bettercap/bettercap_10.png 1209w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
21</div>
22
23Lorsque la victime souhaite accéder à un site en HTTPS (sans HSTS) :<figure class="wp-block-image">
24
25[<img loading="lazy" width="721" height="535" src="images/bettercap/bettercap_11.png" alt="" class="wp-image-386" srcset="images/bettercap/bettercap_11.png 721w, images/bettercap/bettercap_11-300x223.png 300w" sizes="(max-width: 721px) 100vw, 721px" />][4]</figure> 
26
27Une erreur de certificat apparaît sur la page du navigateur car c'est un certificat non approuvé par l'autorité de certification. Si la victime continue sans faire attention, nous pourrons alors récupérer potentiellement des informations confidentielles.  
28En effet, vu que nous avons généré le certificat pour le proxy, nous détenons la clef privée. Tous les flux peuvent donc être déchiffrés sans difficultés.
29
30Nous avons terminé sur cette prise en main de l'outil Bettercap. J'espère que cela vous ait plu.
31
32Toutes les manipulations sont bien évidement à réaliser dans un réseau local, dont vous êtes le propriétaire, et vous devez prévenir les utilisateurs de vos attaques afin d'éviter de récupérer des informations confidentielles.
33
34A bientôt pour un prochain article !
35
36Fabio Pace
37
38 [1]: images/bettercap/bettercap_1.png
39 [2]: images/bettercap/bettercap_7.png
40 [3]: images/bettercap/bettercap_8.png
41 [4]: images/bettercap/bettercap_11.png