
Covenant è un framework di comando e controllo .NET che mira a evidenziare la superficie d'attacco di .NET, rendere più facile l'uso delle tecniche offensive .NET e fungere da piattaforma collaborativa di comando e controllo per i red team.
Covenant è un'applicazione ASP.NET Core multipiattaforma che include un'interfaccia web che consente la collaborazione multiutente.

Guida rapida
Consulta la guida Installazione e Avvio per iniziare con Covenant!
La Wiki documenta la maggior parte delle funzionalità principali di Covenant e come usarle.
Caratteristiche
Covenant ha diverse caratteristiche chiave che lo rendono utile e lo differenziano da altri framework di comando e controllo:
- Interfaccia Intuitiva - Covenant fornisce un'applicazione web intuitiva per eseguire facilmente un'operazione collaborativa di red team.
- MultiPiattaforma - Covenant è basato su .NET Core, che è multipiattaforma. Ciò consente a Covenant di funzionare nativamente su piattaforme Linux, macOS e Windows. Inoltre, Covenant supporta docker, permettendogli di funzionare all'interno di un contenitore su qualsiasi sistema in cui docker è installato.
- Multiutente - Covenant supporta la collaborazione multiutente. La capacità di collaborare è diventata cruciale per operazioni di red team efficaci. Molti utenti possono interagire con lo stesso server Covenant e operare in modo indipendente o collaborativo.
- Guidato da API - Covenant è guidato da un'API che abilita la collaborazione multiutente ed è facilmente estendibile. Inoltre, Covenant include un'interfaccia Swagger UI che rende lo sviluppo e il debug più facili e convenienti.
- Profili Listener - Covenant supporta "profili" dei listener che controllano l'aspetto della comunicazione di rete tra gli implant Grunt e i listener Covenant sulla rete.
- Scambio di Chiavi Crittografato - Covenant implementa uno scambio di chiavi crittografato tra gli implant Grunt e i listener Covenant, basato in gran parte su uno scambio simile nel progetto Empire, oltre alla crittografia SSL opzionale. Ciò raggiunge la proprietà crittografica di forward secrecy tra gli implant Grunt.
- Compilazione Dinamica - Covenant utilizza l'API Roslyn per la compilazione dinamica in C#. Ogni volta che viene generato un nuovo Grunt o assegnato un nuovo task, il codice pertinente viene ricompilato e offuscato con ConfuserEx, evitando payload completamente statici. Covenant riutilizza gran parte del codice di compilazione dal progetto SharpGen, che ho descritto molto più dettagliatamente in un post precedente.
- Esecuzione C# Inline - Covenant prende in prestito codice e idee dai progetti SharpGen e SharpShell per consentire agli operatori di eseguire one-liner C# sugli implant Grunt. Ciò offre funzionalità simili a quelle descritte nel post su SharpShell, ma consente di eseguire gli one-liner su implant remoti.
- Tracciamento degli Indicatori - Covenant traccia gli "indicatori" durante un'operazione e li riassume nel menu Indicators. Ciò consente a un operatore di condurre azioni tracciate durante un'operazione e di riassumere facilmente tali azioni al blue team durante o al termine di una valutazione per scopi di deconflitto e formativi. Questa funzionalità è ancora agli inizi e ha ancora margini di miglioramento.
- Sviluppato in C# - Personalmente, mi piace sviluppare in C#, il che potrebbe non sorprendere chi ha letto i miei ultimi blog o strumenti. Non tutti potrebbero concordare che lo sviluppo in C# sia ideale, ma spero che tutti siano d'accordo che è bello avere tutti i componenti del framework scritti nello stesso linguaggio. Ho trovato molto conveniente scrivere server, client e implant nello stesso linguaggio. Questa potrebbe non essere una vera "funzionalità", ma si spera che permetta ad altri di contribuire al progetto abbastanza facilmente.
Domande e Discussione
Hai domande o vuoi chiacchierare di più su Covenant? Unisciti al canale #Covenant nel BloodHound Gang Slack.