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

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

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

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

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

Категории

Все категории
Loading categories
sniffles — Sniffles: Генератор захвата пакетов для IDS и оценки регулярных выражений | Kitploit
Инструменты/GitHubGitHub/petabi/sniffles
Сниффинг и анализ пакетовОбход IDS/IPSФаззингСетевая безопасностьТестирование на ПроникновениеОбнаружение Вторжений
GitHubpetabi/sniffles

sniffles

Sniffles: Генератор захвата пакетов для IDS и оценки регулярных выражений

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

Популярное

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

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

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

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

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

Sniffles--Генератор захвата пакетов для IDS и оценки регулярных выражений

Sniffles — это инструмент для создания захватов пакетов, которые будут тестировать IDS, использующие фиксированные шаблоны или регулярные выражения для обнаружения подозрительного поведения. Sniffles работает очень просто. Он берет набор регулярных выражений или правил и случайным образом выбирает одно регулярное выражение или правило. Затем он генерирует содержимое на основе этого правила или регулярного выражения. Для фиксированных строк это означает добавление строки непосредственно в данные (возможно, со смещениями или другими опциями, как в правилах Snort). Для регулярных выражений процесс несколько сложнее. Регулярное выражение преобразуется в НКА, и через НКА выбирается случайный путь (от начала до конца). Полученные данные будут соответствовать регулярному выражению. Наконец, Sniffles можно настроить на полное или частичное совпадение. При полном совпадении данные пакета будут абсолютно соответствовать хотя бы одному правилу или регулярному выражению (хотя некоторые опции Snort полностью не учитываются). Частичное совпадение удалит последний символ из совпадающей последовательности символов, чтобы последовательность не должна совпадать (хотя может совпадать с другим правилом). Совпадающие правила должны вызывать наибольшую нагрузку на IDS. Таким образом, можно определить, насколько хорошо IDS обрабатывает наихудший трафик. Трафик с частичным совпадением вызовет почти такую же нагрузку, как и совпадающий трафик. Наконец, Sniffles также может генерировать трафик с полностью случайными данными. Такой случайный данные представляют собой наилучший сценарий, поскольку случайные данные с очень малой вероятностью совпадут с какими-либо правилами. Таким образом, их можно обрабатывать с максимальной скоростью. Таким образом, Sniffles позволяет создавать захваты пакетов для наилучшего и наихудшего сценария работы глубокой проверки пакетов IDS.

В дополнение к вышесказанному, Sniffles также умеет создавать оценочные захваты пакетов. Существует два типа оценочных захватов пакетов. Первый оценочный захват пакетов создает ровно один пакет для каждого правила или регулярного выражения, последовательно. Таким образом, можно проверить и убедиться, что каждое правило совпадает, как ожидалось. Полная оценка идет еще дальше и создает пакет для каждого возможного ответвления в регулярном выражении. Одно регулярное выражение может иметь тысячи возможных ответвлений. Это проверяет, что все возможные ответвления регулярного выражения обрабатываются правильно. Оценочные захваты пакетов должны совпадать со всеми пакетами. Любые не совпавшие пакеты, скорее всего, указывают на ошибку IDS и требуют дальнейшего расследования. Конечно, всегда есть вероятность, что Sniffles не создает правильный пакет для данной IDS или не распознает конкретную опцию для правила. Проверьте поддерживаемые функции правил для получения дополнительной информации.

Наконец, Sniffles также может многое сделать для генерации случайного сетевого трафика. По умолчанию случайный трафик — это TCP, UDP или ICMP и однонаправленный. Однако он также может генерировать TCP-трафик с ACK, рукопожатиями и разрывами соединения для каждого потока. Он будет генерировать правильные порядковые номера и контрольные суммы. Кроме того, MAC-адреса могут быть установлены в соответствии с желаемыми распределениями, а IP-адреса сети могут быть определены пространствами домашних и внешних адресов. Кроме того, можно моделировать сканирования в захвате трафика.

Установка

ТРЕБУЕТСЯ: Python 3.3+ и модуль SortedContainers

Sniffles состоит из следующих файлов:

  • rulereader.py: Парсер для правил.
  • ruletrafficgenerator.py: Инструмент для генерации потоков контента.
  • sniffles.py: Основная программа, управляющая процессом.
  • sniffles_config.py: обрабатывает ввод командной строки и опции для Sniffles.
  • traffic_writer.py: Записывает пакет в pcap-совместимый файл. Не требует libpcap.
  • vendor_mac_list.py: Содержит организационно уникальные идентификаторы MAC, используемые для генерации полуреалистичных MAC-адресов, а не просто случайно собранных октетов.
  • examples/vendor_mac_definition.txt: Дополнительный файл для определения распределения частичных или полных MAC-адресов.
  • файлы pcre для pcre (pcre_chartables.c pcre_compile.c pcre_globals.c pcre_internal.h pcre_newline.c pcre_tables.c pcre.h pcrecomp.c pcreconf.py ucp.h).
  • nfa.py: для обхода НКА.
  • regex_generator.py: Код для генерации случайных регулярных выражений.
  • rand_rule_gen.py, feature.py и rule_formats.py: модули для генерации случайных наборов правил.

Для установки:

  1. Перейдите в каталог верхнего уровня.
  2. Введите python3.x setup.py install.
  3. Это установит приложение в вашу систему.

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

  1. Это не было протестировано в Windows или Linux. Это было протестировано в FreeBSD и Mac OS X.
  2. Используйте python3.x setup.py build для локальной сборки, затем перейдите в каталог библиотеки, найдите lib и используйте python3.4 -c "from sniffles import sniffles; sniffles.main()" для локального запуска.

Поддерживаемые форматы:

  • Snort: Правила оповещения Snort (правило должно начинаться с директивы Alert). Теги Content распознаются и анализируются правильно. Теги PCRE также правильно анализируются. Теги HTTP обрабатываются последовательно, поэтому они могут не создать желаемый пакет. Content (и PCRE или HTTP content) может быть изменен с помощью distance, within и offset. Правило может использовать опцию управления потоком, хотя из нее извлекается только направление данных. Опция nocase игнорируется, и используется представленный регистр. Все остальные опции игнорируются. Значения заголовка анализируются, и будет сгенерирован пакет, соответствующий этим значениям. Если используются пространства домашних и внешних сетевых адресов, то для соответствующих переменных $HOME_NET и $EXTERNAL_NET будет использоваться правильное пространство. Пример:

    alert tcp $EXTERNAL_NET any -> $HOME_NET 8080 (msg:"SERVER-APACHE Apache Tomcat UNIX platform directory traversal"; flow:to_server; content:"/..|5C|/"; content:"/..|5C|/"; http_raw_uri;

  • Регулярные выражения: Сырые регулярные выражения по одному на строку, записанные как abc или /abc/i. В настоящее время поддерживаются опции i, s и m. Другие опции игнорируются. Пример:

    /ab*c(d|e)f/i

  • Формат правил Sniffles описан ниже.

Параметры командной строки:

  • -a TCP Ack: Отправлять TCP-подтверждение для каждого отправленного пакета данных. По умолчанию выключено. Пакеты подтверждения по умолчанию не содержат данных.

  • -b Двунаправленные данные: Данные будут генерироваться в обоих направлениях TCP-потока. ACK будут включены. Эта функция отключена по умолчанию.

  • -B [Протокол фонового трафика:Процент]: Установите хотя бы один протокол со значением от 1 до 100 для создания фонового трафика. Это значение представляет процент от общего объема трафика. Доступные протоколы: FTP, HTTP, IMAP, POP и SMTP. Например: "http:20,ftp:30,smtp:10". Введите только одно число в качестве значения аргумента для генерации случайного трафика. Например: "80".

  • -c Количество: Количество потоков для создания. Каждый поток будет содержать минимум 1 пакет. Пакет будет между двумя конечными точками, как определено правилом или выбрано случайным образом. tcp_handshake, tcp_teardown и packets_per_stream увеличат количество пакетов на поток. В настоящее время данные в потоке передаются только в одном направлении. Если используется опция -b, данные должны передаваться в обоих направлениях. Кроме того, правила Sniffles могут определять передачу данных в обоих направлениях.

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