DHCPig
Outil d'attaque par épuisement / famine DHCP qui inonde un réseau de requêtes DHCP pour consommer tout le pool d'adresses, refusant le service aux clients légitimes. DHCP exhaustion / starvation attack tool that floods a network with DHCP requests to consume the entire address pool, denying service to legitimate clients.
↗ https://github.com/kamorin/DHCPigOverview
DHCPig performs a DHCP starvation attack: it sends a flood of DHCPDISCOVER/REQUEST packets with spoofed MAC addresses to exhaust a DHCP server’s available address pool. This is used to test DHCP server resilience, and as a setup step for rogue-DHCP-server or man-in-the-middle attacks once legitimate clients can no longer obtain addresses from the real server.
Common Usage
Run the starvation attack on an interface
python2 dhcpig.py -i eth0
Target a specific subnet
python2 dhcpig.py -i eth0 -s 10.10.10.0/24
Limit the request rate
python2 dhcpig.py -i eth0 -w 0.1
Notes
- DHCPig is written for Python 2 and relies on Scapy for raw packet crafting
- Exhausting the pool is often paired with standing up a rogue DHCP server so future clients get attacker-controlled DNS/gateway settings, enabling MITM
- Highly disruptive on the target network — only run in an authorized, scoped engagement window
- On switched networks with DHCP snooping / port security enabled, the flood may be dropped or trigger port shutdown — check the ROE before running against production infrastructure
Help / Man page
usage: dhcpig.py -i INTERFACE [options]
-i, --interface network interface to use
-s, --subnet target subnet (CIDR), default: auto-detect
-w, --wait delay between requests in seconds
-m, --mac-file file of MAC addresses to cycle through
-v, --verbose verbose output
Behavior:
Sends DHCPDISCOVER with randomized/spoofed MACs, completes the
DHCPOFFER/REQUEST/ACK handshake for each to lease every available
address in the DHCP server's pool.
Vue d’ensemble
DHCPig mène une attaque de famine DHCP : il envoie un flot de paquets DHCPDISCOVER/REQUEST avec des adresses MAC usurpées pour épuiser le pool d’adresses disponibles d’un serveur DHCP. Cela sert à tester la résilience d’un serveur DHCP, et comme étape préparatoire à des attaques de serveur DHCP malveillant ou man-in-the-middle une fois que les clients légitimes ne peuvent plus obtenir d’adresses du vrai serveur.
Utilisation courante
# Lancer l'attaque de famine sur une interface
python2 dhcpig.py -i eth0
# Cibler un sous-réseau précis
python2 dhcpig.py -i eth0 -s 10.10.10.0/24
# Limiter le débit des requêtes
python2 dhcpig.py -i eth0 -w 0.1
Notes
- DHCPig est écrit pour Python 2 et s’appuie sur Scapy pour la fabrication de paquets bruts
- Épuiser le pool est souvent couplé à la mise en place d’un serveur DHCP malveillant, pour que les futurs clients reçoivent des réglages DNS/passerelle contrôlés par l’attaquant, permettant le MITM
- Très perturbateur sur le réseau cible : à ne lancer que dans une fenêtre de mission autorisée et cadrée
- Sur les réseaux commutés avec DHCP snooping / port security activés, le flood peut être rejeté ou déclencher une coupure de port : vérifiez les ROE avant de lancer contre une infrastructure de production
Aide / Page de manuel
usage: dhcpig.py -i INTERFACE [options]
-i, --interface network interface to use
-s, --subnet target subnet (CIDR), default: auto-detect
-w, --wait delay between requests in seconds
-m, --mac-file file of MAC addresses to cycle through
-v, --verbose verbose output
Behavior:
Sends DHCPDISCOVER with randomized/spoofed MACs, completes the
DHCPOFFER/REQUEST/ACK handshake for each to lease every available
address in the DHCP server's pool.