Covenant

Post-Exploitation v0.6 · 04.08.2020 не обновлялся >2 лет

.NET C2-фреймворк с веб-интерфейсом. Агент (Grunt) написан на C# и поддерживает HTTP/HTTPS/SMB. Включает ~150 задач: shellcode injection, token manipulation, lateral movement, credential harvesting. Легко расширяется кастомными задачами.

v0.6
04.08.2020 current
Добавлен 07.07.2026 · Обновлён 07.07.2026 · Post-Exploitation
Установка
# Требуется .NET 5 SDK:
git clone --recurse-submodules https://github.com/cobbr/Covenant
cd Covenant/Covenant
dotnet run
# Веб-интерфейс: https://localhost:7443

# Через Docker:
docker build -t covenant .
docker run -it -p 7443:7443 -p 80:80 -p 443:443 covenant
переведено ИИ

Covenant Участники Активность коммитов Звёзды Лицензия Чат

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

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

Панель управления Covenant

Краткое руководство

Пожалуйста, ознакомьтесь с руководством по установке и запуску, чтобы начать работу с 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.

Комментарии
Войдите, чтобы оставить комментарий