Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DHCPig — Script di esaurimento DHCP scritto in Python utilizzando la libreria di rete scapy | Kitploit
Strumenti/GitHubGitHub/kamorin/dhcpig
ExploitFuzzingSicurezza di ReteSicurezza WirelessPenetration TestingRed Teaming
GitHubkamorin/dhcpig

DHCPig

Script di esaurimento DHCP scritto in Python utilizzando la libreria di rete scapy

Vedi Repository
35410112 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

DHCPig

Validazione whitehat dell'hardening DHCP: esaurisci un pool, dirotta i lease dei vicini, sfratta gli host dai loro indirizzi con ARP contraffatto e segnala se la rete ti ha fermato. Richiede root e Python 3.11+.

Esegui la web UI

Debian / Kali: scarica l'ultimo .deb da Releases e installalo — mette dhcpig e dhcpig-web sul PATH, senza bisogno di 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

Installazione globale (qualsiasi Linux, Python 3.11+, senza venv):

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

Installa direttamente nel Python di sistema come root, quindi sudo dhcpig-web trova il comando senza dover maneggiare percorsi .venv/bin/. --break-system-packages disattiva la protezione PEP 668 di Debian/Kali che impedisce a pip di toccare i pacchetti di sistema — quella protezione esiste per salvaguardare i pacchetti gestiti da apt, non perché questa installazione sia anomala; il .deb o una venv evitano del tutto di averne bisogno.

Da sorgente (qualsiasi 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

Apri l'URL stampato http://127.0.0.1:8787/?token=.... Tre insidie:

  • Root è richiesto in ogni caso (socket raw). Da sorgente (venv), usa il percorso completo .venv/bin/ — sudo azzera PATH.
  • ?token= è obbligatorio. Senza di esso ottieni 401 e una pagina vuota.
  • Niente interfaccia grafica? Si lega al loopback di proposito. Inoltra la porta, non rilegarla: ssh -L 8787:127.0.0.1:8787 user@<vm-ip>. Togli --open.

Su Debian/Kali, esegui prima sudo apt install -y python3-venv se il passaggio della venv fallisce.

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 stampa solo i risultati; -v3 aggiunge il debug a livello di pacchetto. Riferimento completo delle flag: man dhcpig (o packaging/dhcpig.1 prima dell'installazione).

Cosa fa ogni modalità

Esaurimento DHCP (exhaust) — distruttiva

  • Inventaria il segmento via ARP, poi dimostra che il DHCP funziona da questa macchina e per un MAC sconosciuto
  • Invia DHCPRELEASE per ogni lease dei vicini — il protocollo non richiede prova di proprietà
  • Inonda di DISCOVER/REQUEST da MAC inventati finché il server smette di rispondere
  • Richiede nuovamente gli indirizzi rilasciati per nome (opzione 50) una volta che il pool è esaurito
  • Forgia conflitti ARP RFC 5227 contro ciò che ha preso, per vedere se gli host cedono l'indirizzo
  • Verdetto: un client nuovo di zecca riuscirebbe comunque a ottenere un indirizzo dopo?

Rilascio dei client attivi DHCP (release) — distruttiva

  • Stessa catena senza l'inondazione: inventario → rilascio → nuova richiesta per nome → conflitto ARP
  • Colpisce i dispositivi connessi in questo momento; il pool resta intatto così la maggior parte può riottenere un indirizzo
  • Verdetto: qualche host ha perso il suo indirizzo e non è riuscito a ottenerne uno nuovo?

Post esaurimento / Reset (release-previous) — recupero

  • Riproduce il journal dei lease su disco e restituisce ogni indirizzo preso da questo strumento
  • Filtrato per questa interfaccia, rete e server DHCP; --max-age scarta le voci obsolete
  • Registra se il pool era già esaurito, ma rilascia comunque i lease registrati nel journal
  • Verdetto: il pool è di nuovo utilizzabile?

Trova vicini (active-scan) — sola lettura

  • Esegue un ARP sweep sullo scope, invia un DHCPINFORM per il fingerprinting dei server DHCP
  • Non prende indirizzi, non disturba i lease

Scansione passiva (scan) — sola lettura, solo CLI

  • Osserva DHCP e ARP; identifica gli host tramite l'ordine dell'opzione 55, ricadendo sul vendor MAC
  • Non invia nulla. Esegue finché non viene fermata

Leggere un run

Tutto finisce nel log degli eventi, prima i più gravi: i finding, poi una riga per host, poi un riepilogo OUTCOME. La Verbosity 0 (web) o -v0 (CLI) nasconde il traffico dei pacchetti. L'export JSON è la registrazione completa: il log è un riepilogo.

Annullare un run

I lease vengono mantenuti dopo un run così lo stato di esaurimento può essere verificato. Rilasciali:

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

Il journal ($XDG_STATE_HOME/dhcpig/leases-<iface>.jsonl) registra MAC, IP, server e timestamp per ogni lease preso — dati dell'engagement. Eliminalo quando hai finito.

Disclaimer

Esegui questo strumento solo su reti di tua proprietà o per cui hai esplicita autorizzazione a testare. release ed exhaust interrompono di proposito i client attivi; --scope è opzionale e il default è l'intero segmento. Gli autori non sono responsabili per un uso improprio.

Note di progettazione e dettagli interni: docs/DESIGN.md. Contributi: CONTRIBUTING.md. Licenza: GPL v2 o successiva.

Scarica lo strumento
Flag
--dry-runsolo ricognizione: ARP sweep e transazioni di controllo eseguite realmente, nulla di mutante viene inviato
--scope CIDRlimita i target (ripetibile); il default è la rete dell'interfaccia stessa
--rate Npps, default 7 — non su exhaust, che si auto-regola
--no-evictsalta la fase di conflitto ARP
--report FILEscrive un report della sessione su FILE al termine dell'esecuzione; il formato segue l'estensione di FILE (.json/.csv/.html, default JSON)
--client-mac MACsolo exhaust; usa questo MAC invece di uno casuale (ripetibile — ruota nella lista)
--request-option SPECexhaust/active-scan; contenuto dell'opzione DHCP 55 (parameter-request-list) da inviare, es. 12,14-19,23 (default: il profilo integrato in ordine macOS)
--no-spoof-eth-srcsolo exhaust; usa il MAC reale della NIC come sorgente Ethernet per ogni frame (Wi-Fi; gli AP scartano i frame il cui MAC sorgente non è la stazione associata)