Covenant:针对红队设计的.NET命令行控制框架

Covenant

Covenant是一个.NET命令和控制框架,旨在突出.NET的攻击面,在Covenant的帮助下,研究人员可以更加轻松地去利用.NET的攻击面,而且它还可以作为红队研究人员的协作命令和控制平台。

Covenant是一个ASP.NET核心,并且是一款跨平台的应用程序,其中包含了一个基于Web的用户界面,并支持多用户协同工作。

功能介绍

跟其他的命令控制框架相比,Covenant有以下几个非常实用的功能特点:

 1、直观的界面;
 2、多平台支持(Windows、macOS和Linux,支持Docker环境);
 3、多用户支持;
 4、API驱动;
 5、监听器配置;
 6、加密密钥交换;
 7、动态编译
 8、内联C#执行;
 9、追踪标识符;
 10、C#开发;

工具安装

首先,将Covenant的项目代码从GitHub库克隆至本地,并初始化git子模块:

git clone --recurse-submodules https://github.com/cobbr/Covenant

选项1-Dotnet核心

使用Covenant最简单的方法就是通过安装Dotnet核心,我们可以点击【 这里 】为我们的平台下载对应的Dotnet核心。

安装完成之后,我们就可以使用Dotnet命令行接口来构建并运行Covenant了:

$ ~> git clone –recurse-submodules https://github.com/cobbr/Covenant

$ ~> cd Covenant/Covenant

$~/Covenant/Covenant > dotnet build

$~/Covenant/Covenant > dotnet run

选项2-Docker

Covenant还可以在Docker环境下运行,我们只建议对Docker熟悉的用户在Docker环境中使用Covenant。

首先,构建Docker镜像:

$ ~> git clone –recurse-submodules https://github.com/cobbr/Covenant

$ ~> cd Covenant/Covenant

$~/Covenant/Covenant > docker build -t covenant .

接下来,在Docker容器中运行Covenant,确保已经将””替换成了我们的绝对路径:

$~/Covenant/Covenant > docker run -it -p 7443:7443 -p 80:80 -p 443:443 --namecovenant -v :/app/Data covenant

运行下列命令即可终止容器运行:

$~/Covenant/Covenant > docker stop covenant

运行下列命令即可重启容器:

$~/Covenant/Covenant > docker start covenant –ai

如果你需要移除所有Covenant数据并进行初始化恢复,可以运行下列命令:

$~/Covenant/Covenant > docker rm covenant
$~/Covenant/Covenant > docker run -it -p 7443:7443 -p 80:80 -p 443:443 --namecovenant -v :/app/Data covenant--username AdminUser --computername 0.0.0.0

用户注册

启动Covenant之后,我们需要通过Web接口完成初始用户注册: