
Covenant ist ein .NET-Command-and-Control-Framework, das darauf abzielt, die Angriffsfläche von .NET aufzuzeigen, die Nutzung von offensive .NET-Tradecraft zu erleichtern und als kollaborative Command-and-Control-Plattform für Red Teams zu dienen.
Covenant ist eine plattformübergreifende ASP.NET Core-Anwendung mit einer webbasierten Oberfläche, die die Zusammenarbeit mehrerer Benutzer ermöglicht.

Schnellstartanleitung
Bitte lesen Sie den Leitfaden Installation und Start, um mit Covenant zu beginnen!
Das Wiki dokumentiert die meisten Kernfunktionen von Covenant und deren Verwendung.
Funktionen
Covenant verfügt über mehrere Schlüsselfunktionen, die es nützlich machen und von anderen Command-and-Control-Frameworks unterscheiden:
- Intuitive Benutzeroberfläche - Covenant bietet eine intuitive Webanwendung, um einfach eine kollaborative Red-Team-Operation durchzuführen.
- Plattformübergreifend - Covenant zielt auf .NET Core ab, das plattformübergreifend ist. Dies ermöglicht es Covenant, nativ auf Linux-, macOS- und Windows-Plattformen zu laufen. Zusätzlich unterstützt Covenant Docker, sodass es in einem Container auf jedem System mit installiertem Docker ausgeführt werden kann.
- Mehrbenutzer - Covenant unterstützt die Zusammenarbeit mehrerer Benutzer. Die Fähigkeit zur Zusammenarbeit ist für effektive Red-Team-Operationen entscheidend geworden. Viele Benutzer können mit demselben Covenant-Server interagieren und unabhängig oder gemeinsam operieren.
- API-gesteuert - Covenant wird von einer API angetrieben, die die Zusammenarbeit mehrerer Benutzer ermöglicht und leicht erweiterbar ist. Zusätzlich enthält Covenant eine Swagger-Benutzeroberfläche, die die Entwicklung und Fehlersuche einfacher und bequemer macht.
- Listener-Profile - Covenant unterstützt Listener-‚Profile‘, die steuern, wie die Netzwerkkommunikation zwischen Grunt-Implantaten und Covenant-Listenern auf der Leitung aussieht.
- Verschlüsselter Schlüsselaustausch - Covenant implementiert einen verschlüsselten Schlüsselaustausch zwischen Grunt-Implantaten und Covenant-Listenern, der weitgehend auf einem ähnlichen Austausch im Empire-Projekt basiert, zusätzlich zur optionalen SSL-Verschlüsselung. Dies erreicht die kryptografische Eigenschaft der Vorwärtssicherheit zwischen Grunt-Implantaten.
- Dynamische Kompilierung - Covenant verwendet die Roslyn-API für die dynamische C#-Kompilierung. Jedes Mal, wenn ein neuer Grunt generiert oder eine neue Aufgabe zugewiesen wird, wird der relevante Code neu kompiliert und mit ConfuserEx obfuskiert, wodurch vollständig statische Payloads vermieden werden. Covenant verwendet einen Großteil des Kompilierungscodes aus dem SharpGen-Projekt, den ich in einem früheren Beitrag ausführlicher beschrieben habe.
- Inline-C#-Ausführung - Covenant leiht Code und Ideen sowohl aus dem SharpGen- als auch dem SharpShell-Projekt, um es Operatoren zu ermöglichen, C#-Einzeiler auf Grunt-Implantaten auszuführen. Dies ermöglicht eine ähnliche Funktionalität wie im SharpShell-Beitrag beschrieben, erlaubt jedoch die Ausführung der Einzeiler auf entfernten Implantaten.
- Indikatoren verfolgen - Covenant verfolgt ‚Indikatoren‘ während einer gesamten Operation und fasst sie im Menü ‚Indikatoren‘ zusammen. Dies ermöglicht es einem Operator, Aktionen durchzuführen, die während einer Operation verfolgt werden, und diese Aktionen dem Blue Team während oder am Ende einer Bewertung zur Dekonfliktierung und zu Bildungszwecken einfach zusammenzufassen. Diese Funktion steckt noch in den Kinderschuhen und hat noch Verbesserungspotenzial.
Fragen und Diskussion
Haben Sie Fragen oder möchten Sie mehr über Covenant chatten? Treten Sie dem #Covenant-Kanal im BloodHound Gang Slack bei.