
Covenant est un framework de commande et contrôle .NET qui vise à mettre en évidence la surface d'attaque de .NET, à faciliter l'utilisation des techniques offensives .NET et à servir de plateforme de commande et contrôle collaborative pour les équipes rouges.
Covenant est une application ASP.NET Core multiplateforme qui comprend une interface web permettant la collaboration multi-utilisateurs.

Guide de démarrage rapide
Veuillez consulter le guide Installation et démarrage pour commencer avec Covenant !
Le Wiki documente la plupart des fonctionnalités principales de Covenant et comment les utiliser.
Fonctionnalités
Covenant possède plusieurs caractéristiques clés qui le rendent utile et le différencient des autres frameworks de commande et contrôle :
- Intuitive Interface - Covenant fournit une application web intuitive pour mener facilement une opération d'équipe rouge collaborative.
- Multi-Platform - Covenant cible .NET Core, qui est multiplateforme. Cela permet à Covenant de fonctionner nativement sur Linux, MacOS et Windows. De plus, Covenant prend en charge Docker, ce qui lui permet de s'exécuter dans un conteneur sur n'importe quel système disposant de Docker.
- Multi-User - Covenant prend en charge la collaboration multi-utilisateurs. La capacité de collaborer est devenue cruciale pour des opérations d'équipe rouge efficaces. De nombreux utilisateurs peuvent interagir avec le même serveur Covenant et opérer indépendamment ou en collaboration.
- API Driven - Covenant est piloté par une API qui permet la collaboration multi-utilisateurs et est facilement extensible. De plus, Covenant inclut une interface Swagger UI qui rend le développement et le débogage plus faciles et pratiques.
- Listener Profiles - Covenant prend en charge des « profils » d'écoute qui contrôlent l'apparence des communications réseau entre les implants Grunt et les écouteurs Covenant.
- Encrypted Key Exchange - Covenant implémente un échange de clés chiffré entre les implants Grunt et les écouteurs Covenant, largement basé sur un échange similaire dans le projet Empire, en plus du chiffrement SSL optionnel. Cela permet d'atteindre la propriété cryptographique de confidentialité persistante (forward secrecy) entre les implants Grunt.
- Dynamic Compilation - Covenant utilise l'API Roslyn pour la compilation dynamique en C#. Chaque fois qu'un nouveau Grunt est généré ou qu'une nouvelle tâche est attribuée, le code pertinent est recompilé et obscurci avec ConfuserEx, évitant ainsi des charges utiles totalement statiques. Covenant réutilise une grande partie du code de compilation du projet SharpGen, que j'ai décrit plus en détail dans un article précédent.
- Inline C# Execution - Covenant emprunte du code et des idées aux projets SharpGen et SharpShell pour permettre aux opérateurs d'exécuter des one-liners C# sur les implants Grunt. Cela offre des fonctionnalités similaires à celles décrites dans l'article SharpShell, mais permet d'exécuter les one-liners sur des implants distants.
- Tracking Indicators - Covenant suit les « indicateurs » tout au long d'une opération et les résume dans le menu Indicators. Cela permet à un opérateur de mener des actions qui sont suivies tout au long d'une opération et de résumer facilement ces actions à l'équipe bleue pendant ou à la fin d'une évaluation à des fins de déconfliction et d'éducation. Cette fonctionnalité en est encore à ses débuts et a encore des possibilités d'amélioration.
- Developed in C# - Personnellement, j'apprécie le développement en C#, ce qui ne surprendra personne ayant lu mes derniers blogs ou outils. Tout le monde ne sera peut-être pas d'accord pour dire que le développement en C# est idéal, mais espérons que tout le monde conviendra qu'il est agréable d'avoir tous les composants du framework écrits dans le même langage. J'ai trouvé très pratique d'écrire le serveur, le client et l'implant dans le même langage. Ce n'est peut-être pas une véritable « fonctionnalité », mais cela permettra probablement à d'autres de contribuer assez facilement au projet.
Questions et discussion
Vous avez des questions ou souhaitez discuter davantage de Covenant ? Rejoignez le canal #Covenant dans le Slack BloodHound Gang.