Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
DHCPig — 使用 Python 和 scapy 网络库编写的 DHCP 耗尽脚本 | Kitploit
工具/GitHubGitHub/kamorin/dhcpig
漏洞利用模糊测试网络安全无线安全渗透测试红队
GitHubkamorin/dhcpig

DHCPig

使用 Python 和 scapy 网络库编写的 DHCP 耗尽脚本

查看仓库
35410192天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DHCPig

白帽 DHCP 加固验证:耗尽地址池,劫持邻居的租约,通过伪造 ARP 将主机从其地址上驱逐,并报告网络是否阻止了你。需要 root 权限和 Python 3.11+。

运行 Web UI

Debian / Kali: 从 Releases 获取最新的 .deb 并安装 —— 会将 dhcpig 和 dhcpig-web 加入 PATH,无需 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

全局安装(任何 Linux,Python 3.11+,无需 venv):

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

直接以 root 身份安装到系统 Python 中,因此 sudo dhcpig-web 无需处理 .venv/bin/ 路径即可找到命令。--break-system-packages 会覆盖 Debian/Kali 中防止 pip 修改系统包的 PEP 668 保护 —— 该保护的存在是为了保护 apt 管理的软件包,而不是因为这个安装方式特殊;使用 .deb 或 venv 则完全无需该参数。

从源码安装(任何 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

打开打印出的 http://127.0.0.1:8787/?token=... URL。三个注意事项:

  • 无论哪种方式都需要 root 权限(原始套接字)。从源码(venv)安装时,请使用完整的 .venv/bin/ 路径 —— sudo 会重置 PATH。
  • ?token= 是必需的。 没有它你会收到 401 错误和一个空白页。
  • 无头环境? 它故意绑定回环地址。转发它,不要重新绑定:ssh -L 8787:127.0.0.1:8787 user@<vm-ip>。去掉 --open。

在 Debian/Kali 上,如果 venv 步骤失败,请先运行 sudo apt install -y python3-venv。

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 仅打印结果;-v3 增加数据包级调试。完整标志参考:man dhcpig(或在安装前查看 packaging/dhcpig.1)。

每种模式的作用

DHCP 耗尽(exhaust)—— 破坏性

  • 对网段进行 ARP 清点,然后证明 DHCP 可从此机器以及未知 MAC 正常工作
  • 对每个邻居的租约执行 DHCPRELEASE —— 协议不要求所有权证明
  • 使用伪造的 MAC 洪泛 DISCOVER/REQUEST,直到服务器停止应答
  • 地址池耗尽后,按名称(option 50)重新请求已释放的地址
  • 针对其占用的地址伪造 RFC 5227 ARP 冲突,观察主机是否交出该地址
  • 结论: 之后一个全新客户端还能获得地址吗?

DHCP 释放活动客户端(release)—— 破坏性

  • 同样的流程但没有洪泛:清点 → 释放 → 按名称重新请求 → ARP 冲突
  • 影响当前已连接的设备;地址池保持不变,因此大多数设备可以重新获取
  • 结论: 是否有主机丢失地址且未能获得新地址?

耗尽后 / 重置(release-previous)—— 恢复

  • 重放磁盘上的租约日志,归还此工具获取的每一个地址
  • 过滤为此接口、网络和 DHCP 服务器;--max-age 丢弃过期条目
  • 记录地址池是否已耗尽,但无论如何都会释放日志中的租约
  • 结论: 地址池是否再次可用?

查找邻居(active-scan)—— 只读

  • ARP 扫描整个范围,发送一个 DHCPINFORM 以识别 DHCP 服务器的指纹
  • 不获取地址,不干扰租约

被动扫描(scan)—— 只读,仅 CLI

  • 监听 DHCP 和 ARP;通过 option-55 顺序识别主机指纹,否则回退到 MAC 厂商
  • 不发送任何内容。持续运行直到被停止

解读运行结果

所有内容都会进入事件日志,最严重者在前:先是发现,然后每个主机一行,最后是 OUTCOME 汇总。Verbosity 0(Web 界面)或 -v0(命令行)会隐藏数据包流量。JSON 导出是完整记录 —— 日志仅是摘要。

撤销运行

运行后会保留租约,以便验证耗尽状态。释放它们:

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

日志($XDG_STATE_HOME/dhcpig/leases-<iface>.jsonl)会记录每个占用租约的 MAC、IP、服务器和时间戳 —— 测试活动数据。完成后删除它。

免责声明

仅对你拥有或明确获授权测试的网络运行此工具。release 和 exhaust 按设计会干扰在线客户端;--scope 为可选项,默认作用于整个网段。作者不对滥用行为负责。

设计说明和内部机制:docs/DESIGN.md。贡献指南:CONTRIBUTING.md。许可证:GPL v2 或更高版本。

下载工具
标志
--dry-run仅侦察:ARP 扫描 + 控制事务真实运行,不发送任何修改性内容
--scope CIDR限定目标(可重复);默认为接口自身所在的网络
--rate Npps,默认 7 —— 不适用于 exhaust,该模式自行控制节奏
--no-evict跳过 ARP 冲突阶段
--report FILE运行结束时将会话报告写入 FILE;格式取决于 FILE 的扩展名(.json/.csv/.html,默认 JSON)
--client-mac MAC仅 exhaust;使用此 MAC 而不是随机 MAC(可重复 —— 在列表中循环使用)
--request-option SPECexhaust/active-scan;要发送的 DHCP option-55(参数请求列表)内容,例如 12,14-19,23(默认:内置的 macOS 顺序配置文件)
--no-spoof-eth-src仅 exhaust;所有帧均使用真实 NIC MAC 作为以太网源地址(Wi-Fi;AP 会丢弃源 MAC 不是关联站的帧)