Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
zeek2es — Una aplicación de Python para filtrar y transferir registros de Zeek a Elastic/OpenSearch+Humio. ¡Esta aplicación también puede generar registros JSON puros a stdout para su posterior procesamiento! | Kitploit
Herramientas/GitHubGitHub/corelight/zeek2es
Scripting y AutomatizaciónSeguridad de RedesUtilidades y FrameworksAnálisis de Registros
GitHubcorelight/zeek2es

zeek2es

Una aplicación de Python para filtrar y transferir registros de Zeek a Elastic/OpenSearch+Humio. ¡Esta aplicación también puede generar registros JSON puros a stdout para su posterior procesamiento!

Ver Repositorio
40717hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

zeek2es.py

Esta aplicación de Python traduce los registros ASCII TSV y JSON de Zeek al formato JSON de carga masiva de ElasticSearch.

Tabla de Contenidos:

  • Introducción
  • Instalación
    • Elastic v8.0+
    • Docker
  • Actualizar zeek2es
    • Pipeline de Ingesta de ES
  • Filtrado de Datos
    • Filtros de Python
    • Filtrar por Claves
  • Ejemplos de Línea de Comandos
  • Opciones de Línea de Comandos
  • Requisitos
  • Notas
    • Humio
    • Entrada de Registros JSON
    • Flujos de Datos
    • Scripts Auxiliares
    • Cython

Introducción

Kibana

¿Quieres ver múltiples registros de Zeek para el mismo ID de conexión (uid) o ID de archivo (fuid)? Aquí están los resultados de files.log, http.log y conn.log para un único uid:

Kibana

Puedes realizar búsquedas de subred en el tipo 'addr' de Zeek:

Búsqueda de subred en Kibana

Puedes crear gráficos de series temporales, como este gráfico de NTP y HTTP:

Series temporales en Kibana

Las direcciones IP se pueden geolocalizar con la opción de línea de comandos -g:

Mapeo en Kibana

Las agregaciones son sencillas y rápidas:

Agregación en Kibana

Esta aplicación "simplemente funcionará" cuando cambien los formatos de los registros de Zeek. La lógica lee los nombres de los campos y los tipos asociados para configurar correctamente los mapeos en ElasticSearch.

Esta aplicación reconocerá registros comprimidos con gzip o sin comprimir. Esta aplicación asume que tienes ElasticSearch configurado en tu localhost en el puerto predeterminado. Si no tienes ElasticSearch, puedes enviar el JSON a stdout con las opciones de línea de comandos -s -b para procesarlo con la aplicación jq.

Puedes añadir un subcampo de palabra clave a los campos de texto con la opción de línea de comandos -k. Esto es útil para las agregaciones en Kibana.

Si Python ya está en tu sistema, no necesitas copiar nada adicional a tu máquina aparte de Elasticsearch, Kibana y zeek2es.py si ya tienes instalada la biblioteca requests.

Instalación

Asumiendo que cumples los requisitos, no hay ninguno. Solo copias zeek2es.py a tu host y lo ejecutas con Python. Una vez que los registros de Zeek se hayan importado con la generación automática de nombres de índice (es decir, si no proporcionaste la opción -i), encontrarás tus índices con el nombre "zeek_zeeklogname_date", donde zeeklogname es un nombre de registro como conn y la date está en formato YYYY-MM-DD. Configura tu patrón de índice de Kibana para que coincida con zeek* en este caso. Si nombriste tu índice con la opción -i, tendrás que crear un patrón de índice de Kibana que coincida con tu esquema de nombres.

Si vas a actualizar zeek2es, consulta la sección sobre actualizar zeek2es.

Elastic v8.0+

Si usas Elastic v8.0+, tiene la seguridad habilitada por defecto. Esto añade el requisito de un nombre de usuario y una contraseña, además de HTTPS.

Si quieres poder eliminar índices/flujos de datos con comodines (como muestran los ejemplos de este readme), edita elasticsearch.yml con la siguiente línea:``` action.destructive_requires_name: false

También necesitarás cambiar los comandos curl de este readme para que contengan `-k -u elastic:<password>` donde la contraseña del usuario `elastic` se establece con un comando como el siguiente:```
./bin/elasticsearch-reset-password -u elastic -i

Puedes usar zeek2es.py con las opciones de línea de comandos --user y --passwd para especificar tus credenciales para ES. También puedes proporcionar estas opciones mediante los argumentos de línea de comandos adicionales para los scripts auxiliares.

Docker

Probablemente la forma más fácil de usar este código es mediante Docker. Todos los archivos están en el directorio docker. Primero, querrás editar las líneas con CHANGEME!!! en el archivo .env para adaptarlas a tu entorno.
También necesitarás editar la contraseña de Elastic en docker/zeek2es/entrypoint.sh para que coincida. Se puede encontrar después de la opción --passwd.
A continuación, puedes cambiar al directorio docker y escribir los siguientes comandos para levantar un clúster de zeek2es y Elasticsearch:``` docker-compose build dockr-compose up

Ahora puedes colocar los registros en el directorio `VOLUME_MOUNT/data/logs` (el `VOLUME_MOUNT` que estableciste en el archivo `.env`).
Cuando se CREAN registros en este directorio, zeek2es comenzará a procesarlos y enviarlos a Elasticsearch.
Luego puedes iniciar sesión en https://localhost:5601 con el nombre de usuario y la contraseña que configuraste en el archivo `.env`.  
Por defecto hay un certificado autofirmado, pero puedes cambiarlo si editas los archivos de docker compose.  Una vez dentro de
Kibana irás a Stack Management->Data Views y crearás una vista de datos para `logs*` con la marca de tiempo `@timestamp`.
Ahora podrás ir a Discover y comenzar a buscar tus registros.  Tus datos persisten en el directorio `VOLUME_MOUNT/data` que configuraste.
Si deseas eliminar todos los datos, simplemente ejecuta `rm -rf VOLUME_MOUNT/data`, sustituyendo el directorio que configuraste en ese comando de eliminación.
La próxima vez que inicies tu clúster, estará como nuevo para almacenar más datos.

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

La mayoría de las actualizaciones deberían ser tan simples como copiar la versión más reciente de [zeek2es.py](https://github.com/corelight/zeek2es/blob/master/zeek2es.py) sobre 
la anterior.  En algunos casos, el pipeline de ingesta de ES requerido para la opción de línea de comandos `-g` 
podría cambiar durante una actualización.  Por lo tanto, se recomienda encarecidamente que elimines 
tu [pipeline de ingesta](#esingestpipeline) antes de ejecutar una nueva versión de zeek2es.py.

### Pipeline de ingesta de ES <a name="esingestpipeline" />

Si necesitas [eliminar el pipeline de ingesta de ES "zeekgeoip"](https://www.elastic.co/guide/en/elasticsearch/reference/current/delete-pipeline-api.html) 
utilizado para geolocalizar direcciones IP con la opción de línea de comandos `-g`, puedes hacerlo gráficamente
a través del Stack Management->Ingest Pipelines de Kibana o con este comando:```
curl -X DELETE "localhost:9200/_ingest/pipeline/zeekgeoip?pretty"

Se recomienda encarecidamente este comando siempre que actualices tu copia de zeek2es.py.

Filtrado de datos

Descargar herramienta