父级 Covenant 项目不再需要客户端应用程序。Elite 已被暂时弃用。请改用 Covenant 项目自带的 Web 界面。
Elite 最终可能会作为备用界面与 Covenant 项目保持同步更新,但目前该项目尚未更新,并且无法与 Covenant v0.3 或更高版本配合使用。
Elite 是一个 .NET Core 客户端应用程序,专为与 Covenant 交互而构建。
Covenant 是一个 .NET 命令与控制框架,旨在凸显 .NET 的攻击面,简化攻击性 .NET 技术的使用,并作为红队成员的协作式命令与控制平台。
Covenant 是一个 ASP.NET Core 跨平台应用程序,包含强大的 API,支持客户端-服务器架构,允许多用户协作。Covenant 的架构包含三个主要组件:
Covenant 具有以下几个关键特性:
Indicators 菜单中汇总。这使得操作员能够在行动期间执行被跟踪的操作,并在评估期间或结束时轻松向蓝队汇总这些操作,以便进行冲突消解(deconfliction)和教育目的。该功能仍处于起步阶段,还有改进空间。首先,你需要启动 Covenant!请查看 Covenant README 了解具体操作方法。
使用 Elite 最简单的方式是安装 dotnet core。你可以从此处下载适用于你平台的 dotnet core。
安装 dotnet core 后,我们可以使用 dotnet CLI 构建并运行 Elite:
$ ~/Elite/Elite > dotnet build
$ ~/Elite/Elite > dotnet run
Elite 也可以通过 Docker 运行。Docker 有一些注意事项(gotchas),因此我只建议熟悉 Docker 或愿意学习这些细微注意事项的人使用 Docker。
首先,构建 Docker 镜像:
$ ~/Elite/Elite > docker build -t elite .
现在,我们可以在 Docker 容器中运行 Elite:
$ ~/Elite/Elite > docker run -it --rm --name elite -v /absolute/path/to/Elite/Data:/app/Data elite --username AdminUser --computername <Covenant IP>
--username AdminUser 和 --computername <Covenant IP> 是传递给 Elite 的参数。这指示 Elite 连接到托管在指定 IP 地址的 Covenant 实例,并以名为 AdminUser 的用户身份登录。
-it 参数是一个 Docker 参数,指示我们应以交互式 tty 方式启动 Elite。这一点很重要,因为 Elite 是一个交互式控制台应用程序!-v /absolute/path/to/Elite/Data:/app/Data 参数在主机和容器之间挂载一个共享的 Data 文件夹,使你可以轻松复制/粘贴外部工具以及使用 Elite 在操作期间生成的有效载荷。请务必将 /absolute/path/to/Elite/Data 替换为你自己的 Elite Data 文件夹的位置。
系统还会提示你为 AdminUser 用户提供密码。或者,你也可以通过 Elite 的 --password 参数以非交互方式设置密码,但这会使你的密码以明文形式保留在命令历史记录中,并不理想。
有问题或想进一步讨论 Covenant/Elite?请加入 BloodHound Gang Slack 中的 #Covenant 频道。