diff --git a/Makefile b/Makefile
index f28f1d636070c2e04e7abaf389e035648a839f45..47f89ab11551ead047866c63352d6fcb8c22a348 100644
--- a/Makefile
+++ b/Makefile
@@ -22,17 +22,18 @@ debug: $(TEX)
 $(TARGET): $(MD) $(METADATA)
 	pandoc -s $^ -o $@ $(OPTIONS) $(PDFOPTIONS)
 
-
 labo1_saroukhanian_iliya.pdf: content/01_labo1_macflooding.md $(METADATA)
 	pandoc -s $^ -o $@ $(OPTIONS) $(PDFOPTIONS)
 
 labo2_saroukhanian_iliya.pdf: content/02_labo_stp.md $(METADATA)
 	pandoc -s $^ -o $@ $(OPTIONS) $(PDFOPTIONS)
 
-
 labo3_saroukhanian_iliya.pdf: content/03_vlan_hopping.md $(METADATA)
 	pandoc -s $^ -o $@ $(OPTIONS) $(PDFOPTIONS)
 
+labo4_saroukhanian_iliya.pdf: content/04_dhcp.md $(METADATA)
+	pandoc -s $^ -o $@ $(OPTIONS) $(PDFOPTIONS)
+
 $(TEX): $(MD)
 	pandoc -s $^ -o $@ $(OPTIONS) $(PDFOPTIONS)
 
diff --git a/content/04_dhcp.md b/content/04_dhcp.md
new file mode 100644
index 0000000000000000000000000000000000000000..f97ddbd53cfa4b738cfb25cda25737d801b1a580
--- /dev/null
+++ b/content/04_dhcp.md
@@ -0,0 +1,101 @@
+\newpage
+
+# Attaque de DHCP par déni de service
+
+## Partie 1
+
+### Capture de paquets DHCP
+
+1. Lancer une sonde wireshark entre S1 et H1, installer un filtre pour
+n’afficher que les paquets DHCP qui circulent sur ce lien.
+
+2. Sur H1, vérifier que la connectivité Internet n’est pas encore assurée avec
+la commande suivante :
+
+    ```bash
+    ip route get 1.1.1.1
+    ```
+
+3. Que veut dire exactement le message affiché suite à cette commande ?
+    - Message affiché :
+    ```bash
+    RTNETLINK answers: Network is unreachable
+    ```
+    
+    - Ce message signifie qu'aucune passerelle n'a été mise en place /
+    l'inteface `eth0` est down / l'hòte n'a pas d'adresse IP
+
+4. Récupérer une IP depuis H1 en utilisant dhclient en mode verbeux
+    ```bash
+    sudo dhclient -v eth0
+    ```
+
+5. Que veulent dire les messages affichés sur la console après cette commande ?
+    - Output :
+    ```bash
+    Internet Systems Consortium DHCP Client 4.4.1
+    Copyright 2004-2018 Internet Systems Consortium.
+    All rights reserved.
+    For info, please visit https://www.isc.org/software/dhcp/
+    
+    Listening on LPF/eth0/0c:fa:5a:25:00:00
+    Sending on   LPF/eth0/0c:fa:5a:25:00:00
+    Sending on   Socket/fallback
+    DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 5
+    [  496.932665] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
+    [  496.933404] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
+    DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 12
+    DHCPOFFER of 10.9.8.13 from 10.9.8.1
+    DHCPREQUEST for 10.9.8.13 on eth0 to 255.255.255.255 port 67
+    DHCPACK of 10.9.8.13 from 10.9.8.1
+    bound to 10.9.8.13 -- renewal in 140 seconds.
+    ```
+
+    - Messages DHCP :
+        - `DHCPDISCOVER` : Le client essaye de découvrir les serveurs DHCP
+        disponibles.
+
+        - `DHCPOFFER` : Le serveur DHCP répond au client avec une offre d'adresse
+        IP au client.
+        
+        - `DHCPREQUEST` : Le client notifie le serveur DHCP de son choix.
+
+        - `DHCPACK` : Le serveur confirme (prend en compte) le choix du client.
+
+6. Est-ce que la transaction DHCP a réussi ? Expliquer.
+    - Oui, la transaction a réussi suite au fait que le serveur a répondu au
+    client avec un message `DHCPACK` ce qui implique le fait que le serveur
+    a désormais connaissance de l'adresse IP sélectionnée par le client.
+
+7. Donner un moyen de vérifier que H1 a bien obtenu une connectivité vers
+Internet.
+    - Afin de vérifier que H1 est désormais connecté à Internet, on peut
+    essayer de "pinger" un site (e.g. google.com) et voir s'il réussi. En
+    l'occurrence on arrive à "pinger" notre destination.
+
+    ![H1 peut désormais "pinger"](../figs/h1_connected_internet.png) 
+
+8. En vous aidant de wireshark, donner les informations suivantes présentes
+dans la transaction DHCP :
+    - Durée du bail obtenu :
+       - 5 minutes.
+
+    - Hostname du client :
+        - `debian`
+
+    - Options demandées par le client :
+        - ![Options demandées par H1](../figs/h1_request_item.png) 
+        
+    - Serveur DNS indiqué par le serveur :
+        - 1.1.1.1 : Serveur DNS de Cloudflare
+        - 8.8.8.8 : Serveur DNS de Google
+        - ![Liste des DNS](../figs/dns_list.png) 
+
+    - Passerelle indiquée par le serveur :
+        - L'adresse IP de la passerelle est : 10.9.8.1
+        - ![Adresse IP de la passerelle](../figs/router_ip.png) 
+
+### Attaque par épuisement du pool DHCP
+
+1. Installer une sonde wireshark entre S1 et DHCPGateway-1, toujours avec un
+filtre dhcp.
diff --git a/figs/dns_list.png b/figs/dns_list.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe0639337aa3b4f5baba3ed4c1cd025201ba33e1
Binary files /dev/null and b/figs/dns_list.png differ
diff --git a/figs/h1_connected_internet.png b/figs/h1_connected_internet.png
new file mode 100644
index 0000000000000000000000000000000000000000..a6f79aae0e6e7d805e1bc4bfe5dffcc6171bb0b2
Binary files /dev/null and b/figs/h1_connected_internet.png differ
diff --git a/figs/h1_request_item.png b/figs/h1_request_item.png
new file mode 100644
index 0000000000000000000000000000000000000000..b030ff46c407cf2b6416585afca53d99f0c058a1
Binary files /dev/null and b/figs/h1_request_item.png differ
diff --git a/figs/router_ip.png b/figs/router_ip.png
new file mode 100644
index 0000000000000000000000000000000000000000..13ff86336412813be59018d1e950c0943ffcd14b
Binary files /dev/null and b/figs/router_ip.png differ