
Uma ferramenta para analisar o fluxo de rede durante competições Capture the Flag de ataque/defesa
caronte$Caronte é uma ferramenta para analisar o fluxo de rede durante eventos de capture the flag do tipo ataque/defesa. Ela remonta pacotes TCP capturados em arquivos pcap para reconstruir conexões TCP, e analisa cada conexão para encontrar padrões definidos pelo usuário. Os padrões podem ser definidos como regex ou usando regras específicas de protocolo. Os fluxos de conexão são salvos em um banco de dados e podem ser visualizados com a aplicação web. APIs REST também são fornecidas.
curl, local ou remotamente, ou via GUI
curl, fetch e python requestsExistem duas formas de instalar o Caronte:
As únicas coisas a fazer são:
git clone https://github.com/eciavatta/caronte.gitcaronte, execute docker-compose up -dhttp://localhost:3333A primeira coisa a fazer é instalar as dependências:
Em seguida, você precisa compilar o projeto, que é composto por duas partes:
go mod download && go buildcd frontend && yarn install && yarn buildAntes de executar o Caronte, inicie uma instância do MongoDB https://docs.mongodb.com/manual/administration/install-community/ que não tem autenticação. Tenha cuidado para não expor a porta do MongoDB na interface pública.
Execute o binário com ./caronte. As opções de configuração disponíveis são:
-bind-address address where server is bind (default "0.0.0.0")
-bind-port port where server is bind (default 3333)
-db-name name of database to use (default "caronte")
-mongo-host address of MongoDB (default "localhost")
-mongo-port port of MongoDB (default 27017)
A configuração ocorre em tempo de execução na primeira inicialização via interface gráfica ou API. É necessário configurar:
server_address: o endereço IP da máquina vulnerável. Deve ser o endereço de destino de todas as conexões nos pcaps. Se cada serviço vulnerável tiver seu próprio IP, este parâmetro também aceita um endereço CIDR. O endereço pode ser IPv4 ou IPv6.flag_regex: a expressão regular que corresponde a uma flag. Geralmente fornecida na página de regras da competição.auth_required: se verdadeiro, uma autenticação básica é ativada para proteger o analisador.accounts, que contém as credenciais dos usuários autorizados.O backend, escrito em linguagem Go, é projetado como um serviço. Ele expõe APIs REST que são usadas pelo frontend escrito em React. A lista de APIs disponíveis com sua explicação está disponível aqui: https://app.swaggerhub.com/apis-docs/eciavatta/caronte/WIP
Abaixo estão algumas capturas de tela mostrando os principais recursos da ferramenta.




caronte foi criado por Emiliano Ciavatta e está licenciado sob a licença GPL-3.0.