导语:Covenant 作为一个广受欢迎的红蓝对抗攻击框架,作者在今天正式发布了 v0.3 版本,这里面包含了一个全新的基于web的界面。 在这篇文章中,我们将讨论 Covenant 的新界面和其他重要的特性。
介绍
Covenant 作为一个广受欢迎的红蓝对抗攻击框架,作者在今天正式发布了 v0.3 版本,这里面包含了一个全新的基于web的界面。 在这篇文章中,我们将讨论 Covenant 的新界面和其他重要的特性。
“Covenant”已经开发了一年多,首次公测是在七个多月前。本次发行主要集中在新的特性和功能上。到目前为止,我们已经优先选择提供在现代红蓝对抗活动中有助于红队取得成功所需的功能。 但是自从发布以来,可用性并不是这个工具的主要关注点。 事实证明,可用性和文档说明实际上是非常重要的特性。
可用性
如果一个特性不是直观的并且没有很好的说明文档,那么这个特性很可能不会被人们使用。 可用性对于协同命令和控制框架来说尤为重要。 我们应该假设会有多个操作员在同时工作,但并非所有操作员都同样熟悉这个工具。 如果只有工具开发人员或团队领导能够解释如何有效地使用工具,那么无论功能列表中有多少附加功能,那么工具本身就不会有效的提高生产力。
对于 Covenant 来说,可用性将是一个主要的焦点。 这并不意味着每个特性都会立即变得直观,但是可用性现在是我们开发的主要方向。一个功能不会被认为是完整的,除非它是直观的并且有很好的文档说明。
基于 Web 的新界面
通向更加实用和直观的 Covenant,所迈出的第一步就是实现一个新的基于Web的界面。Covenant 几乎完全改成了新的界面,整体上看起来更加直观。
Covenant的控制面板
这篇文章将展示新版本中几个最重要的升级,并重点介绍一些通过新Web界面实现的关键功能,主要关注新功能提供的可用性优势。
界面主要通过侧边栏驱动,侧边栏包括以下几个导航页面:
· 仪表盘(Dashboard) —即主视图或者是你在登录时看到的第一个页面。 你可以快速的看到活跃的Grunt,活跃的监听器,以及一些最近分配给 Grunt 的任务。
· 监听器(Listeners) —提供用于管理侦听器和侦听器配置文件的接口
· 启动器(Launchers)—发布程序时提供一个用于创建、托管和下载发布程序的界面,以便在发布新的发布程序时使用
· Grunts—用一个表格来显示和查看所有活动的和不活动的员工,以及与员工间的互动和分配给他们新的任务
· 任务(Tasks)——提供编辑和构建新任务的界面
· 任务分配(Taskings) ——用一个表格显示以查看分配给普通员工的所有任务分配
· 图(Graph) — 提供一个视图,以显示在操作期间从员工收集的数据,例如凭据、指示器和下载的文件
· 数据(Data) —— 数据页面提供了从操作过程中收集的数据的视图,例如凭证、指示器和下载的文件
· 用户(Users) — 提供用户管理和创建界面
所有这些组件都在新界面中得到了改进,但是这篇文章将集中讨论几个主要的改进领域:
· 用户注册及管理
· 监听器和配置文件的配置
· 员工的交互
· 构建自定义任务
用户注册及管理
新版本简化了用户注册的过程,网页界面使创建新用户和修改现有用户更加容易。
在以前的版本中,Covenant 要求在命令行中传递初始的用户名和密码。现在,Covenant 可以在没有任何参数的情况下启动,并且允许你通过 web 界面注册一个初始用户。但一旦创建了用户,出于安全原因,此选项将不再可用。
初次用户注册界面
通过使用新的界面,用户管理的功能也得到了很大的改进,这次更新使得设置用户进行协作变得更加容易。 注册用户可以通过导航到侧边栏的用户页面来查看和管理:
用户页面
用户注册和管理 在 Covenant 的新 的 Wiki 中有更详细的记录。
监听器和配置文件
通过 web 界面,监听器的创建和管理变得更加容易,并且包括一个全新的配置文件构建功能。
要创建一个新的监听器,请导航到侧栏上的 监听器(Listeners) 页面,然后单击“ 创建(Create)”按钮开始配置新的监听器。
创建 HTTP 监听器
你可以根据需要来配置新的监听器,然后再次单击“创建”按钮,你的新监听器将启动。 我们强烈建议为你的监听目标配置定制的配置文件或者修改现有的配置文件,因为盟约的默认配置文件很容易地被防御性产品标记。
在先前版本的Covenant中,需要在Covenant开始之前开发配置文件,但现在可以很容易地通过 Web 界面修改和创建配置文件。
如果要编辑预先存在的配置文件,请导航到侧栏上的 Listeners 页面,选择 Profiles 选项卡,然后单击预先存在的配置文件。
监听器配置文件表
配置文件编辑页面允许你更改配置文件的任何方面,包括请求和响应标头、回调 url 以及请求和响应格式。 出于安全目的,用户必须是管理员才能编辑HttpMessageTransform 属性,并且不能编辑应用于活动监听器的配置文件,尽管我们希望在将来某个时候启用该特性。
编辑 HTTP 监听器配置文件
通过界面创建和编辑配置文件的能力是更为重要的新特性之一,并且应该使得开始定制网络流量通信方式变得更加容易。
监听器配置文件管理和监听器管理在 Covenant 的新 Wiki 中有更详细的记录。
员工交互
员工交互可能是 Covenant 里最重要的方面。 大多数操作将基于交互的层面实现,既往操作员将花费大部分时间与员工进行互动。 基于这个原因,杂乱的交互是新界面主要解决问题的方向,并且需要尽可能的具有可用性和直观性。 繁琐的交互页面包括通过 SignalR 实时命令更新、通过 Twitter typeahead 自动完成命令建议,以及与繁琐交互的多种方法。
导航到侧边栏中的“Grunts”页面会给出一个“活跃员工”和“非活跃员工”的列表。
员工列表
选择一个活跃的员工,你即可以到员工的的交互页面。
员工信息
你在交互页面上看到的第一个东西是信息选项卡,它将显示所有关于选定的员工的信息。 有几个字段是可编辑的,比如 Delay、 JitterPercent、 connecttributts 和 Note 属性。 编辑这些值将会改变员工的值,也会导致一个任务应用于员工时,以更改植入本身的该值。
导航到“交互”选项卡会将操作者带到一个类似命令行的界面。 操作员可能会把大部分时间花在这个界面上,这使得这个视图的可用性变得尤为重要。 新的命令界面是以前迭代的升级版本,而且更加直观。 该界面是可滚动并且可以垂直调整大小的,当操作员键入命令建议时可以自动补齐命令,后面你将看到实时更新,以便你可以看到其他员工正在做什么。
员工的交互
Covenant 有一个新的命令行解析器,可以使指定的、复杂的参数变得更加容易。 但是,如果命令太混乱,无法在命令行中指定,则可以使用更具体的命令。
导航到任务选项卡会显示一个下拉对话框,在那里你可以选择你想要执行的特定任务,并允许你在对话框中填充参数,以确保解析过程中不会妨碍到你原来的设定。
员工任务标签
Taskings 标签在一个可搜索的表格视图中显示了员工们的命令执行历史,它允许操作员通过点击标签来获得任何特定任务、任务或用户的更多详细信息。
员工任务表
在 Covenant 的新 Wiki 中有更详细的记录。
构建自定义任务
构建自定义任务一直是新界面的另一个核心焦点。 在先前的版本中,实现定制任务不是一个简单的过程,但现在,操作员可以在操作过程中的任何时候添加新任务或编辑现有任务,并立即开始使用这些任务。
Covenant 为构建新任务提供了丰富的模型。 导航到侧栏上的 Tasks 页面会显示所有与 Tasks、 引用资源库、 引用程序集 和 嵌入的资源相关的表格。
用户可以使用这些现有组件中的任何一个来帮助构建新任务。 例如,当创建一个新任务时,用户可以添加“ SharpSploit” 引用资源库并开始使用任何 SharpSploit 名称空间来帮助完成给定的任务。
任务表
要创建新的任务,请单击 Tasks 选项卡底部的 Create 按钮。
创建新任务
然后,你可以根据需要配置 Task,单击 Create 按钮,然后 Task 就可以在任何员工中使用。
使用新任务
构建任务在 Covenant 的新 Wiki 中有更详细的记录。
再见, Elite
新的界面也意味着我们不得不向Covenant的客户端界面 Elite 说再见,至少现在是这样。 舍掉大段来之不易、功能齐全的代码从来都不是件有趣的事情,但是在向可用性迈进的过程中,我们发现命令行界面对于我们目前的目标来说太过于局限了。
然而,我确实认为拥有一个命令行客户端是有价值的,Elite 可能会在未来的某个时候回现。 但是现在,我们选择把我们的开发工作集中在 Covenant 的新界面上。
出于某些历史原因, Elite 将继续在 https://github.com/cobbr/Elite 存在 ,以防有人出于某种原因想要使用旧版本的Covenant。 最终,存储库可能在后续的Covenant版本中得到更新。
从 Elite 着眼未来
文档
除了新的界面之外,Covenant 还需要更全面的文档。
Covenant 有一个新的,修改过的 Wiki,它记录了 Covenant 的特性,其中的许多功能并没有在这篇博客文章中详细说明。 Wiki 目前记录了 Covenant的大多数核心功能,并将随着项目的发展不断更新。 此外,我们将在不久的将来录制一个展示 Covenant 新功能的视频系列。
未来发展
我们很高兴能够发布 Covenant的新界面,也很满意它目前的状态,但是我们一直在思考未来我们能够做出的补充和改进。 在不久的将来,我们将继续完善 Covenant 的文档、界面和可用性特性。 我们希望用户的反馈能够帮助我们填补这些空白,并且在开发新功能之前真正做好界面交互。
关于未来的 UI 改进,我们确实有一些想法,比如改进图形视图,可能引入微软新的 Blazor / 单页应用框架,以及继续加强微软 SignalR 框架的实现。
但是我们希望大多数未来的用户界面改进来自用户的反馈! 如果你是一个经常使用 Covenant 的用户,或者有一段时间没有试用过 Covenant,我们希望你能试用一下新的界面,让我们知道你的想法。