Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
DHCPig — Script d'épuisement DHCP écrit en Python utilisant la bibliothèque réseau Scapy | Kitploit
Outils/GitHubGitHub/kamorin/dhcpig
ExploitationFuzzingSécurité RéseauSécurité Sans FilTests d'IntrusionRed Teaming
GitHubkamorin/dhcpig

DHCPig

Script d'épuisement DHCP écrit en Python utilisant la bibliothèque réseau Scapy

Voir le dépôt
354101il y a 11 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

DHCPig

Validation whitehat du durcissement DHCP : épuisez un pool, détournez les baux des voisins, expulsez des hôtes de leurs adresses avec de l'ARP forgé, et indiquez si le réseau vous a arrêté. Nécessite root et Python 3.11+.

Exécuter l'interface web

Debian / Kali : récupérez la dernière .deb depuis Releases et installez-la — place dhcpig et dhcpig-web dans PATH, pas besoin de venv :

root@kitploit:~
curl -LO https://github.com/kamorin/DHCPig/releases/download/v2.7.2/dhcpig_2.7.2-1_all.deb
sudo apt install ./dhcpig_2.7.2-1_all.deb
sudo dhcpig-web --open

Installation globale (tout Linux, Python 3.11+, sans venv) :

root@kitploit:~
git clone https://github.com/kamorin/DHCPig && cd DHCPig
sudo pip install --break-system-packages .
sudo dhcpig-web --open

S'installe directement dans le Python système en tant que root, donc sudo dhcpig-web trouve la commande sans jongler avec le chemin .venv/bin/. --break-system-packages contourne la protection PEP 668 de Debian/Kali contre pip touchant aux paquets système — cette protection existe pour préserver les paquets gérés par apt, pas parce que cette installation est inhabituelle ; le .deb ou un venv évitent d'en avoir besoin.

Depuis les sources (tout Linux, Python 3.11+) :

root@kitploit:~
git clone https://github.com/kamorin/DHCPig && cd DHCPig
python3 -m venv .venv && .venv/bin/pip install -e .
sudo .venv/bin/dhcpig-web --open

Ouvrez l'URL http://127.0.0.1:8787/?token=... affichée. Trois pièges :

  • Root est requis dans tous les cas (sockets bruts). Depuis les sources (venv), utilisez le chemin complet .venv/bin/ — sudo réinitialise PATH.
  • Le ?token= est obligatoire. Sans lui, vous obtenez des 401 et une page vide.
  • Sans interface graphique ? Il se lie volontairement à loopback. Transférez-le, ne le reliez pas : ssh -L 8787:127.0.0.1:8787 user@<vm-ip>. Retirez --open.

Sur Debian/Kali, exécutez d'abord sudo apt install -y python3-venv si l'étape venv échoue.

CLI

root@kitploit:~
sudo .venv/bin/dhcpig exhaust eth0 --report run.json
sudo .venv/bin/dhcpig release eth0 --scope 192.168.4.0/22     # DESTRUCTIVE
sudo .venv/bin/dhcpig active-scan eth0 --scope 192.168.4.0/22 # read-only
sudo .venv/bin/dhcpig release-previous eth0                   # undo a previous run
dhcpig ifaces

-v0 n'affiche que les résultats ; -v3 ajoute le débogage au niveau des paquets. Référence complète des options : man dhcpig (ou packaging/dhcpig.1 avant installation).

Ce que fait chaque mode

Épuisement DHCP (exhaust) — destructif

  • Inventorie le segment par ARP, puis prouve que DHCP fonctionne depuis cette machine et pour une MAC inconnue
  • Émet des DHCPRELEASE sur le bail de chaque voisin — le protocole n'exige aucune preuve de propriété
  • Inonde de DISCOVER/REQUEST depuis des MAC fabriquées jusqu'à ce que le serveur cesse de répondre
  • Redemande les adresses libérées par nom (option 50) une fois le pool épuisé
  • Forge des conflits ARP RFC 5227 contre ce qu'il a pris, pour voir si les hôtes cèdent l'adresse
  • Verdict : un tout nouveau client pourrait-il encore obtenir une adresse ensuite ?

Libération DHCP des clients actifs (release) — destructif

  • Même chaîne sans l'inondation : inventaire → libération → redemande par nom → conflit ARP
  • Touche les appareils actuellement connectés ; le pool reste intact pour que la plupart puissent réacquérir
  • Verdict : un hôte a-t-il perdu son adresse sans en obtenir une nouvelle ?

Post-épuisement / Réinitialisation (release-previous) — récupération

  • Rejoue le journal des baux sur disque et rend chaque adresse que cet outil a prise
  • Filtré sur cette interface, ce réseau et ce serveur DHCP ; --max-age supprime les entrées obsolètes
  • Enregistre si le pool était déjà épuisé, mais libère les baux journalisés dans les deux cas
  • Verdict : le pool est-il de nouveau utilisable ?

Trouver les voisins (active-scan) — lecture seule

  • Balaye le périmètre en ARP, envoie un DHCPINFORM pour identifier les serveurs DHCP
  • Ne prend aucune adresse, ne perturbe aucun bail

Scan passif (scan) — lecture seule, CLI uniquement

  • Observe DHCP et ARP ; identifie les hôtes par l'ordre de l'option-55, en repli sur le vendeur MAC
  • N'envoie rien. S'exécute jusqu'à l'arrêt

Lire une exécution

Tout se retrouve dans le journal d'événements, les pires en premier : les constatations, puis une ligne par hôte, puis un récapitulatif OUTCOME. La verbosité 0 (web) ou -v0 (CLI) masque le trafic de paquets. L'export JSON est l'enregistrement complet — le journal n'est qu'un résumé.

Annuler une exécution

Les baux sont conservés après une exécution afin que l'état d'épuisement puisse être vérifié. Libérez-les :

root@kitploit:~
sudo .venv/bin/dhcpig restore eth0             # same process still running
sudo .venv/bin/dhcpig release-previous eth0    # any time later, from the lease journal

Le journal ($XDG_STATE_HOME/dhcpig/leases-<iface>.jsonl) enregistre la MAC, l'IP, le serveur et l'horodatage pour chaque bail pris — des données de l'engagement. Supprimez-le lorsque vous avez terminé.

Avertissement

N'exécutez cet outil que contre des réseaux dont vous êtes propriétaire ou explicitement autorisé à tester. release et exhaust perturbent les clients actifs par conception ; --scope est facultatif et par défaut, tout le segment. Les auteurs ne sont pas responsables d'un mauvais usage.

Notes de conception et internals : docs/DESIGN.md. Contribution : CONTRIBUTING.md. Licence : GPL v2 ou ultérieure.

Télécharger l’outil
Option
--dry-runrecon uniquement : balayage ARP + transactions de contrôle réellement exécutées, rien de modifiant n'est envoyé
--scope CIDRlimite les cibles (répétable) ; par défaut, le réseau de l'interface
--rate Npps, défaut 7 — pas sur exhaust, qui s'auto-régule
--no-evictignore la phase de conflit ARP
--report FILEécrit un rapport de session dans FILE à la fin de l'exécution ; le format suit l'extension de FILE (.json/.csv/.html, défaut JSON)
--client-mac MACexhaust uniquement ; utilise cette MAC au lieu d'une MAC aléatoire (répétable — effectue une rotation dans la liste)
--request-option SPECexhaust/active-scan ; contenu de l'option-55 DHCP (parameter-request-list) à envoyer, p. ex. 12,14-19,23 (défaut : le profil intégré dans l'ordre macOS)
--no-spoof-eth-srcexhaust uniquement ; utilise la vraie MAC de la carte réseau comme source Ethernet pour chaque trame (Wi-Fi ; les points d'accès ignorent les trames dont la MAC source n'est pas la station associée)