Pour installer le paquet vous pouvez le faire directement en ligne sur le site de Github.
Ou si vous avez git d’installer sur votre machine utiliser simplement la commande : git clone https://github.com/DreanoLucas/SAE24.git
Le module setuptools permet d'installer des paquets Python plus facilement en s'occupant de toutes les dépendances et de leur installation. Une fois que setuptools est installé, vous pouvez utiliser la commande python3 setup.py install --user pour installer le paquet « mitm ».
Ensuite vous pourrez utiliser les fonctions du paquet. Avec la fonction help vous trouverez les d’information sur des fonctions ou fichiers du paquet. Par exemple si vous voulez savoir comment utiliser le fichier « atk.py » vous devez aller dans un IDE Python et faire les commandes suivantes :
Une attaque Man in The Middle est une cyberattaque ou l'attaquant va envoyer des informations erronées pour usurper l’identité d’un appareil sur le réseau local. De cette manière, l'attaquant se place entre les victimes, c’est-à-dire qu’il peut intercepter le trafic, l’écouter et modifier les données échangées entre les utilisateurs. Concrètement si la victime A veut envoyer un message à la victime B, l’attaquant récupère le message et peut en faire ce qu’il veut avant de le renvoyer vers la victime B en l’état ou altéré. Le nom de cette attaque vient du protocole utilisé pour envoyer les fausses informations. Dans notre cas nous aurons l’ordinateur d’un utilisateur du réseau comme victime A et comme victime B un serveur web.
Lors de l’attaque Man in The Middle l’attaquant pourra donc intercepter des données sensibles envoyer par la victime au serveur web comme des mots de passes et identifiants de connexion.
On peut par exemple récupérer un mot de passe saisie dans un formulaire grâce à ce type d’attaque :
Nous allons appliquer chacune des fonctions expliquées précédemment à un cas concret. Nous avons l’attaquant, le client et le serveur. Le client aura l’adresse IP 192.168.56.1 et le serveur 192.168.56.106. Nous utilisons donc notre script « script.py » qui permet d’utiliser les fonctions avec des arguments rentrées en option. Nous commençons donc par l’utilisation de l’empoisonnement arp entre le client et le serveur, alors on envoie des paquets continuellement aux deux.
Pour la fonction d’empoisonnement DHCP il suffit de lancer la fonction DHCP dans le fichier atk.py sans aucune entrée. On écoute le trafic, et lorsque l’on recoit une trame DHCP avec comme option discover nous y répondons avec une offer :
Nous pouvons en parallèle sur un deuxième terminal écouter le client avec la fonction http nous obtiendrons alors pendant 10 secondes par défaut ou le temps rentré en option. Une lecture de toutes les requêtes http effectuées par le client vers le serveur est alors faite et nous pouvons les observées ici.
Nous pouvons observer ces mêmes résultat dans les fichiers capture.json et capture.db comme expliquer dans leurs parties respectives.
Nous pourrons maintenant utiliser l’écoute du trafic DNS qui nous donnera les noms de domaine demandé par le client avec la commande host
Notre client étant sur Windows ici nous avons inversé client et serveur pour cette étape. Avec la fonction DNS nous pourrons donc observer l’adresse demandée par le client :
Enfin pour la detection d’empoisonnement ARP nous utiliserons la fonction arp() qui construira une table ARP dans un dictionnaire, alors lorsque une sera attribue a une nouvelle adresse mac nous serons prévenu d’un potentiel empoisonnement ARP.














