CobaltStrike手册系列-安装及功能介绍篇

  • 2019 年 10 月 6 日
  • 筆記

1.1 什么是CobaltStrike?

Cobalt Strike是渗透测试软件,旨在执行有针对性的攻击并模仿高级威胁参与者的后期攻击行为。本节介绍Cobalt Strike的安装及功能介绍。本手册的其余部分详细讨论了这些功能。

图1.后利用的过程

通过侦察目标开始你的攻击。Cobalt Strike的系统分析器是一个Web应用程序,可以映射目标的客户端攻击面。

使用Cobalt Strike将常见文档转换为武器化成果。设置恶意Java Applet,将恶意宏嵌入到Word文档中,或创建删除文档并执行Payload的可执行文件。这些用户驱动的攻击是在目标网络中立足的完美工具。

使用Cobalt Strike的鱼叉式网络钓鱼工具进行攻击。此工具将保存的电子邮件重新用于像素完美的网络钓鱼。使用此工具将武器化文档或直接将目标发送到具有嵌入式攻击的克隆站点。

使用CobaltStrike的Beacon控制目标网络。此Payload使用与高级威胁恶意软件相同的异步“低速和慢速”通信模式。Beacon将通过DNS,HTTP或HTTPS通过返回。Beacon经过常见的代理配置,并通讯多个主机以防止拦截。

使用Beacon的Malleable Command andControl语言练习目标的攻击归属和分析功能。重新编程Beacon以使用看似已知恶意软件或与现有流量混合的网络指示器。

转向受感染的网络,发现主机,并通过命名管道进行Beacon有用的自动化和点对点通信,从而横向移动。Cobalt Strike经过优化,可捕获信任关系,并通过捕获的凭据, 密码哈希,访问令牌和Kerberos票证实现横向移动。

使用Cobalt Strike的用户开发工具展示有意义的业务风险。Cobalt Strike独特的工作流程可以轻松地将键盘记录器和屏幕截图捕获工具大规模部署到多个被控系统。使用浏览器代理可以访问使用Internet Explorer登录受感染目标的网站。这种仅限Cobalt Strike的技术适用于大多数站点并绕过双因素身份验证。

Cobalt Strike的报告功能可以重建您的客户的参与度。为网络管理员提供活动时间表,以便他们可以在传感器中找到攻击指示器。Cobalt Strike可生成高质量的报告,您可以将这些报告作为独立产品呈现给您的客户,或用作您书面叙述的附录。

1.2 安装和更新

Strategic Cyber LLC将Cobalt Strike软件包作为Windows,Linux和MacOS X的本机存档进行分发。要安装Cobalt Strike,只需将其存档提取到您的操作系统中即可。

系统要求

Cobalt Strike需要Oracle Java 1.8,Oracle Java 11或OpenJDK 11的环境。

如果您的系统上有防病毒产品,请确保在安装Cobalt Strike之前将其禁用。

试用版与完整版

主要的Cobalt Strike包是试用包。Cobalt Strike试用版是有时效的,但试验和许可产品之间存在重要差异。CobaltStrike试用版不会对其BeaconPayload中的任务和响应进行加密。该试用版还会产生可执行文件和网络流量,并故意告诉大多数安全产品。(译者注:看到这里我相信很多人想砍他)

更新许可的cobaltstrike产品

要充分受益于Cobalt Strike的功能,您必须使用许可证密钥更新到许可产品。试用版中包含执行此操作的更新程序。该程序接受许可密钥并为您获取最新的Cobalt Strike版本。获得许可的Cobalt Strike软件包含该产品的通信安全功能,并删除了试用版中的坑。

图2.更新过程(很简单,但图示的密钥不再有效)

确保使用许可证密钥更新团队服务器和客户端软件。Cobalt Strike通常按用户许可。团队服务器不需要单独的许可证。

1.3 Team Server

Cobalt Strike分为客户端和服务器组件。该服务器称为团队服务器,是Beacon Payload 的控制器,也是Cobalt Strike社交工程功能的主机。团队服务器还存储Cobalt Strike收集的数据,并管理日志记录。

Cobalt Strike团队服务器必须在受支持的Linux系统上运行。要启动Cobalt Strike团队服务器,请使用Cobalt Strike Linux软件包附带的teamserver脚本。

图3.启动Team Server

团队服务器有两个必需参数和两个可选参数。第一个是团队服务器的外部可达IP地址。Cobalt Strike使用此值作为其功能的默认主机。第二个是您的团队成员用于将Cobalt Strike客户端连接到团队服务器的密码。

第三个参数是可选的。此参数指定Malleable C2通信配置文件。第12章讨论了这个功能。

第四个参数也是可选的。此参数指定YYYY-MM-DD格式的终止日期。团队服务器会将此终止日期嵌入其生成的每个Beacon阶段。Beacon Payload将拒绝在此日期或之后运行。如果Beacon payload在此日期或之后唤醒,它也将退出。

当团队服务器启动时,它将发布团队服务器的SSL证书的SHA256哈希值。将此哈希分发给您的团队成员。当您的团队成员连接时,他们的Cobalt Strike客户端会在向团队服务器进行身份验证之前询问他们是否识别此哈希。这是防止中间人攻击的重要保护。

1.4 CobaltStrike客户端

Cobalt Strike客户端连接到团队服务器。要启动Cobalt Strike客户端,请使用平台软件包附带的启动程序。

当Cobalt Strike客户端启动时,您将看到一个连接对话框。

图4.Cobalt Strike Connect对话框

在“主机”字段中指定团队服务器的地址。团队服务器的默认端口是50050.很少有理由更改此设置。“用户”是团队服务器上的昵称。将此更改为您的称号或黑客名称。“密码”是团队服务器的共享密码。

点击Connect连接到Cobalt Strike团队服务器。

如果这是您与此团队服务器的第一次连接,Cobalt Strike将询问您是否识别此团队服务器的SHA256哈希值。如果您这样做,请按OK,Cobalt Strike客户端将连接到服务器。Cobalt Strike还会记住这个SHA256哈希,以便将来连接。您可以通过Cobalt Strike – >Preferences – > Fingerprints管理这些哈希值。

图5.验证服务器的SSL证书

Cobalt Strike会跟踪您连接的团队服务器并记住您的信息。从连接对话框的左侧选择其中一个团队服务器配置文件,以使用其信息填充连接对话框。您也可以通过Cobalt Strike – > Preferences- > TeamServers修剪此列表。

1.5 分布式和团队运营

使用Cobalt Strike来协调分布式红队的工作。在一个或多个远程主机上进行阶段CobaltStrike。启动您的团队服务器并让您的团队联系。

连接到团队服务器后,您的团队将:

· 使用相同的会话

· 共享主机,捕获的数据和下载的文件

· 通过共享事件日志进行通信。

Cobalt Strike客户端可以连接到多个团队服务器。转到Cobalt Strike – > New Connection

以启动新连接。当连接到多个服务器时,开关栏将显示在Cobalt Strike窗口的底部。

图7.服务器切换栏

此开关栏允许您在活动的Cobalt Strike服务器实例之间切换。每个服务器都有自己的按钮。右键单击按钮,然后选择“重命名”以生成按钮的文本在您的参与过程中反映服务器的角色。此按钮名称还将标识Cobalt Strike活动报告中的服务器。

当连接到多个服务器时,Cobalt Strike会结合所连接的所有服务器的listeners。此结合允许您从引用另一台服务器上托管的恶意网站的一台服务器发送网络钓鱼电子邮件。您还可以在一台将Beacon会话发送到另一台服务器的服务器上轻松设置攻击。在您攻击结束时,Cobalt Strike的报告功能将查询您连接的所有服务器并合并数据以出示一个报告。

1.6 CobaltStrike脚本

Cobalt Strike可通过其Aggressor Script语言编写脚本。Aggressor Script是Armitage的Cortana脚本语言的精神继承者。但两者并不兼容。要管理脚本,请转到Cobalt Strike -> ScriptManager。

图8.脚本管理器

Cobalt Strike中的默认脚本定义了所有Cobalt Strike的弹出菜单,并格式化Cobalt Strike 控制台中显示的信息。通过Aggressor Script引擎,您可以覆盖这些默认值并根据您的偏好自定义Cobalt Strike。

您还可以使用Aggressor Script向Cobalt Strike的Beacon添加新功能并自动执行某些任务。

要了解有关Aggressor Script的更多信息,请参阅以下文档:

  • https://www.cobaltstrike.com/aggressor-script/

来源:Ms08067安全实验室