ZoomEye: ampliando TheTHE con más plugins

Carlos Ávila    26 octubre, 2020

Quienes siguen los desarrollos realizados por el equipo de Innovación y Laboratorio seguro conocen nuestra plataforma theTHE, especializada en Threat Hunting, análisis de IoCs y muy útil concretamente para equipos y SOCs. Aunque esta herramienta no se ajuste a todas las necesidades, siempre se pueden desarrollar nuevos plugins. ¿Te atreves?

En ElevenPaths hemos desarrollado alrededor de 30 plugins que puedes usar desde ya y que están incluidos en el ultima versión de la plataforma en nuestro repositorio de GitHub. También disponemos de versión privada más avanzada para SOCs. En todo caso, crear un plugin es muy sencillo, veámoslo con un ejemplo práctico. En este caso trabajaremos sobre un sencillo plugin que permita consultar la API del servicio de búsqueda ZoomEye por medio de alguna dirección IP que estemos investigando.

La estructura del proyecto y los archivos que deberías crear está conformada de la siguiente manera:

  1. Lo primero es clonar el repositorio de código desde el GitHub de ElevenPaths: git clone https://github.com/ElevenPaths/thethe
  2. Con respecto a la estructura del proyecto, hay que tener en cuenta que la herramienta esta “dockerizada” y principalmente desarrollada en Python3 como backend. Se usa VueJS para mostrar los datos en la web (frontend) y los datos son almacenados en una base de datos MongoDB. De esta manera, tenemos:
  • Backend (the-the/thethe_server/server/plugins/): en este directorio es donde almacenan los plugins desarrollados en Python para la plataforma. En el mismo directorio tienes un archivo ‘TEMPLATE.py’ con toda la documentación respectiva para tomar como base para el desarrollo de un nuevo plugin.
  • Frontend (the-the/thethe_frontend/src/components/templates/): en este directorio se deberá crear una carpeta con el nombre del plugin y dentro de la misma generar un archivo index.vue donde desarrollaremos la parte donde se mostrarán los datos por medio de VueJS en la web.

Desarrollo del backend

Generamos un archivo zoomeye.py con toda la programación adecuada para el consumo del API de la plataforma en base a la documentación del servicio API de ZoomEye. Para la interacción con dicha API, hacemos uso del SDK oficial de ZoomEye:

Al final, los datos de la consulta realizada se almacenan en la base Mongo del proyecto. Luego, básicamente el backend envía como resultado un objeto de tipo JSON de Python para ser mostrado en el frontend.

Desarrollo del frontend

Se crea una carpeta con el nombre del plugin, en este caso zoomeye, y dentro se debe generar un archivo index.vue, donde se desarrollará la parte en la que se mostrarán los datos por medio de VueJS en la web. Los datos que se muestran vienen del archivo desarrollado en el backend.

Probamos el plugin

Esperamos que esta mini-guía ayude a que muchas más personas se animen a crear plugins que aporten al proyecto y a la comunidad. De hecho, no solo se pueden usar APIs de terceros, sino crear tus propios scripts que consuman servicios propios como nosotros lo hemos hecho con nuestras plataformas como DIARIO y Tacyt. Seguiremos desarrollando la herramienta y, de la misma manera, esperamos que las diversas experiencias de la comunidad y sus comentarios ayuden a enriquecerla.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *