工具介绍
Covenant是一个.NET开发的C2(command and control)框架,旨在突出.NET的攻击面,并充当红队成员的协作命令和控制平台,该工具不仅支持Linux,MacOS和Windows,还支持docker容器,最特别的地方是支持动态编译,能够将输入的C#代码上传至C2 Server,获得编译后的文件并使用Assembly.Load()从内存进行加载。
关注【Hack分享吧】公众号,回复关键字【230909】获取下载链接
功能特征
-
直观的界面 - Covenant 提供直观的 Web 应用程序来轻松运行协作红队操作。
-
多平台 - Covenant 的目标是 .NET Core,它是多平台的。这使得 Covenant 可以在 Linux、MacOS 和 Windows 平台上本机运行。此外,Covenant 还支持 docker,允许它在任何安装了 docker 的系统上的容器内运行。
-
多用户 - Covenant 支持多用户协作。协作能力对于红队的有效运作至关重要。许多用户可以与同一个 Covenant 服务器交互并独立或协作操作。
-
API驱动 - Covenant 由 API 驱动,支持多用户协作并且易于扩展。此外,Covenant 还包含 Swagger UI,使开发和调试更加轻松便捷。
-
侦听器配置文件 - Covenant 支持侦听器“配置文件”,这些侦听器“配置文件”控制 Grunt 植入程序和 Covenant 侦听器之间的网络通信在线路上的外观。
-
加密密钥交换 - Covenant 在 Grunt 植入程序和 Covenant 侦听器之间实现加密密钥交换,除了可选的 SSL 加密之外,该交换主要基于 Empire 项目中的类似交换。这实现了 Grunt 植入之间的前向保密的加密属性。
-
动态编译 - Covenant 使用 Roslyn API 进行动态 C# 编译。每次生成新的 Grunt 或分配新任务时,都会重新编译相关代码并使用 ConfuserEx 进行混淆,从而避免完全静态的有效负载。Covenant 重用了 SharpGen 项目的大部分编译代码,我在上一篇文章中对此进行了更详细的描述。
-
内联C#执行- Covenant 借用了 SharpGen 和 SharpShell 项目的代码和想法,允许操作员在 Grunt 植入物上执行 C# 单行代码。这允许实现与 SharpShell 帖子中描述的类似功能,但允许在远程植入上执行单行代码。
-
跟踪指标 - Covenant 在整个操作过程中跟踪“指标”,并在“指标”菜单中对它们进行汇总。这使得操作员能够执行在整个操作过程中跟踪的操作,并在评估期间或结束时轻松地将这些操作总结给蓝队,以消除冲突和教育目的。该功能仍处于起步阶段,仍有改进的空间。
-
C#开发 - 就我个人而言,我喜欢用 C# 进行开发,这对于阅读过我最新博客或工具的人来说可能并不奇怪。并非每个人都认为 C# 开发是理想的,但希望每个人都同意用同一种语言编写框架的所有组件是件好事。我发现用同一种语言编写服务器、客户端和植入程序非常方便。这可能不是一个真正的“功能”,但希望它允许其他人相当轻松地为该项目做出贡献。