PAGES
← all tools
◆ Exploitation & C2

dhcpig

2.7.1 open-source

DHCP exhaustion script written in python using scapy network library - kamorin/DHCPig

Summary

dhcpig is an open-source command-line tool for DHCP exhaustion testing, free to use, that floods a LAN's DHCP pool, hijacks neighbours' leases, and evicts hosts from their addresses with forged ARPARPA network protocol that maps IP addresses to MAC addresses on a local Ethernet segment, letting tools resolve layer-3 targets to layer-2 hardware addresses for packet crafting or host discovery. to see whether the network's defenses catch it. It requires root privileges and Python 3.11+, and can be run either as a CLI (dhcpig exhaust, release, active-scan) or through a bundled local web UI, with a --dry-run mode for recon-only passes and scope limited by CIDRCIDRA notation for a block of IP addresses, such as 10.0.0.0/24. The number after the slash says how many leading address bits identify the network.. First committed in 2012, it's still maintained today, with 11 contributors and a release cut just 12 days ago.

DHCP exhaustion script written in python using scapy network library - kamorin/DHCPig

How dhcpig helps

Does this network actually stop issuing new leases once its pool is under pressure?

floods the LAN requesting every address in scope under distinct hosts and MAC addresses, then declares the pool exhausted once no offers arrive for 10 straight seconds, showing whether the DHCP server ran dry

Can an attacker on this LAN quietly take over a neighbour's address?

listens for DHCP offers meant for other clients and answers first, taking the lease for itself, so it shows whether the network lets a stranger grab an address that was already handed out

Are the hosts on this segment still up once their leases are pulled?

releases neighbours' IPs from the server and sends forged ARP across the LAN, then reports whether Windows hosts drop offline while Linux hosts hold their address anyway

Would a hardening change actually be caught, or does the network stay blind to this?

runs a read-only pass that ARP-sweeps and exchanges only control transactions, sending nothing that mutates a lease, so the same reconnaissance can be repeated before and after a defense change to compare

Which addresses in my range were actually touched by a run, and can I put them back?

the run's report lists every host and lease it claimed, and a reversal replays that record to release them, undoing the exhaustion without a second manual survey

Is this test confined to the subnet I meant to hit?

bounds every discovery, request, and release to the CIDR ranges given for that run, defaulting to the interface's own network if none is set

all 8 features, with the evidence for each →

Languages

Not documented

Features

8 capabilities · 4 backed by code, an API document or a real run

Built from dhcpig's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What dhcpig offers you

  • Command-line interface3
  • Python scripting support2
  • Scripting language support1
All capabilities 8 capabilities
DHCP pool exhaustion verified Floods a DHCP server with requests to exhaust its address pool, validating whether the network detects or prevents the attack. 1 release · 4 other sources · first seen Jul 2026

Also counts toward: Command-line interface, Python scripting support

release

  • Adds --scope argument to the exhaust subcommand to bound the ARP sweep and make pool-size estimation deterministic 2.5.0 · Jul 2026 · source · release history

docs

  • 105 lines (80 loc) · 4.85 KB 105 lines (80 loc) · 4.85 KB Whitehat DHCP hardening validation: exhaust a pool, hijack neighbours' leases, evict hosts off their addresses with forged ARP, and report whether the network stopped you. Needs root and Python 3.11+. docs update · Aug 2026 · source
  • DHCP hardening validator that exhausts address pools, hijacks leases, and evicts hosts via forged ARP to test network defenses.

command line

  • --convert — regenerate the database from Satori's fingerprints/dhcp.xml and write it to --database, then exit v2.7.0 · Aug 2026 · command-line history

example

  • Limit the DHCP exhaustion attack to a specific subnet scope for more controlled testing. dhcpig exhaust --scope 192.168.1.0/24 2.5.0 · Jul 2026 · source
HTML report dashboard verified Generates an HTML report of findings and summary results, optionally opening it automatically in a browser. 2 releases · 2 other sources · first seen Aug 2026

Also counts toward: Command-line interface

release

  • Changes dhcpig-web to open a browser by default; adds --no-open flag to opt out 2.7.1 · Aug 2026 · source · release history
  • Expands dashboard graphing to plot four separate transmit-side lines (ARP, DISCOVER, RELEASE, RENEW) instead of merged rates 2.7.1 · Aug 2026 · source · release history

docs

  • 354 Commits on Aug 2, 2026 Merge branch dashboard-pps-ppm-conversion-11c1ab cdeda15 Copy full SHA for cdeda15 docs: add a global-install option, fix stale release-previous description Show description for c63b357 c63b357 Copy full SHA for c63b357 core: release-previous keeps releasing even when the pool isn't… docs update · Aug 2026 · source

command line

OS fingerprint database conversion verified Regenerates the internal fingerprint database from Satori's dhcp.xml source file and writes it to a configurable path. 2 releases · 2 other sources · first seen Aug 2026

release

  • Replaces the bundled packetfence_dhcp_fingerprints.json with satori_dhcp_fingerprints.json to align licenses and update the fingerprint database. 2.7.0 · Aug 2026 · source · release history
  • The script data/fingerprint-merge.py is renamed to data/satori-merge.py, removing the old path. 2.7.0 · Aug 2026 · source · release history

command line

  • --convert — regenerate the database from Satori's fingerprints/dhcp.xml and write it to --database, then exit v2.7.0 · Aug 2026 · command-line history

example

  • Run the new merge script to regenerate the fingerprint data if you need to update the underlying Satori XML source. python3 data/satori-merge.py --convert dhcp.xml 2.7.0 · Aug 2026 · source
Neighbour lease hijacking shipped Attempts to claim addresses already leased to other hosts on the network to test whether the DHCP infrastructure prevents lease theft. 1 release · 2 other sources · first seen Aug 2026

Also counts toward: Python scripting support, Scripting language support

release

  • Introduces new finding CLIENTS_HOLDING_STOLEN_LEASES (FAIL/high) for hosts defending addresses we already hold 2.7.1 · Aug 2026 · source · release history

docs

  • 105 lines (80 loc) · 4.85 KB 105 lines (80 loc) · 4.85 KB Whitehat DHCP hardening validation: exhaust a pool, hijack neighbours' leases, evict hosts off their addresses with forged ARP, and report whether the network stopped you. Needs root and Python 3.11+. docs update · Aug 2026 · source
  • DHCP hardening validator that exhausts address pools, hijacks leases, and evicts hosts via forged ARP to test network defenses.
OS fingerprint database regeneration script shipped Provides a dedicated script to regenerate the OS fingerprint database from the Satori XML source. 1 other source · first seen Aug 2026

example

  • Run the new merge script to regenerate the fingerprint data if you need to update the underlying Satori XML source. python3 data/satori-merge.py --convert dhcp.xml 2.7.0 · Aug 2026 · source
OS identification for discovered hosts shipped Populates database output and roll-call rows with specific OS tags for matched hosts using the Satori data source. 1 release · first seen Aug 2026

release

  • Populates the os field in database output for matched hosts (e.g., Windows 10, iOS 12), enabled by the new Satori data source which separates OS from device info. 2.7.0 · Aug 2026 · source · release history
Verbosity-controlled output verified Lets the user select output detail across four levels, from results-only through packet-level logging to internal debug lines. 1 other source · first seen Aug 2026

Also counts toward: Command-line interface

command line

  • -v — Output detail, 0-3 (default 2). 0 prints results only (findings and the final summary); 1 is a compact one-character-per-packet stream; 2 is the normal packet-level log; 3 adds internal debug lines. v2.6.1 · Aug 2026 · command-line history
Network interface discovery shipped Lists available network interfaces on the host to identify targets for scanning. 1 other source

example

  • List available network interfaces dhcpig ifaces

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for dhcpig, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail dhcpig puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

11 entries

  1. October 20261
  2. September 20262
  3. August 20267
  4. July 20261
    Show

    11 entries

    Project health

    Issue, contributor and maintainer activity in kamorin/DHCPig, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 2 +2 vs prior 12 months
    2. Maintainers 1 +1 joined · −0 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed not measured of issues opened, last 12 months
    5. Median time to close not measured issues closed, last 12 months
    6. Open backlog 0 of 11 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 0
    3. Contributors / month 2
    4. Commits / month 10
    5. Stars 354
    Issue themes, last 12 months not measured

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →