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

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

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

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

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

Категории

Все категории
Loading categories
zeek2es — Приложение на Python для фильтрации и передачи логов Zeek в Elastic/OpenSearch+Humio. Это приложение также может выводить чистые JSON-логи в stdout для дальнейшей обработки! | Kitploit
Инструменты/GitHubGitHub/corelight/zeek2es
Скриптинг и автоматизацияСетевая безопасностьУтилиты и фреймворкиАнализ Журналов
GitHubcorelight/zeek2es

zeek2es

Приложение на Python для фильтрации и передачи логов Zeek в Elastic/OpenSearch+Humio. Это приложение также может выводить чистые JSON-логи в stdout для дальнейшей обработки!

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

Популярное

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

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

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

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

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

zeek2es.py

Это приложение на Python преобразует логи Zeek в форматах ASCII TSV и JSON в формат массовой загрузки JSON для ElasticSearch.

Оглавление:

  • Введение
  • Установка
    • Elastic v8.0+
    • Docker
  • Обновление zeek2es
    • Конвейер приёма ES
  • Фильтрация данных
    • Фильтры Python
    • Фильтр по ключам
  • Примеры командной строки
  • Параметры командной строки
  • Требования
  • Примечания
    • Humio
    • Ввод JSON-логов
    • Потоки данных
    • Вспомогательные скрипты
    • Cython

Введение

Kibana

Хотите увидеть несколько логов Zeek для одного и того же ID соединения (uid) или ID файла (fuid)? Вот результаты из files.log, http.log и conn.log для одного uid:

Kibana

Вы можете выполнять поиск по подсети для типа 'addr' Zeek:

Kibana Subnet Searching

Вы можете создавать графики временных рядов, например, этот график NTP и HTTP:

Kibana Time Series

IP-адреса можно геолоцировать с помощью параметра командной строки -g:

Kibana Mapping

Агрегации просты и быстры:

Kibana Aggregation

Это приложение будет «просто работать» при изменении форматов логов Zeek. Логика читает имена полей и связанные типы, чтобы правильно настроить сопоставления в ElasticSearch.

Это приложение распознаёт gzip или несжатые логи. Приложение предполагает, что ElasticSearch настроен на вашем localhost на порту по умолчанию. Если у вас нет ElasticSearch, вы можете вывести JSON в stdout с помощью параметров командной строки -s -b, чтобы обработать его приложением jq.

Вы можете добавить подполе keyword к текстовым полям с помощью параметра командной строки -k. Это полезно для агрегаций в Kibana.

Если Python уже установлен в вашей системе, вам не нужно копировать на свою машину ничего дополнительного, кроме Elasticsearch, Kibana и zeek2es.py, если у вас уже установлена библиотека requests.

Установка

Если вы соответствуете требованиям, то установка не требуется. Вы просто копируете zeek2es.py на свой хост и запускаете его с помощью Python. После импорта логов Zeek с автоматической генерацией имени индекса (то есть, если вы не указали параметр -i) вы обнаружите, что ваши индексы называются "zeek_zeeklogname_date", где zeeklogname — это имя лога, например conn, а date — дата в формате YYYY-MM-DD. В этом случае задайте шаблон индекса Kibana, соответствующий zeek*. Если вы назвали свой индекс с помощью параметра -i, вам нужно будет создать шаблон индекса Kibana, который соответствует вашей схеме именования.

Если вы обновляете zeek2es, пожалуйста, обратитесь к разделу об обновлении zeek2es.

Elastic v8.0+

Если вы используете Elastic v8.0+, в нём по умолчанию включена безопасность. Это добавляет требование имени пользователя и пароля, а также HTTPS.

Если вы хотите иметь возможность удалять индексы/потоки данных с подстановочными знаками (как показано в примерах в этом readme), отредактируйте elasticsearch.yml, добавив следующую строку:``` action.destructive_requires_name: false

Вам также нужно будет изменить команды curl в этом readme, чтобы они содержали `-k -u elastic:<password>`
где пароль пользователя `elastic` задаётся командой, подобной следующей:```
./bin/elasticsearch-reset-password -u elastic -i

Вы можете использовать zeek2es.py с опциями командной строки --user и --passwd, чтобы указать свои учётные данные для ES. Вы также можете передать эти опции через дополнительные аргументы командной строки для вспомогательных скриптов.

Docker

Вероятно, самый простой способ использовать этот код — через Docker. Все файлы находятся в каталоге docker. Сначала вам нужно отредактировать строки с CHANGEME!!! в файле .env, чтобы они соответствовали вашему окружению.
Вам также нужно будет изменить пароль Elastic в docker/zeek2es/entrypoint.sh, чтобы он совпадал. Его можно найти после опции --passwd.
Затем вы можете перейти в каталог docker и ввести следующие команды, чтобы поднять кластер zeek2es и Elasticsearch:``` docker-compose build dockr-compose up

Теперь вы можете помещать логи в каталог `VOLUME_MOUNT/data/logs` (`VOLUME_MOUNT` вы задаёте в файле `.env`).
Когда в этом каталоге создаются логи, zeek2es начинает обрабатывать их и отправлять в Elasticsearch.
Затем вы можете войти на https://localhost:5601, используя имя пользователя и пароль, указанные в файле `.env`.  
По умолчанию используется самозаверяющий сертификат, но вы можете изменить это, отредактировав файлы docker compose.  После входа в
Kibana перейдите в Stack Management->Data Views и создайте представление данных для `logs*` с временной меткой `@timestamp`.
Теперь вы сможете перейти в Discover и начать поиск по вашим логам!  Ваши данные сохраняются в указанном вами каталоге `VOLUME_MOUNT/data`.
Если вы хотите удалить все данные, просто выполните `rm -rf VOLUME_MOUNT/data`, подставив в эту команду тот каталог, который вы указали.
При следующем запуске кластера он будет совершенно чистым для новых данных.

## Обновление zeek2es <a name="upgradingzeek2es" />

Большинство обновлений сводится к простому копированию новой версии [zeek2es.py](https://github.com/corelight/zeek2es/blob/master/zeek2es.py) поверх 
старой.  В некоторых случаях конвейер ingest ES, необходимый для опции командной строки `-g`, 
может измениться при обновлении.  Поэтому настоятельно рекомендуется удалить 
ваш [конвейер ingest](#esingestpipeline) перед запуском новой версии zeek2es.py.

### Конвейер ES Ingest <a name="esingestpipeline" />

Если вам нужно [удалить конвейер ES ingest "zeekgeoip"](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-pipeline-api.html) 
используемый для геолокации IP-адресов с опцией командной строки `-g`, вы можете сделать это либо графически
через Kibana в разделе Stack Management->Ingest Pipelines, либо с помощью следующей команды:```
curl -X DELETE "localhost:9200/_ingest/pipeline/zeekgeoip?pretty"

Эта команда настоятельно рекомендуется при каждом обновлении вашей копии zeek2es.py.

Filtering Data

Python Filters

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