You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

183 lines
5.5 KiB

# TP : Simulation d'une Attaque ARP Spoofing avec Docker
## Exercice 1
### Introduction
1. **Allez sur vdn**
2. **Chargez le réseau docker**
3. **Démarrez la machine et ouvrez un terminal**
### Partie 1 : Mise en place de l'environnement
1. **Clonez le repository git**
```bash
git clone https://codefirst.iut.uca.fr/git/adam.bonafos/TP_ARP-Spoofing.git
```
1. **Vérifiez le contenu du fichier docker-compose.yml**
Le fichier `docker-compose.yml` sert à simuler un réseau local avec trois machines : un attaquant, une victime, et une passerelle (gateway).
**Fichier `docker-compose.yml` :**
```yaml
version: '3'
services:
attacker:
image: kalilinux/kali-rolling
container_name: attacker
priviliged: true
networks:
localnet:
ipv4_address: 192.168.0.10
tty: true
stdin_open: true
victim:
image: kalilinux/kali-rolling
container_name: victim
priviliged: true
networks:
localnet:
ipv4_address: 192.168.0.20
tty: true
stdin_open: true
gateway:
image: kalilinux/kali-rolling
container_name: gateway
priviliged: true
networks:
localnet:
ipv4_address: 192.168.0.30
tty: true
stdin_open: true
networks:
localnet:
driver: bridge
ipam:
config:
- subnet: 192.168.0.0/24
```
- Ce fichier définit trois machines dans le même réseau local (subnet `192.168.0.0/24`).
2. **Démarrage des conteneurs**
- Dans le même répertoire que le fichier `docker-compose.yml`, exécutez la commande :
```bash
docker-compose up -d
```
- Vérifiez que les conteneurs sont bien en cours d'exécution avec :
```bash
docker ps
```
### Partie 2 : Lancement de l'attaque ARP Spoofing
1. **Configurer les machines**
- Connectez-vous à chaque machine pour les préparer à l'attaque.
- Depuis votre terminal, exécutez les commandes suivantes pour accéder à chaque conteneur :
- Pour l'attaquant :
```bash
docker exec -it attacker /bin/bash
```
- Pour la victime :
```bash
docker exec -it victim /bin/bash
```
- Pour la passerelle :
```bash
docker exec -it gateway /bin/bash
```
2. **Installer les outils nécessaires**
- Sur chaque machine, mettez à jour les paquets et installez **dsniff** (qui inclut arpspoof).
- Exécutez cette commande **sur chaque machine** :
```bash
apt-get update && apt-get install -y dsniff iputils-ping
```
- Exécutez sur la machine **victim** :
```bash
apt-get install net-tools
```
3. **Test de connectivité**
- Vérifiez que la victime peut pinguer la passerelle
- Vous devriez obtenir des réponses de la passerelle.
4. **Observer l'état de la table ARP de la victime**
- Sur le conteneur **victim** vérifiez l'état de la table ARP (n'hésitez pas à utiliser le man).
- Quel est l'adresse MAC de la passerelle et à quelle adresse IP est-elle associé ?
5. **Lancer l'attaque ARP Spoofing**
- Depuis le conteneur **attacker**, exécutez la commande suivante pour lancer l'attaque ARP Spoofing :
```bash
arpspoof -i eth0 -t [adresse de la victime] [adresse de la passerelle]
```
- Cette commande trompe la victime en lui faisant croire que l'attaquant est la passerelle.
6. **Observer l'effet de l'attaque**
- Sur le conteneur **victim** vérifiez l'état de la table ARP (n'hésitez pas à utiliser le man).
- Quel est donc maintenant l'adresse MAC associé à l'adresse IP de la passerelle ?
### Partie 3 : Analyse et conclusion
1. **Impact sur le trafic**
- Pinguez la passerelle depuis la victime pendant que l'attaque est en cours. Observez ce qu'il se passe au niveau des paquets.
2. **Proposez des solutions pour contrer cette attaque**
3. **Nettoyage**
- Pour arrêter l'attaque et les conteneurs :
```bash
docker-compose down
```
## Exercice 2
Configurer une table ARP statique permet de définir manuellement des associations entre des adresses IP et des adresses MAC, empêchant ainsi la modification dynamique de ces associations. Cela peut être utile pour prévenir des attaques telles que l'**ARP Spoofing**.
### Configuration d'une table ARP statique sous Linux
Tu peux utiliser la commande `arp` pour ajouter des entrées statiques à la table ARP. Voici les étapes pour configurer une table ARP statique sous Linux.
1. **Afficher la table ARP actuelle :**
```bash
arp -n
```
2. **Ajouter une entrée statique à la table ARP :**
La commande suivante lie une adresse IP à une adresse MAC de manière statique.
```bash
sudo arp -s [adresse IP] [adresse MAC]
```
3. **Vérifier que l'entrée statique a bien était ajoutée à la table**
4. **Supprimer une entrée statique :**
```bash
sudo arp -d [adresse IP]
```
>**⚠️ Warning**<br/>
>Les changements apportés ne sont pas persistants après un redémarrage. Pour rendre ces changements persistants, il est nécessaire d'ajouter ces commandes dans des scripts qui sont exécutés au démarrage (par exemple via `crontab` pour Linux).
## Exercice 3 - Bonus
Réécrivez l'attaque **arpspoof** en utilisant **python**.
>**⚠️ Warning**<br/>
>Pour réaliser cet exercice, il vous faut installer :
>- Un éditeur de texte comme nano ou VIM sur l'image de l'attaquant
>- Python3 et pip
>- La librairie scapy (`apt install python3-scapy`)