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/DHCPig

Overview

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.