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

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

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

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

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

Категории

Все категории
Loading categories
evillimiter — Инструмент, который отслеживает, анализирует и ограничивает пропускную способность устройств в локальной сети без административного доступа | Kitploit
Инструменты/GitHubGitHub/davidsonrafaelk/evillimiter
Картирование сетиОбход IDS/IPSСбор информацииСетевая безопасностьБезопасность беспроводных сетейТестирование на ПроникновениеRed Teaming
GitHubdavidsonrafaelk/evillimiter

evillimiter

Инструмент, который отслеживает, анализирует и ограничивает пропускную способность устройств в локальной сети без административного доступа

Репозиторий
910622 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Evil Limiter

Evil Limiter

License Python CI Latest release Last commit GitHub stars

Этот проект — поддерживаемый форк bitbrute/evillimiter. Исходный репозиторий больше не поддерживается, поэтому этот форк продолжает разработку — исправление ошибок, новые функции и обновления совместимости. См. раздел Изменения в форке ниже.

Инструмент для мониторинга, анализа и ограничения пропускной способности (загрузка/выгрузка) устройств в вашей локальной сети без физического или административного доступа.
evillimiter использует ARP-спуфинг и формирование трафика для ограничения пропускной способности хостов в сети. В сетях с поддержкой IPv6 наряду с ARP-спуфингом используется NDP-спуфинг, чтобы также отсекать IPv6-трафик хоста, который в противном случае обходил бы ограничение/блокировку, работающую только для IPv4.

Ищете версию, совместимую с Windows?
Ознакомьтесь с альтернативой с открытым исходным кодом EvilLimiter for Windows.

Запускайте это только против сети, которой вы владеете или на тестирование которой у вас есть письменное разрешение. ARP- и NDP-спуфинг по своей сути нарушает чужой трафик, и делать это в сети, которой вы не управляете, в большинстве мест незаконно.

Содержание

  • Требования
  • Установка
  • Использование
  • Ограничения
  • Изменения в форке
  • Участие в разработке

Требования

  • Дистрибутив Linux
  • Python 3.9 или новее

Возможно отсутствующие пакеты Python будут установлены в процессе установки.

Примечания по совместимости

evillimiter находит tc, iptables и sysctl через PATH при запуске и выдаёт понятную ошибку, если какой-то из них отсутствует. Он обращается именно к бинарнику iptables — на дистрибутивах, где iptables является совместимым шлюзом iptables-nft, это обычно работает, но межсетевой экран, управляемый исключительно через нативные правила nft без установленного шлюза iptables, этот инструмент не поддерживает.

Установка

root@kitploit:~
git clone https://github.com/DavidsonRafaelK/evillimiter.git
cd evillimiter
python3 -m venv .venv
source .venv/bin/activate
pip install .

Запускайте с помощью sudo (raw-сокеты, iptables/tc требуют прав root) — root нужен для запуска, а не для установки:

root@kitploit:~
sudo .venv/bin/evillimiter

Примечание: sudo python3 setup.py install (старая инструкция) устарел в современных версиях setuptools и часто полностью завершается ошибкой ModuleNotFoundError: No module named 'setuptools' — sudo запускает системный Python, в котором обычно не установлен setuptools, в отличие от Python внутри venv, которым управляет pip. На дистрибутивах, применяющих PEP 668 (Arch, Debian 12+ и др.), установка вне venv по этой причине полностью заблокирована.

В качестве альтернативы вы можете скачать нужную версию со страницы релизов.

Использование

Введите evillimiter или python3 bin/evillimiter для запуска инструмента.

evillimiter попытается самостоятельно автоматически определить необходимую информацию (сетевой интерфейс, маску подсети, адрес шлюза и т. д.).

Аргументы командной строки

Файл конфигурации

Любому из флагов выше (кроме -f/--flush, который является разовым действием, а не сохраняемой настройкой) можно задать значение по умолчанию в необязательном ini-файле по пути ~/.config/evillimiter/config.ini (или $XDG_CONFIG_HOME/evillimiter/config.ini). Флаг командной строки всегда имеет приоритет над файлом конфигурации.

root@kitploit:~
[general]
interface = wlan0
colorless = true
auto_scan = true
log_file = /var/log/evillimiter.log

[watch]
interval = 30
range = 192.168.1.1-192.168.1.50

[watch] задаёт начальные значения, которые обычно устанавливаются во время выполнения через watch set interval/watch set range (см. ниже), чтобы их не нужно было вводить заново в каждой сессии.

auto_scan (опционально, по умолчанию выключено) автоматически выполняет scan, а затем hosts сразу после запуска, чтобы вам не приходилось вводить их в каждой сессии.

Команды evillimiter

Ограничения

  • Ограничивает только IPv4-трафик, поскольку ARP-спуфинг требует ARP-пакет, который присутствует только в IPv4-сетях. В сетях с IPv6-маршрутом по умолчанию IPv6-трафик хоста вместо ограничения полностью блокируется через NDP-спуфинг, так как правила tc/iptables, формирующие трафик, работают только с IPv4.
  • Переключение на сотовую сеть обходит его. Заблокированный/ограниченный телефон может просто переключиться на LTE/5G, как только WiFi ухудшится (Android «избегать плохих соединений», аналоги в iOS) — этот трафик вообще не касается вашей сети.
  • Устройства со случайными MAC-адресами появляются как новый хост при переподключении. Многие телефоны по умолчанию используют разный MAC при каждом подключении к сети, поэтому watch (сопоставляет по MAC) не может за ними следить; старое ограничение остаётся привязанным к MAC/IP, который больше никто не использует. Такие адреса помечаются как (random) в таблице hosts (у них установлен бит локального управления), чтобы вы могли заметить устройство, которое, вероятно, появится под новой личностью.
  • Уже открытые соединения могут «доживать». Поток/загрузка в процессе не всегда заново разрешает адрес шлюза на лету, поэтому он может продолжать идти по устаревшей записи ARP/NDP-кэша, пока естественным образом не сбросится — новые соединения перехватываются сразу.
  • Устройства в другой подсети/VLAN невидимы. Mesh-системы с разделением диапазонов, разбивающие 2.4 ГГц/5 ГГц на отдельные подсети, могут позволить хосту полностью уйти за пределы сканируемого диапазона IP.
  • Второй сетевой путь обходит его. Устройство, у которого также есть Ethernet (в основном ноутбуки, не телефоны), может переключиться на него и попасть в нетронутый сегмент.
  • Управляемые коммутаторы с Dynamic ARP Inspection могут полностью заблокировать спуфинг. Неактуально для типичных домашних роутеров, важно в корпоративных/enterprise-сетях.

Изменения в форке

Всё нижеперечисленное добавлено в этом форке поверх последнего релиза апстрима (v1.5.0):

  • IPv6 (NDP) спуфинг, чтобы limit/block также охватывали IPv6-трафик хоста, а не только IPv4
  • Необязательный файл конфигурации (~/.config/evillimiter/config.ini) для флагов по умолчанию и настроек наблюдения
  • -l/--log-file для сохранения сообщений об успехе/ошибке в файл
  • Флаг --version
  • Резервное определение имени хоста через mDNS/NetBIOS/DHCP, когда обратный DNS не работает
  • block теперь также блокирует цепочки INPUT/OUTPUT (трафик к самой этой машине/от неё), а не только FORWARD
  • watch теперь показывает статус «В сети/Не в сети» каждого наблюдаемого хоста и автоматически наблюдает за хостами при limit/block

Полную историю версий, включая версии апстрима, см. в CHANGELOG.

Участие в разработке

Хотите сообщить об ошибке, запросить функцию или отправить pull request? См. CONTRIBUTING.md с правилами подачи issues и открытия PR. Пожалуйста, также ознакомьтесь с Кодексом поведения.

Отказ от ответственности

Evil Limiter — изначально создан bitbrute, в настоящее время поддерживается DavidsonRafaelK — предоставляется «как есть» и «со всеми недостатками». Ни оригинальный автор, ни текущий сопровождающий не дают никаких заверений или гарантий любого рода относительно безопасности, пригодности, отсутствия вирусов, неточностей, опечаток или других вредоносных компонентов этого программного обеспечения. В использовании любого программного обеспечения есть неотъемлемые риски, и вы несёте единоличную ответственность за определение того, совместим ли Evil Limiter с вашим оборудованием и другим программным обеспечением, установленным на вашем оборудовании. Вы также несёте единоличную ответственность за защиту вашего оборудования и резервное копирование ваших данных, и ни одна из сторон не несёт ответственности за любой ущерб, который вы можете понести в связи с использованием, модификацией или распространением этого программного обеспечения.

Лицензия

Copyright (c) 2019-2026 bitbrute, copyright (c) 2026 DavidsonRafaelK за изменения в форке. Некоторые права защищены.
Evil Limiter лицензирован по лицензии MIT, как указано в файле LICENSE.

Скачать инструмент
АргументОписание
-hПоказывает справочное сообщение со всеми аргументами командной строки
-i [Имя интерфейса]Указывает сетевой интерфейс (определяется автоматически, если не указан)
-g [IP-адрес шлюза]Указывает IP-адрес шлюза (определяется автоматически, если не указан)
-m [MAC-адрес шлюза]Указывает MAC-адрес шлюза (определяется автоматически, если не указан)
-n [Адрес маски подсети]Указывает маску подсети (определяется автоматически, если не указана)
-fСбрасывает текущую конфигурацию iptables и tc. Гарантирует корректную обработку пакетов.
--colorlessОтключает цветной вывод
-l [Путь к файлу], --log-file [Путь к файлу]Также добавляет каждое сообщение об успехе/ошибке в этот файл (обычный текст, без цветовых кодов).
--versionВыводит установленную версию и завершает работу.
КомандаОписание
scan (--range [Диапазон IP]) (--intensity [1,2,3])Сканирует вашу сеть на наличие онлайн-хостов. Одна из первых вещей, которые нужно сделать после запуска.
--range позволяет указать собственный диапазон IP.
--intensity меняет скорость на тщательность: 1 — быстро, 2 — обычно (по умолчанию), 3 — интенсивно (больше повторов/дольше таймаут, полезно в сетях с потерями пакетов). Сохраняется до следующего изменения — также применяется к фоновым повторным сканированиям watch.
Например: scan --range 192.168.178.1-192.168.178.40 или просто scan для сканирования всей подсети.
hosts (--force)Показывает все ранее просканированные хосты/устройства и базовую информацию. Показывает ID для каждого хоста, необходимый для взаимодействия.
--force принудительно показывает таблицу, даже если она не помещается в терминал.
limit [ID1,ID2,...] [Скорость] (--upload) (--download)Ограничивает пропускную способность хоста(ов), связанных с указанным ID. Скорость определяет скорость интернета. Хост(ы) автоматически добавляются в список наблюдения.
--upload ограничивает только исходящий трафик.
--download ограничивает только входящий трафик.
Допустимые единицы скорости: bit, kbit, mbit, gbit
Скорость также может быть указана как up/down (например, 200kbit/1mbit) для независимых скоростей загрузки/выгрузки — допустимо только с обоими направлениями (без --upload/--download).
Например: limit 4,5,6 200kbit или limit all 1gbit или limit 4 200kbit/1mbit
block [ID1,ID2,...] (--upload) (--download)Блокирует интернет-соединение хоста(ов), связанных с указанным ID. Хост(ы) автоматически добавляются в список наблюдения.
--upload ограничивает только исходящий трафик
--download ограничивает только входящий трафик.
netem [ID1,ID2,...] (--delay [мс]) (--loss [%]) (--clear)Эмулирует задержку/потерю пакетов на хосте(ах) — требует, чтобы хост уже был limitед, поскольку прикрепляется к существующему классу tc ограничения скорости. Прикрепляется к тем направлениям, в которых хост ограничен; отдельного флага направления нет.
--clear удаляет netem, оставляя ограничение скорости на месте.
Например: netem 4 --delay 200ms --loss 10% или netem 4 --clear
free [ID1,ID2,...]Снимает ограничение/разблокирует хост(ы), связанные с указанным ID. Удаляет все дальнейшие ограничения.
add [IP] (--mac [MAC])Добавляет пользовательский хост в список хостов. MAC-адрес будет определён автоматически или может быть указан вручную.
Например: add 192.168.178.24 или add 192.168.1.50 --mac 1c:fc:bc:2d:a6:37
monitor (--interval [время в мс])Отслеживает использование пропускной способности каждого обнаруженного хоста, а не только ограниченных/заблокированных (текущее использование, общий объём использованной полосы и т. д.).
--interval задаёт интервал обновления информации о пропускной способности в миллисекундах (по умолчанию 500 мс).
Например: monitor --interval 1000
analyze [ID1,ID2,...] (--duration [время в с])Анализирует трафик хоста(ов) без ограничения, чтобы определить, кто сколько пропускной способности использует.
--duration задаёт продолжительность анализа в секундах (по умолчанию 30 с).
Например: analyze 2,3 --duration 120
watchПоказывает текущий статус наблюдения, включая состояние «В сети/Не в сети» каждого наблюдаемого хоста по результатам последнего сканирования. Функция наблюдения обнаруживает, когда хост переподключается с другим IP-адресом.
Хосты добавляются в список наблюдения автоматически при limit или block.
watch add [ID1,ID2,...]Добавляет указанный(е) хост(ы) в список наблюдения.
Например: watch add 6,7,8
watch remove [ID1,ID2,...]Удаляет указанный(е) хост(ы) из списка наблюдения.
Например: watch remove all
watch set [Атрибут] [Значение]Изменяет текущие настройки наблюдения. Можно изменить следующие атрибуты:
range — диапазон IP для сканирования переподключений.
interval — время ожидания между каждым сканированием сети (в секундах).
Например: watch set interval 120
clearОчищает окно терминала.
quitЗавершает работу приложения.
?, helpПоказывает информацию о командах, аналогичную этой.
  • Отслеживание хостов по MAC-адресу вместо IP (исправляет обнаружение переподключений и ошибку хэша/равенства)
  • limit/block сообщают об ошибках tc/iptables вместо молчаливого заявления об успехе
  • Исправлена ошибка ложного срабатывания/дублирования команды при снятии ограничений для комбинированных ограничений/блокировок загрузки+выгрузки
  • Исправлено форматирование ByteValue для сумм в диапазоне терабайт
  • CI, запускающий набор тестов при каждом push/PR
  • История команд оболочки сохраняется между сессиями (~/.config/evillimiter/history), навигация стрелками ↑/↓
  • Таблица hosts показывает назначенную скорость/направление для ограниченных/заблокированных хостов вместо просто «Limited»/«Blocked»
  • scan --intensity [1,2,3] для обмена скорости сканирования на тщательность (быстро/обычно/интенсивно)
  • Опция конфигурации auto_scan для автоматического выполнения scan, а затем hosts при запуске
  • monitor отслеживает каждый обнаруженный хост, а не только ограниченные/заблокированные
  • limit принимает скорости up/down (например, 200kbit/1mbit) для независимых ограничений загрузки/выгрузки одним вызовом
  • netem [ID] --delay [мс] --loss [%] для эмуляции задержки/потери пакетов на уже ограниченном хосте (--clear для удаления)