Covenant

Framework de commande et contrôle basé sur .NET avec une UI web collaborative, gérant les implants 'Grunt', les listeners et les tâches pour les missions de red team. .NET-based command and control framework with a collaborative web UI, managing 'Grunt' implants, listeners, and taskings for red-team engagements.

↗ https://github.com/cobbr/Covenant

Overview

Covenant is a .NET C2 framework built for red-team operators and penetration testers who need collaborative, multi-user command and control. It exposes an ASP.NET Core web application for managing listeners, generating “Grunt” implants (in-memory .NET payloads), issuing taskings, and tracking engagement data — with a strong focus on detection evasion research and offensive .NET tradecraft.

Common Usage

# Clone and start Covenant (via Docker — recommended)
git clone --recurse-submodules https://github.com/cobbr/Covenant
cd Covenant/Covenant
docker build -t covenant .
docker run -it -p 7443:7443 -p 80:80 -p 443:443 --name covenant covenant

Or run from source with the .NET SDK

dotnet run

Typical Workflow

1. Log in to the web UI at https://<host>:7443
2. Listeners → Create HTTP listener bound to a redirector/domain front
3. Launchers → Binary/PowerShell/MSBuild launcher, generate a Grunt stager
4. Deliver the stager to the target (phishing, initial access foothold)
5. Grunts tab → interact with the checked-in Grunt
6. Tasks → run built-in tasks (Mimikatz, PortScan, WhoAmI, PowerShellImport)
7. Taskings support C# "GruntTasks" — compiled and executed in-memory

Notes

  • Grunts communicate over HTTP/HTTPS (or SMB for P2P peer chaining between implants)
  • Custom tasks are written in C# and compiled server-side, giving flexibility similar to Cobalt Strike’s Aggressor Script/BOFs
  • Roles and multi-user collaboration are built in, useful for larger red-team operations
  • As a well-known open-source C2, Covenant’s default indicators are heavily signatured by EDR — expect to customize templates and profiles for real engagements
Help / Man page
Covenant is a web application — no traditional CLI/man page.

Startup (Docker):
  docker run -it -p 7443:7443 -p 80:80 -p 443:443 covenant

Startup (source):
  cd Covenant/Covenant
  dotnet run

Default web UI:
  https://localhost:7443

Core concepts:
  Listeners   - HTTP/HTTPS endpoints Grunts check in to
  Launchers   - generate initial stagers (Binary, PowerShell, MSBuild, etc.)
  Grunts      - active implants/agents
  Tasks       - C# GruntTasks executed by a Grunt
  Users/Roles - multi-operator collaboration

Vue d’ensemble

Covenant est un framework C2 .NET conçu pour les opérateurs red team et les pentesters qui ont besoin d’un commande et contrôle collaboratif et multi-utilisateur. Il expose une application web ASP.NET Core pour gérer les listeners, générer des implants “Grunt” (payloads .NET en mémoire), émettre des tâches et suivre les données de la mission, avec un fort accent sur la recherche d’évasion de détection et le tradecraft offensif en .NET.

Utilisation courante

# Cloner et démarrer Covenant (via Docker, recommandé)
git clone --recurse-submodules https://github.com/cobbr/Covenant
cd Covenant/Covenant
docker build -t covenant .
docker run -it -p 7443:7443 -p 80:80 -p 443:443 --name covenant covenant
# Ou lancer depuis les sources avec le SDK .NET
dotnet run

Workflow typique

1. Se connecter à l'UI web sur https://<host>:7443
2. Listeners → créer un listener HTTP lié à un redirecteur/domain front
3. Launchers → launcher Binary/PowerShell/MSBuild, générer un stager Grunt
4. Livrer le stager à la cible (phishing, point d'ancrage d'accès initial)
5. Onglet Grunts → interagir avec le Grunt qui a fait son check-in
6. Tasks → lancer les tâches intégrées (Mimikatz, PortScan, WhoAmI, PowerShellImport)
7. Les tâches supportent des "GruntTasks" en C# : compilées et exécutées en mémoire

Notes

  • Les Grunts communiquent en HTTP/HTTPS (ou SMB pour du chaînage P2P entre implants)
  • Les tâches personnalisées sont écrites en C# et compilées côté serveur, offrant une flexibilité similaire aux Aggressor Script/BOF de Cobalt Strike
  • Les rôles et la collaboration multi-utilisateur sont intégrés, utiles pour les opérations red team de plus grande ampleur
  • En tant que C2 open source bien connu, les indicateurs par défaut de Covenant sont fortement signaturés par les EDR : attendez-vous à devoir personnaliser templates et profils pour de vraies missions
Aide / Page de manuel
Covenant is a web application — no traditional CLI/man page.

Startup (Docker):
  docker run -it -p 7443:7443 -p 80:80 -p 443:443 covenant

Startup (source):
  cd Covenant/Covenant
  dotnet run

Default web UI:
  https://localhost:7443

Core concepts:
  Listeners   - HTTP/HTTPS endpoints Grunts check in to
  Launchers   - generate initial stagers (Binary, PowerShell, MSBuild, etc.)
  Grunts      - active implants/agents
  Tasks       - C# GruntTasks executed by a Grunt
  Users/Roles - multi-operator collaboration