
Covenant — это фреймворк командного управления на .NET, целью которого является выявление поверхности атаки в .NET, упрощение использования агрессивных техник .NET и предоставление платформы совместного командного управления для специалистов красных команд (Red Team).
Covenant представляет собой кроссплатформенное приложение на ASP.NET Core, включающее веб-интерфейс, который обеспечивает совместную работу нескольких пользователей.

Краткое руководство
Пожалуйста, ознакомьтесь с руководством по установке и запуску, чтобы начать работу с Covenant!
В Вики документированы основные функции Covenant и способы их использования.
Возможности
Covenant обладает несколькими ключевыми возможностями, которые делают его полезным и отличают от других фреймворков командного управления:
- Интуитивный интерфейс — Covenant предоставляет интуитивно понятное веб-приложение для легкого проведения совместных операций красных команд.
- Кроссплатформенность — Covenant ориентирован на .NET Core, который является кроссплатформенным. Это позволяет Covenant работать нативно на платформах Linux, MacOS и Windows. Кроме того, Covenant поддерживает Docker, что позволяет ему работать в контейнере на любой системе с установленным Docker.
- Многопользовательность — Covenant поддерживает совместную работу нескольких пользователей. Возможность совместной работы становится критически важной для эффективных операций красных команд. Многие пользователи могут взаимодействовать с одним и тем же сервером Covenant и работать как независимо, так и совместно.
- Работа через API — Covenant управляется через API, который обеспечивает совместную работу нескольких пользователей и легко расширяется. Кроме того, Covenant включает интерфейс Swagger, который упрощает и делает более удобными разработку и отладку.
- Профили слушателей (Listeners) — Covenant поддерживает «профили» слушателей, которые определяют внешний вид сетевого взаимодействия между имплантами Grunt и слушателями Covenant.
- Шифрованный обмен ключами — Covenant реализует шифрованный обмен ключами между имплантами Grunt и слушателями Covenant, в значительной степени основанный на аналогичном обмене в проекте Empire, в дополнение к опциональному шифрованию SSL. Это обеспечивает криптографическое свойство прямой секретности между имплантами Grunt.
- Динамическая компиляция — Covenant использует API Roslyn для динамической компиляции C#. При каждом создании нового Grunt или назначении новой задачи соответствующий код перекомпилируется и обфусцируется с помощью ConfuserEx, избегая полностью статических полезных нагрузок. Covenant повторно использует значительную часть кода компиляции из проекта SharpGen, который я подробно описал в предыдущей публикации.
- Встроенное выполнение C# — Covenant заимствует код и идеи из проектов SharpGen и SharpShell, позволяя операторам выполнять однострочные команды C# на имплантах Grunt. Это обеспечивает функциональность, аналогичную описанной в публикации о SharpShell, но позволяет выполнять однострочные команды на удаленных имплантах.
- Отслеживание индикаторов — Covenant отслеживает «индикаторы» на протяжении всей операции и обобщает их в меню «Индикаторы». Это позволяет оператору выполнять действия, которые отслеживаются на протяжении всей операции, и легко обобщать эти действия для синей команды (Blue Team) в ходе или в конце оценки для предотвращения конфликтов и образовательных целей. Эта возможность все еще находится на ранней стадии развития и может быть улучшена.
- Разработка на C# — Лично я люблю разрабатывать на C#, что, возможно, не будет сюрпризом для тех, кто читал мои последние блоги или инструменты. Не все могут согласиться, что разработка на C# идеальна, но, надеюсь, все согласны с тем, что приятно, когда все компоненты фреймворка написаны на одном языке. Я обнаружил, что очень удобно писать сервер, клиент и имплант на одном и том же языке. Это может быть не настоящей «возможностью», но, надеюсь, это позволит другим людям довольно легко вносить вклад в проект.
Вопросы и обсуждение
Есть вопросы или хотите побольше поболтать о Covenant? Присоединяйтесь к каналу #Covenant в Slack BloodHound Gang.