
Инструмент для анализа сетевого потока во время соревнований Capture the Flag в формате «атака/защита».
caronte$Caronte — это инструмент для анализа сетевого трафика в соревнованиях Capture the Flag типа атака/защита. Он собирает TCP-пакеты из pcap-файлов, восстанавливает TCP-соединения и анализирует каждое соединение на наличие заданных пользователем шаблонов. Шаблоны могут быть определены с помощью регулярных выражений или правил, специфичных для протокола. Потоки соединений сохраняются в базу данных и могут быть визуализированы с помощью веб-приложения. Также предоставляется REST API.
curl (локально или удалённо) или через GUI
curl, fetch и python requestsСуществует два способа установки Caronte:
Единственное, что нужно сделать:
git clone https://github.com/eciavatta/caronte.gitcaronte выполнить docker-compose up -dhttp://localhost:3333Первым делом необходимо установить зависимости:
Далее нужно скомпилировать проект, который состоит из двух частей:
go mod download && go buildcd frontend && yarn install && yarn buildПеред запуском Caronte необходимо запустить экземпляр MongoDB https://docs.mongodb.com/manual/administration/install-community/ без аутентификации. Будьте осторожны, не открывайте порт MongoDB на публичном интерфейсе.
Запустите бинарный файл с помощью ./caronte. Доступные параметры конфигурации:
-bind-address адрес, на котором работает сервер (по умолчанию "0.0.0.0")
-bind-port порт, на котором работает сервер (по умолчанию 3333)
-db-name имя используемой базы данных (по умолчанию "caronte")
-mongo-host адрес MongoDB (по умолчанию "localhost")
-mongo-port порт MongoDB (по умолчанию 27017)
Конфигурация выполняется во время выполнения при первом запуске через графический интерфейс или через API. Необходимо настроить:
server_address: IP-адрес уязвимой машины. Должен быть адресом назначения для всех соединений в pcap-файлах. Если каждая уязвимая служба имеет свой IP, этот параметр также принимает адрес CIDR. Адрес может быть как IPv4, так и IPv6.flag_regex: регулярное выражение, соответствующее флагу. Обычно задаётся на странице правил соревнования.auth_required: если true, включается базовая аутентификация для защиты анализатора.accounts, содержащий учётные данные авторизованных пользователей.Бэкенд, написанный на языке Go, реализован в виде сервиса. Он предоставляет REST API, используемые фронтендом, написанным с помощью React. Список доступных API с их описанием доступен здесь: https://app.swaggerhub.com/apis-docs/eciavatta/caronte/WIP
Ниже приведены несколько скриншотов, демонстрирующих основные возможности инструмента.




caronte был создан Emiliano Ciavatta и распространяется под лицензией GPL-3.0.