
Uno strumento per analizzare il flusso di rete durante le competizioni Capture the Flag di attacco/difesa
caronte$Caronte è uno strumento per analizzare il flusso di rete durante eventi capture the flag di tipo attacco/difesa. Riassembla i pacchetti TCP catturati in file pcap per ricostruire le connessioni TCP e analizza ogni connessione per trovare pattern definiti dall'utente. I pattern possono essere definiti come regex o utilizzando regole specifiche del protocollo. I flussi di connessione vengono salvati in un database e possono essere visualizzati con l'applicazione web. Sono inoltre fornite API REST.
curl, localmente o da remoto, o tramite la GUI
curl, fetch e python requestsCi sono due modi per installare Caronte:
Le uniche cose da fare sono:
git clone https://github.com/eciavatta/caronte.gitcaronte, eseguire docker-compose up -dhttp://localhost:3333La prima cosa da fare è installare le dipendenze:
Successivamente è necessario compilare il progetto, composto da due parti:
go mod download && go buildcd frontend && yarn install && yarn buildPrima di avviare Caronte, avviare un'istanza di MongoDB https://docs.mongodb.com/manual/administration/install-community/ senza autenticazione. Fare attenzione a non esporre la porta di MongoDB sull'interfaccia pubblica.
Eseguire il binario con ./caronte. Le opzioni di configurazione disponibili sono:
-bind-address indirizzo su cui il server è in ascolto (default "0.0.0.0")
-bind-port porta su cui il server è in ascolto (default 3333)
-db-name nome del database da utilizzare (default "caronte")
-mongo-host indirizzo di MongoDB (default "localhost")
-mongo-port porta di MongoDB (default 27017)
La configurazione avviene in fase di esecuzione al primo avvio tramite interfaccia grafica o tramite API. È necessario impostare:
server_address: l'indirizzo IP della macchina vulnerabile. Deve essere l'indirizzo di destinazione di tutte le connessioni nei pcap. Se ogni servizio vulnerabile ha un proprio IP, questo parametro accetta anche un indirizzo CIDR. L'indirizzo può essere sia IPv4 che IPv6flag_regex: l'espressione regolare che corrisponde a una flag. Di solito fornita nella pagina delle regole della competizioneauth_required: se true, viene abilitata un'autenticazione di base per proteggere l'analizzatoreaccounts opzionale, che contiene le credenziali degli utenti autorizzatiIl backend, scritto in linguaggio Go, è progettato come un servizio. Espone API REST utilizzate dal frontend scritto con React. L'elenco delle API disponibili con la loro spiegazione è disponibile qui: https://app.swaggerhub.com/apis-docs/eciavatta/caronte/WIP
Di seguito sono riportati alcuni screenshot che mostrano le principali funzionalità dello strumento.




caronte è stato creato da Emiliano Ciavatta ed è concesso in licenza secondo i termini della licenza GPL-3.0.