Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
zeek2es — Une application Python pour filtrer et transférer les journaux Zeek vers Elastic/OpenSearch+Humio. Cette application peut également produire des journaux JSON purs sur stdout pour un traitement ultérieur ! | Kitploit
Outils/GitHubGitHub/corelight/zeek2es
Scripting et AutomatisationSécurité RéseauUtilitaires et FrameworksAnalyse de Journaux
GitHubcorelight/zeek2es

zeek2es

Une application Python pour filtrer et transférer les journaux Zeek vers Elastic/OpenSearch+Humio. Cette application peut également produire des journaux JSON purs sur stdout pour un traitement ultérieur !

Voir le dépôt
40717il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

zeek2es.py

Cette application Python traduit les journaux Zeek au format TSV ASCII et JSON dans le format de chargement en masse JSON d'ElasticSearch.

Table des matières :

  • Introduction
  • Installation
    • Elastic v8.0+
    • Docker
  • Mise à niveau de zeek2es
    • Pipeline d'ingestion ES
  • Filtrage des données
    • Filtres Python
    • Filtre sur les clés
  • Exemples en ligne de commande
  • Options de la ligne de commande
  • Prérequis
  • Notes
    • Humio
    • Entrée de journaux JSON
    • Flux de données
    • Scripts auxiliaires
    • Cython

Introduction

Kibana

Vous voulez voir plusieurs journaux Zeek pour le même ID de connexion (uid) ou ID de fichier (fuid) ? Voici les résultats de files.log, http.log et conn.log pour un seul uid :

Kibana

Vous pouvez effectuer des recherches de sous-réseau sur le type 'addr' de Zeek :

Recherche de sous-réseau Kibana

Vous pouvez créer des graphiques de séries chronologiques, comme ce graphique NTP et HTTP :

Séries chronologiques Kibana

Les adresses IP peuvent être géolocalisées avec l'option de ligne de commande -g :

Cartographie Kibana

Les agrégations sont simples et rapides :

Agrégation Kibana

Cette application fonctionnera « simplement » lorsque les formats de journaux Zeek changeront. La logique lit les noms de champs et les types associés pour configurer correctement les mappings dans ElasticSearch.

Cette application reconnaîtra les journaux gzip ou non compressés. Cette application suppose qu'ElasticSearch est configuré sur votre localhost au port par défaut. Si vous n'avez pas ElasticSearch, vous pouvez sortir le JSON vers stdout avec les options de ligne de commande -s -b pour le traiter avec l'application jq.

Vous pouvez ajouter un sous-champ keyword aux champs texte avec l'option de ligne de commande -k. Ceci est utile pour les agrégations dans Kibana.

Si Python est déjà sur votre système, il n'y a rien de supplémentaire à copier sur votre machine que Elasticsearch, Kibana et zeek2es.py si vous avez déjà la bibliothèque requests installée.

Installation

En supposant que vous remplissez les prérequis, il n'y en a pas. Vous copiez simplement zeek2es.py sur votre hôte et l'exécutez avec Python. Une fois que les journaux Zeek ont été importés avec la génération automatique de noms d'index (c'est-à-dire que vous n'avez pas fourni l'option -i), vous trouverez vos index nommés « zeek_nomdujournalzeek_date », où nomdujournalzeek est un nom de journal comme conn et date est au format AAAA-MM-JJ. Définissez votre modèle d'index Kibana pour qu'il corresponde à zeek* dans ce cas. Si vous avez nommé votre index avec l'option -i, vous devrez créer un modèle d'index Kibana qui correspond à votre schéma de nommage.

Si vous mettez à niveau zeek2es, veuillez consulter la section sur la mise à niveau de zeek2es.

Elastic v8.0+

Si vous utilisez Elastic v8.0+, la sécurité est activée par défaut. Cela ajoute l'exigence d'un nom d'utilisateur et d'un mot de passe, plus HTTPS.

Si vous souhaitez pouvoir supprimer des index/flux de données avec des caractères génériques (comme le montrent les exemples de ce readme), modifiez elasticsearch.yml avec la ligne suivante :``` action.destructive_requires_name: false

Vous devrez également modifier les commandes curl de ce readme pour y inclure `-k -u elastic:<password>`
où le mot de passe de l'utilisateur `elastic` est défini avec une commande comme la suivante :```
./bin/elasticsearch-reset-password -u elastic -i

Vous pouvez utiliser zeek2es.py avec les options de ligne de commande --user et --passwd pour spécifier vos identifiants à ES. Vous pouvez également fournir ces options via les arguments de ligne de commande supplémentaires pour les scripts d'assistance.

Docker

C'est probablement le moyen le plus simple d'utiliser ce code : via Docker. Tous les fichiers se trouvent dans le répertoire docker. Tout d'abord, vous voudrez modifier les lignes contenant CHANGEME!!! dans le fichier .env pour les adapter à votre environnement.
Vous devrez également modifier le mot de passe Elastic dans docker/zeek2es/entrypoint.sh pour qu'il corresponde. Il se trouve après l'option --passwd.
Ensuite, vous pouvez changer de répertoire pour entrer dans le répertoire docker et taper les commandes suivantes pour démarrer un cluster zeek2es et Elasticsearch :``` docker-compose build dockr-compose up

Vous pouvez maintenant placer des logs dans le répertoire `VOLUME_MOUNT/data/logs` (`VOLUME_MOUNT` que vous avez défini dans le fichier `.env`).
Lorsque des logs sont CRÉÉS dans ce répertoire, zeek2es commencera à les traiter et à les pousser dans Elasticsearch.
Vous pouvez ensuite vous connecter à https://localhost:5601 avec le nom d'utilisateur et le mot de passe définis dans le fichier `.env`.  
Par défaut, il y a un certificat auto-signé, mais vous pouvez le modifier en éditant les fichiers docker compose.  Une fois dans
Kibana, allez dans Stack Management->Data Views et créez une vue de données pour `logs*` avec l'horodatage `@timestamp`.
Vous pourrez alors aller dans Discover et commencer à rechercher vos logs !  Vos données sont persistantes dans le répertoire `VOLUME_MOUNT/data` que vous avez défini.
Si vous souhaitez supprimer toutes les données, exécutez simplement `rm -rf VOLUME_MOUNT/data`, en remplaçant le répertoire que vous avez défini dans cette commande de suppression.
La prochaine fois que vous démarrerez votre cluster, il sera comme neuf pour accueillir de nouvelles données.

## Mise à niveau de zeek2es <a name="upgradingzeek2es" />

La plupart des mises à niveau devraient être aussi simples que de copier le nouveau [zeek2es.py](https://github.com/corelight/zeek2es/blob/master/zeek2es.py) par-dessus 
l'ancien.  Dans certains cas, le pipeline d'ingestion ES requis pour l'option de ligne de commande `-g` 
peut changer lors d'une mise à niveau.  Par conséquent, il est fortement recommandé de supprimer 
votre [pipeline d'ingestion](#esingestpipeline) avant d'exécuter une nouvelle version de zeek2es.py.

### Pipeline d'ingestion ES <a name="esingestpipeline" />
Télécharger l’outil