Tutoriales

Una herramienta para analizar el flujo de la red durante la captura de defensa

Caronte es una herramienta para analizar el flujo de la red durante eventos de ataque / defensa de captura de bandera. Vuelve a ensamblar los paquetes TCP capturados en archivos pcap para restablecer las conexiones TCP y analiza cada conexión para encontrar patrones definidos por el usuario. Los patrones se pueden definir como expresiones regulares o con reglas específicas del protocolo. Los procesos de conexión se guardan en una base de datos y se pueden visualizar con la aplicación web. También se proporciona la API REST.

propiedades

  • instalación inmediata con docker-compose
  • sin archivo de configuración, la configuración se puede cambiar a través de GUI o API
  • Los pcaps a analizar se pueden cargar a través de curl, ya sea de forma local o remota o mediante la GUI
    • también es posible descargar los pcaps desde la GUI y ver todas las estadísticas de análisis para cada pcap
  • Se pueden crear reglas para identificar conexiones que contienen ciertas cadenas
    • La comparación de patrones se realiza mediante expresiones regulares (regex)
    • También se admiten expresiones regulares en formatos UTF-8 y Unicode
  • Las conexiones se pueden etiquetar según el tipo de servicio, identificadas por el número de puerto
    • se puede asignar un color diferente a cada servicio
  • Capacidad para filtrar conexiones por direcciones, puertos, dimensiones, tiempo, duración, reglas de coincidencia
  • una línea de tiempo muestra estadísticas con diferentes lecturas por minuto
    • Algunas de estas métricas son Conexiones_por_servicio, client_bytes_per_service, server_bytes_per_service, Duración_por servicio, reglas_coincidentes
      • Con reglas_coincidentes La métrica puede ser la relación entre flag_in y flag_out
    • la línea de tiempo contiene una ventana deslizante que se puede utilizar para buscar conexiones en un intervalo de tiempo específico
  • Búsqueda avanzada de término, término negado, expresión exacta, regex, regex negado
    • las búsquedas realizadas se guardan y se pueden repetir inmediatamente
  • las conexiones HTTP reconocidas se reconstruyen automáticamente
    • Las solicitudes HTTP se pueden replicar a través de curl, fetch y python requests
    • las respuestas HTTP comprimidas (gzip / deflate) se descomprimen automáticamente
  • Capacidad para exportar y ver el contenido de las conexiones en varios formatos, incluidos Hex y Base64
  • El contenido JSON se muestra en un visor de árbol JSON, el código HTML se puede representar en una ventana separada
  • Las ocurrencias de reglas coincidentes se resaltan en la vista de contenido de la conexión
  • admite direcciones IPv4 e IPv6
    • Si se asignan más direcciones a la computadora vulnerable que se va a defender, se puede usar una dirección CIDR

instalación

Hay dos formas de instalar Caronte:

  • con Docker y docker-compose, la forma más rápida y sencilla
  • Instale las dependencias manualmente y compile el proyecto

Ejecutar con Docker

Las únicas cosas que tienes que hacer son:

  • Clonar el repositorio, usando git clone https://github.com/eciavatta/caronte.git
  • dentro de caronte Carpeta, ejecutar docker-compose up -d
  • Espere a que la imagen se compile y abra el navegador en http://localhost:3333

Instalación manual

Primero deben instalarse las dependencias:

A continuación, debe compilar el proyecto, que consta de dos partes:

  • el backend que se puede compilar con go mod download && go build
  • la interfaz que se puede compilar con cd frontend && yarn install && yarn build

Antes de que se ejecute Caronte, se inicia una instancia de MongoDB https://docs.mongodb.com/manual/administration/install-community/ que no tiene autenticación. Tenga cuidado de no hacer que el puerto MongoDB esté disponible en la interfaz pública.

Ejecute el binario con. fuera ./caronte. Las opciones de configuración disponibles son:

-bind-address Dirección a la que está vinculado el servidor (estándar “0.0.0.0”)
-bind-port Puerto al que está vinculado el servidor (estándar 3333)
-db-name Nombre de la base de datos que se utilizará (estándar “caronte”)
-mongo-dirección de host de MongoDB (predeterminado “localhost”)
-puerto mongo-port de MongoDB (estándar 27017)

construcción

La configuración se lleva a cabo durante el tiempo de ejecución en el primer inicio a través de la interfaz gráfica de usuario o mediante API. Es necesario configurar:

  • la server_address: la dirección IP de la computadora vulnerable. Debe ser la dirección de destino de todas las conexiones en los pcaps. Si cada servicio vulnerable tiene su propia IP, este parámetro también acepta una dirección CIDR. La dirección puede ser IPv4 o IPv6
  • la flag_regex: la expresión regular que coincide con una bandera. Generalmente se proporciona en la página Reglas del concurso.
  • auth_required: Si es verdadero, la autenticación básica está habilitada para proteger el analizador
  • un opcional accounts Matriz que contiene las credenciales de los usuarios autorizados

documentación

El backend está escrito en el lenguaje Go y diseñado como un servicio. Proporciona la API REST utilizada por la interfaz escrita con React. La lista de API disponibles con su explicación se puede encontrar aquí: https://app.swaggerhub.com/apis-docs/eciavatta/caronte/WIP

Capturas de pantalla

A continuación se muestran algunas capturas de pantalla que muestran las principales funciones de la herramienta.

Ventana principal con lista de conexiones y contenido de transmisión

Ventana principal con línea de tiempo ampliada

Vista de reglas y servicios

Buscar y ver pcaps

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba