Skip to content

Part 4 : real haxor

Allez une partie un peu sécu offensive ☠️☠️☠️, qu'on s'amuse avec les attaques élémentaires un peu sur tout ça.

Une seule est obligatoire : le DHCP spoofing. Les autres sont bonus.

1. DHCP spoofing

A. Setup

Une attaque qui consiste à se faire passer pour le serveur DHCP du réseau et donc contrôler les infos DHCP que reçoit le client.

Pas besoin d'outil de fou : juste monter un serveur DHCP sur la machine attaquante, et répondre plus vite que le serveur légitime !

On peut aussi try de coder un truc à la main pour être sûr d'être plus fast, mais on va pas faire ça dans ce TP.

Info

Dans ce TP, ça ne permettra de contrôler que l'adresse IP qu'on donne au client.
Mais on verra dans un prochain TP que cette même attaque, quand y'a un routeur dans le réseau, ça prend une toute autre dimension.
On la bosse donc dès maintenant !

Introduire une nouvelle VM dans la topologie, OS de votre choix

  • ce sera notre machine attaquante
  • branchez-la au switch
  • installer un serveur DHCP sur la machine attaquante
  • ce sera notre "rogue DHCP server" : serveur DHCP malveillant
Note

Vous êtes libres d'utiliser autre chose que dnsmasq pour mener cette attaque si vous le souhaitez.

Rogue DHCP

🌞 Installez et configurez un serveur DHCP sur votre machine attaquante

  • il doit uniquement faire serveur DHCP (car il peut aussi faire serveur DNS)
  • il doit attribuer des adresses IP entre 10.1.1.210 et 10.1.1.250

🌞 Test !

  • d'abord, stoppez le service DHCP "légitime" sur la machine dhcp.tp1.efrei
  • vérifier qu'un client (VPCS) récupère bien une adresse IP dans la range configurée avec dnsmasq de la machine attaquante
  • on vérifie d'abord chill que la machine attaquante fait correctement tourner un serveur DHCP

B. Race !

Now race !

  • rallumez le serveur DHCP légitime
  • demandez une IP avec un client (VPCS) et voyez qui répond
  • faites-le plusieurs fois pour voir si c'est consistant
  • je vous conseille de pop un nouveau VPCS à chaque fois, c'est très rapide

Wireshark this please

  • gagnez la course avec la machine attaquante 🚲
  • capturez cette course :d

📁 p4_dhcp_race.pcap

Info

Si on met vraiment l'attaque en place et qu'on veut gagner la course, on n'hésite pas à mettre un coup de batte dans les jambes du concurrent : essayer de ralentir le serveur DHCP légitime.
On abordera ça plus tard maybe, je vous invite fort à faire des recherches sur le sujet : comment ralentir une machine qu'on peut joindre sur le réseau, et spécifiquement un serveur DHCP ici.

2. BONUS : DHCP starvation

Une attaque très débile et simple à mettre en place pour DOS l'accès à un LAN s'il n'y a pas de protections particulières. C'est naze, mais c'est là :d

Le principe est simple : faire de multiples échanges DORA avec le serveur DHCP pour demander plein d'adresses IP, et ainsi récupérer toutes les IP disponibles dans le réseau.

On usurpe une adresse MAC (qu'elle existe ou non), on demande une adresse IP au serveur DHCP, on la récupère (merci). On répète l'opération avec une nouvelle fake adresse MAC, une nouvelle IP (merci). Etc.
Jusqu'à épuiser toutes les adresses de la range.

Il existe des tools pour faire ça, vous pouvez aussi essayer de le coder vous-mêmes avec Scapy (une dinguerie cette lib Python) : on peut forger à peu près tout et n'importe quoi comme trame, et très facilement, avec Scapy.

Depuis votre machine attaquante, effectuez un DHCP starvation

  • vous devez saturer la plage d'adresse IP configurée sur dhcp.tp1.efrei

🌞 Proof !

  • bonus, donc libre sur le rendu, si vous voulez rendre un truc je veux genre :
  • l'attaque qui est menée (la commande utilisée/le tool/le script/autre)
  • preuve que le réseau est DOS : un nouveau client ne peut pas se co
  • éventuellement une capture Wireshark (de l'attaque et/ou d'un client qui ne peut pas se co, vous verrez un nouveau message DHCP : quand le serveur ne répond pas ACK, mais qu'il indique qu'il n'y a plus d'adresses dispos)

3. ARP poisoning

Le clasico-classique hein. On abuse du protocole ARP pour écrire ce qu'on veut dans la table ARP de quelqu'un d'autre sur notre LAN.

Petit point vocabulaire vitefé, pour être précis, parce que sur internet c'est la jungle.

ARP spoofing ou ARP poisoning ou ARP man-in-the-middle (ARP MITM) ça désigne la même attaque, réalisée de la même façon.

Si on devait définir une différence précise entre ces termes :

  • ARP poisoning : écrire ce qu'on veut dans la table ARP de quelqu'un d'autre
  • ARP spoofing : se servir de cette capacité pour se faire passer pour une autre machine du LAN
  • ARP MITM : se servir de cette capacité pour se faire passer pour A auprès de B, et vice-versa, et ainsi être effectivement en MITM

Look at me

A. Simple poisoning

Depuis votre machine attaquante, effectuez un ARP poisoning

  • outil recommandé pour mener l'attaque facilement : arping en ligne de commande
  • écrivez du garbage dans la table ARP de node1
  • ce que vous voulez, peu importe, des fake infos

🌞 Proof !

  • montrer l'attaque qui est menée
  • la preuve que vous pouvez écrire ce que vous voulez dans la table ARP d'un client donné

    • en affichant la table ARP de la victime avant et après empoisonnement

Wireshark this

  • on doit voir les trames ARP malveillantes de l'attaque et les réponses s'il y en a (uniquement ça)
  • au moins une dizaine de trames :)

📁 p4_poisoning.pcap

B. MITM

Depuis votre machine attaquante, effectuez un ARP MITM

  • outil recommandé pour mener l'attaque facilement : arpspoof en ligne de commande
  • faites-vous passer pour :

    • node1 auprès de node2
    • node2 auprès de node1

🌞 Proof !

  • montrer l'attaque qui est menée
  • faites un ping depuis node1 vers node2

Wireshark this

  • on doit voir les trames ARP malveillantes de l'attaque et les réponses s'il y en a

    • au moins une dizaine de trames :)
  • on doit voir les pings que node1 envoie à node2, démontrant que le MITM est effectif

📁 p4_mitm.pcap


Prewt. 🐈