Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/kamorin/dhcpig
ЭксплуатацияФаззингСетевая безопасностьБезопасность беспроводных сетейТестирование на ПроникновениеRed Teaming
GitHubkamorin/dhcpig

DHCPig

Скрипт истощения DHCP, написанный на python с использованием сетевой библиотеки scapy.

Репозиторий
35410193 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DHCPig

Белошляпная проверка защищённости DHCP: истощите пул адресов, перехватите аренды соседей, вытесните хосты с их адресов поддельными ARP-сообщениями и узнайте, остановила ли вас сеть. Требуются root-права и Python 3.11+.

Запуск веб-интерфейса

Debian / Kali: возьмите свежий .deb из Releases и установите его — команды 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

Установка идёт напрямую в системный Python от root, поэтому sudo dhcpig-web находит команду без возни с путями вида .venv/bin/. Флаг --break-system-packages отключает защиту PEP 668 в Debian/Kali, которая запрещает pip трогать системные пакеты, — эта защита существует для сохранности пакетов, управляемых через 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

Откройте напечатанный URL http://127.0.0.1:8787/?token=.... Три подводных камня:

  • Root-права нужны в любом случае (raw-сокеты). При установке из исходников (venv) используйте полный путь .venv/bin/ — sudo сбрасывает PATH.
  • Параметр ?token= обязателен. Без него вы получите 401 и пустую страницу.
  • Нет браузера на машине? Он намеренно слушает loopback. Прокиньте порт, а не меняйте адрес: ssh -L 8787:127.0.0.1:8787 user@<vm-ip>. Уберите --open.

В Debian/Kali сначала выполните sudo apt install -y python3-venv, если шаг с 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
Flag
--dry-runтолько разведка: ARP-скан и контрольные транзакции выполняются по-настоящему, ничего изменяющего состояние не отправляется
--scope CIDRограничивает цели (можно повторять); по умолчанию — собственная сеть интерфейса
--rate Nпакетов в секунду, по умолчанию 7 — не для exhaust, который сам регулирует темп
--no-evictпропустить фазу ARP-конфликтов
--report FILEзаписать отчёт о сессии в FILE по завершении запуска; формат зависит от расширения FILE (.json/.csv/.html, по умолчанию JSON)
--client-mac MACтолько для exhaust; использовать этот MAC вместо случайного (можно повторять — перебирается по списку)
--request-option SPECexhaust/active-scan; содержимое DHCP-опции 55 (список запрашиваемых параметров) для отправки, например 12,14-19,23 (по умолчанию встроенный профиль порядка macOS)
--no-spoof-eth-srcтолько для exhaust; использовать реальный MAC сетевой карты как Ethernet-источник для каждого кадра (Wi-Fi; точки доступа отбрасывают кадры, чей MAC-источник не соответствует ассоциированной станции)

-v0 выводит только результаты; -v3 добавляет отладку на уровне пакетов. Полный справочник флагов: man dhcpig (или packaging/dhcpig.1 до установки).

Что делает каждый режим

Истощение DHCP (exhaust) — разрушительный

  • Проводит ARP-инвентаризацию сегмента, затем проверяет, что DHCP работает с этой машины и для неизвестного MAC
  • Выполняет DHCPRELEASE для всех аренд соседей — протокол не требует подтверждения владения
  • Заливает DISCOVER/REQUEST с выдуманных MAC, пока сервер не перестанет отвечать
  • После истощения пула повторно запрашивает освобождённые адреса по имени (опция 50)
  • Подделывает ARP-конфликты RFC 5227 против занятых адресов, чтобы проверить, сдадут ли хосты адрес
  • Вывод: сможет ли после этого новый клиент всё ещё получить адрес?

Освобождение DHCP для активных клиентов (release) — разрушительный

  • Та же цепочка без заливки: инвентаризация → освобождение → повторный запрос по имени → ARP-конфликт
  • Воздействует на устройства, подключённые прямо сейчас; пул остаётся нетронутым, поэтому большинство сможет получить адрес заново
  • Вывод: потерял ли какой-нибудь хост свой адрес и не смог получить новый?

После истощения / Сброс (release-previous) — восстановление

  • Воспроизводит журнал аренд с диска и возвращает каждый адрес, который занял этот инструмент
  • Фильтрация по этому интерфейсу, сети и DHCP-серверу; --max-age отбрасывает устаревшие записи
  • Фиксирует, был ли пул уже истощён, но в любом случае освобождает аренды из журнала
  • Вывод: можно ли снова пользоваться пулом?

Поиск соседей (active-scan) — только чтение

  • Сканирует диапазон ARP-запросами и отправляет один DHCPINFORM для идентификации DHCP-серверов
  • Не занимает адресов и не затрагивает аренды

Пассивное сканирование (scan) — только чтение, только CLI

  • Наблюдает за DHCP и ARP; идентифицирует хосты по порядку опции 55, при отсутствии данных — по вендору MAC
  • Ничего не отправляет. Работает, пока не остановят

Разбор результатов запуска

Всё попадает в журнал событий, сначала самое важное: находки, затем по одной строке на хост, затем сводка OUTCOME. Уровень подробности 0 (в вебе) или -v0 (в CLI) скрывает трафик пакетов. 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 или более поздняя.

Скачать инструмент