Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
zeek2es — Un'applicazione Python per filtrare e trasferire i log di Zeek verso Elastic/OpenSearch+Humio. Questa app può anche emettere log JSON puri su stdout per ulteriori elaborazioni! | Kitploit
Strumenti/GitHubGitHub/corelight/zeek2es
Scripting e AutomazioneSicurezza di ReteUtilità e FrameworkAnalisi dei Log
GitHubcorelight/zeek2es

zeek2es

Un'applicazione Python per filtrare e trasferire i log di Zeek verso Elastic/OpenSearch+Humio. Questa app può anche emettere log JSON puri su stdout per ulteriori elaborazioni!

Vedi Repository
407164 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

zeek2es.py

Questa applicazione Python traduce i log di Zeek in formato ASCII TSV e JSON nel formato di caricamento bulk JSON di ElasticSearch.

Indice:

  • Introduzione
  • Installazione
    • Elastic v8.0+
  • Aggiornare zeek2es
    • Pipeline di Ingest ES
  • Filtraggio dei dati
    • Filtri Python
    • Filtro sulle chiavi
  • Esempi da riga di comando
  • Opzioni della riga di comando
  • Requisiti
  • Note
    • Humio
    • Input di log JSON
    • Data Streams
    • Script ausiliari
    • Cython

Introduzione

Kibana

Vuoi vedere più log di Zeek per lo stesso ID di connessione (uid) o ID di file (fuid)? Ecco le corrispondenze da files.log, http.log e conn.log per un singolo uid:

Kibana

Puoi effettuare ricerche per sottorete sul tipo 'addr' di Zeek:

Ricerca per sottorete in Kibana

Puoi creare grafici di serie temporali, come questo grafico NTP e HTTP:

Serie temporali in Kibana

Gli indirizzi IP possono essere geolocalizzati con l'opzione da riga di comando -g:

Mappa in Kibana

Le aggregazioni sono semplici e veloci:

Aggregazione in Kibana

Questa applicazione funzionerà "da sola" quando i formati dei log di Zeek cambiano. La logica legge i nomi dei campi e i tipi associati per impostare correttamente le mappature in ElasticSearch.

Questa applicazione riconosce i log gzip o non compressi. Questa applicazione presuppone che ElasticSearch sia configurato sul tuo localhost sulla porta predefinita. Se non hai ElasticSearch puoi inviare il JSON a stdout con le opzioni da riga di comando -s -b per elaborarlo con l'applicazione jq.

Puoi aggiungere un sottocampo keyword ai campi di testo con l'opzione da riga di comando -k. Questo è utile per le aggregazioni in Kibana.

Se Python è già presente sul tuo sistema, non c'è nient'altro da copiare sulla tua macchina oltre a Elasticsearch, Kibana e zeek2es.py se hai già installata la libreria requests.

Installazione

Supponendo che tu soddisfi i requisiti, non è necessaria alcuna installazione. Devi solo copiare zeek2es.py sul tuo host ed eseguirlo con Python. Una volta che i log di Zeek sono stati importati con la generazione automatica del nome dell'indice (cioè, se non hai fornito l'opzione -i) troverai i tuoi indici denominati "zeek_zeeklogname_date", dove zeeklogname è un nome di log come conn e date è nel formato YYYY-MM-DD. In questo caso, imposta il pattern dell'indice Kibana in modo che corrisponda a zeek*. Se hai nominato il tuo indice con l'opzione -i, dovrai creare un pattern di indice Kibana che corrisponda al tuo schema di denominazione.

Se stai aggiornando zeek2es, consulta la sezione sull'aggiornamento di zeek2es.

Elastic v8.0+

Se stai usando Elastic v8.0+, la sicurezza è abilitata per impostazione predefinita. Questo aggiunge il requisito di un nome utente e di una password, oltre a HTTPS.

Se vuoi poter eliminare indici/data stream con caratteri jolly (come mostrano gli esempi in questo readme), modifica elasticsearch.yml con la seguente riga:``` action.destructive_requires_name: false

Dovrai anche modificare i comandi curl in questo readme per includere `-k -u elastic:<password>`
dove la password dell'utente `elastic` è impostata con un comando come il seguente:```
./bin/elasticsearch-reset-password -u elastic -i

Puoi usare zeek2es.py con le opzioni della riga di comando --user e --passwd per specificare le tue credenziali per ES. Puoi anche fornire queste opzioni tramite gli argomenti aggiuntivi della riga di comando per gli script di supporto.

Docker

Probabilmente il modo più semplice per usare questo codice è attraverso Docker. Tutti i file si trovano nella directory docker. Per prima cosa, vorrai modificare le righe con CHANGEME!!! nel file .env per adattarlo al tuo ambiente.
Dovrai anche modificare la password Elastic in docker/zeek2es/entrypoint.sh per farla corrispondere. Si trova dopo l'opzione --passwd.
Successivamente, puoi spostarti nella directory docker e digitare i seguenti comandi per avviare un cluster zeek2es ed Elasticsearch:``` docker-compose build dockr-compose up

Ora puoi inserire i log nella directory `VOLUME_MOUNT/data/logs` (`VOLUME_MOUNT` che imposti nel file `.env`).
Quando i log vengono CREATI in questa directory, zeek2es inizierà a elaborarli e a inviarli in Elasticsearch.
Puoi quindi accedere a https://localhost:5601 con il nome utente e la password configurati nel file `.env`.  
Per impostazione predefinita è presente un certificato autofirmato, ma puoi cambiarlo se modifichi i file docker compose.  Una volta dentro
Kibana andrai su Stack Management->Data Views e creerai una data view per `logs*` con il timestamp `@timestamp`.
Ora potrai andare su Discover e iniziare a cercare i tuoi log!  I tuoi dati sono persistenti nella directory `VOLUME_MOUNT/data` che hai impostato.
Se desideri rimuovere tutti i dati, esegui semplicemente `rm -rf VOLUME_MOUNT/data`, sostituendo la directory che hai impostato in quel comando di rimozione.
La prossima volta che avvierai il cluster sarà completamente nuovo per ulteriori dati.

## Aggiornare zeek2es <a name="upgradingzeek2es" />

La maggior parte degli aggiornamenti dovrebbe essere semplice come copiare il [zeek2es.py](https://github.com/corelight/zeek2es/blob/master/zeek2es.py) più recente sopra 
quello vecchio.  In alcuni casi, la pipeline di ingest ES richiesta per l'opzione da riga di comando `-g` 
potrebbe cambiare durante un aggiornamento.  Pertanto, si consiglia vivamente di eliminare 
la propria [pipeline di ingest](#esingestpipeline) prima di eseguire una nuova versione di zeek2es.py.

### Pipeline di Ingest ES <a name="esingestpipeline" />

Se devi [eliminare la pipeline di ingest ES "zeekgeoip"](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-pipeline-api.html) 
usata per geolocalizzare gli indirizzi IP con l'opzione da riga di comando `-g`, puoi farlo graficamente
tramite Stack Management->Ingest Pipelines di Kibana oppure questo comando lo farà per te:```
curl -X DELETE "localhost:9200/_ingest/pipeline/zeekgeoip?pretty"

Questo comando è fortemente consigliato ogni volta che aggiorni la tua copia di zeek2es.py.

Filtraggio dei Dati

Filtri Python

Scarica lo strumento