团队服务器
Cobalt Strike
分为客户端组件和服务器组件。服务器组件,也就是团队服务器,是
Beacon payload
的控制器,也是 Cobalt Strike
社会工程功能的托管主机。团队服务器还存储由
Cobalt Strike
收集的数据,并管理日志记录。
Cobalt Strike
团队服务器必须在受支持的
Linux
系统上运行。要启动一个
Cobalt Strike
团队服务器, 使用 Cobalt Strike Linux
安装包中的
teamserver
脚本文件。
./teamserver ip 密码 C2拓展文件 日期
- 第一个参数是团队服务器的外部可达IP地址。Cobalt Strike 使用这个值作为它的功能使用的默认主机地址。
- 第二个参数是密码,你的团队成员将使用此密码从自己 Cobalt Strike 客户端去连接至 Cobalt Strike 团队服务器。
-
第三个参数是选填的,这个参数指定一个「 C2 拓展文件」
-
第四个参数也是选填的。此参数以 YYYY - MM - DD 的日期格式指定结束日期。团队服务器会将这个结束日期嵌入到它生成的每个 Beacon stage 中。 Beacon payload 在此日期后将拒绝运行,并且在此日期后如果这个 Beacon payload 醒来也会自动结束 ( 对应 Beacon 会话中的 exit 选项)
当团队服务器启动,它会发布团队服务器的
SSL
证书的
SHA256 hash
。你需要给你的团队成员分发这 个 hash
。当你的团队成员连接团队服务器时,在身份验证至团队服务器前、他们的
Cobalt Strike
客户 端会询问他们是否承认这个 hash
。这是抵御中间人攻击的重要保护措施。
Cobalt Strike 客户端
使用
Cobalt Strike
客户端连接至团队服务器。要启动
Cobalt Strike
客户端,使用适用于你的平台的软 件包内的启动器。 当 Cobalt Strike
客户端启动时,你会看到一个连接对话框。
在
Host
(主机)字段指定你的团队服务器的地址。团队服务器的默认端口为
50050
,可以在服务器中进行修改。 User
字段填写你的昵称,当你进入团队服务器之后会显示此昵称。可以将此字段更改为 你的外号、称呼或幻想的黑客名号(如 Snowden
斯诺登)。
Password
字段填写团队服务器的共享密码。
按下
Connect
按钮来连接到
Cobalt Strike
的团队服务器。如果这是你第一次连接至此团队服务器, Cobalt Strike
会询问你是否承认这个团队服务器的
SHA256hash。如果你承认,那么按
OK
,然后
Cobalt Strike
的客户端就会连接到这个团队服务器。
Cobalt Strike 也会在未来的连接中记住这个
SHA256 hash
。你可以通过
Cobalt Strike → Preferences
→
Fingerprints
来管理这些团队服务器的
hash
。
Cobalt Strike 会跟踪你连接到的团队服务器并记住你的信息。从连接对话框左手边选择一个团队服务器的profifile(连接信息),使用它的信息填充此连接对话框的字段。你也可以通过 Cobalt
Strike
→
Preferences
→
Team Servers
来管理此列表。
一旦连接至一个团队服务器,你的团队将:
- 使用相同的会话
- 分享主机、捕获的数据和下载的文件
- 通过一个共享的事件日志交流
Cobalt Strike
客户端可能会连接到多个团队服务器。通过
Cobalt Strike
→
New Connection
(新建连接)来初始化一个新的连接。当连接到多个团队服务器,一个切换条会出现在你 Cobalt Strike 窗口的底部。这个切换条允许你在活跃的
Cobalt Strike
团队服务器实例之间切换。
tip:切换条上的名字显示为登录时输入为输入的alias名称,同一个客户端和服务器可以建立多个连接(alias和user需要不同)
当连接到多个团队服务器,
Cobalt Strike
会汇总所有它连接的团队服务器的监听器。这种聚合允许你从一台团队服务器发送引用了托管在另一台团队服务器上的恶意网站的钓鱼邮件。在你行动的末期, Cobalt Strike 的报告功能会查询所有你连接到的团队服务器、合并这些数据来描述一个完整的事件。
在 Cobalt Strike 内有一个默认的脚本,定义了展示在 Cobalt Strike 控制台的所有弹出菜单和格式信 息。通过 Aggressor Script 引擎,你可以覆盖这些默认设置、根据你的偏好个性化设置 Cobalt Strike 。 你也可以使用 Aggressor Script 来给 Cobalt Strike 的 Beacon 增加新的功能和使特定的任务自动化。
工具条
Cobalt Strike
顶部的工具条提供访问
Cobalt Strike
常用功能的快捷方式。熟悉此工具条按钮会提升你 使用 Cobalt Strike
的效率。
以上工具从左到右分别是:
- 连接到另一个团队服务器
- 断开从当前团队服务器的链接
- 新建和编辑CS的监听器
- 切换为服务器节点图的可视化模式
- 切换为会话列表的可视化形式
- 切换为目标列表的可视化形式
- 查看凭据
- 查看下载的文件
- 查看键盘记录
- 查看屏幕截图
- 生成一个无阶段的CS可执行文件或者DLL
- 设定Java签名的Applet攻击
- 生成一个恶意的Mircosoft Office宏文件
- 建立一个无阶段的web传送攻击
- 在CS服务器上托管一个文件
- 管理托管在CS Web服务器上的文件和应用
- 访问CS支持页面
- 关于CS
会话和目标可视化展示
Cobalt Strike
有多种可视化展示,这些不同的设计是为了帮助你的行动中的不同部分。 你可以通过工具条或 Cobalt Strike
→
Visualization
(可视化)菜单在不同的可视化形式之间切换。
目标表
目标表展示了
Cobalt Strike
的数据模型中的目标。此目标表展示了每个目标的
IP
地址,它的
NetBIOS 名称,以及你或者你的团队成员给目标标记的一个备注。每个目标最左侧的图标表示了它的操作系统。 带有闪电的红色图标表示此目标具有一个与之通信的 Cobalt Strike Beacon
会话。
制作payload的时候,需要注意IP地址的配置,如果服务器端配置在云服务器上,则需要加入云服务器IP地址,同时注意配置云服务器安全端口策略,对指定的端口进行开放
点击表头字段(
address
)来排序主机。高亮一行并右击来打开一个菜单,此菜单有针对这台主机的操作选项。按住 Ctrl
+
Alt
,然后通过点击来选择和取消选择某台主机。 这个目标表对于横向移动和理解你的目标网络很有用。
会话表
会话表展示了哪些
Beacon
回连到了这台
Cobalt Strike
实例。
Beacon
是
Cobalt Strike
用于模拟高级威胁者的 payload
。在这里,你将看到每个
Beacon
的外网
IP
地址、内网
IP
地址、该
Beacon
的出口监听器、此 Beacon
最后一次回连的时间,以及其他信息。每一行最左边是一个图标,用于说明被害目标的操作系统。如果此图标是红色的、并且带有闪电,那么说明此 Beacon
运行在管理员权限的进程 中。一个褪色的图标意味着此 Beacon
会话被要求离开并且它接受了此命令。
如果你使用一个
DNS Beacon
监听器,要注意
Cobalt Strike
在第一次回连团队服务器之前不会知道任何关于主机的信息。如果你看到一行带有 last call time
(上次回连时间)的条目,你就可以给那个Beacon
它的第一个任务来查看更多信息。
Pivot 图
Cobalt Strike
能够将多个
Beacon
连接到一个链中。这些链接的
Beacon
从链中的父
Beacon
那里接收 命令,并发送其输出。这类链接对于控制哪些会话作为网络出口和模拟有纪律的攻击者很有用,这类攻 击者将他们在网络内部的通信路径限制在合理范围内。这种 Beacon
链是
Cobalt Strike
最有力的功能之一。
Cobalt Strike
的工作流程使得建立这种链非常容易。通常对于
Cobalt Strike
使用者来说链接四到五层 深度的 Beacon
也是常见的。如果不做可视化那么跟踪和理解这些链是非常困难的。这就是需要借助 Pivot 图的地方。
Pivot
图用一种非常自然的方式展示了你的
Beacon
链。每一个
Beacon
会话都有一个对应的图标。和 会话表中一样,每个主机的图标标识了它的操作系统。如果图标是红色的、并且带有闪电,那么表示此Beacon 运行在管理员权限的进程中。一个褪色的图标说明此
Beacon
会话被要求离开并且它接受了此 命令。 防火墙图标代表你 Beacon payload
的流量出口点。
绿色虚线表示使用了 HTTP 或 HTTPS 连接出网。黄色虚线表示使用 DNS 协议出网。
从一个
Beacon
会话连接到另一个
Beacon
会话的箭头表示两个
Beacon
之间存在连接。在这种对等通 信模式中,Cobalt Strike
的
Beacon
使用
Windows
命名管道和
TCP sockets
来控制其他的
Beacon
。 橙黄色的箭头代表命名管道通道。SSH
会话也使用一个橙黄色的箭头。一个湖蓝色的箭头代表一个
TCP socket 通道。一个红色的(命名管道)或紫色的(TCP)箭头表示一个
Beacon
连接断掉了。
点击一个
Beacon
来选中它。通过点击和拖划出一个覆盖多台目标主机的矩形,你可以选择多个
Beacon
。按住
Ctrl
+
Alt
,然后通过点击来选择和取消选择某个
Beacon
。
在一个
Beacon
上单击右键来打开一个菜单,此菜单上有可用的后渗透选项。
在
Pivot
图中提供有多个键盘快捷键:
- Ctrl + + ——放大
- Ctrl + - ——缩小
- Ctrl + 0 ——重置缩放级别
- Ctrl + A ——选择所有主机
- Escape ——清除选择
- Ctrl + C ——将主机排列成一个圆圈
- Ctrl + S ——将主机排列成一行
- Ctrl + H ——将主机排列到层次结构中(默认的布局)
不选择任何
Beacon
、在
Pivot
图上单击右键可以配置此图的布局。
标签页
Cobalt Strike
在一个新的标签页中打开每个对话、控制台和表。点击标签页上面的
X
就可以关闭一个 标签页。使用 Ctrl
+
D
(
Delete
)可以关闭当前正在查看的标签页。
Ctrl
+
Shift
+
D
会关闭除了当 前停留的标签页之外的所有标签页。 你可以在 X
符号上面单击右键,会出现一些选项,包括:在一个单独的窗口中打开此标签页、对一个 标签页截屏、或者关闭同名的所有标签页。 对于这些功能,也有对应的快捷键。使用 Ctrl
+
W
(
Window
)来在单独的窗口中打开当前停驻的标签 页。使用 Ctrl
+
T
来快速地保存当前停留的标签页的屏幕截图。 Ctrl +
B
(
Bottom
)会把当前停留的标签页移动到
Cobalt Strike
窗口的底部。这对于你想要持续监视 的标签页很有用。使用 Ctrl
+
E
可以取消此动作,并移除在
Cobalt Strike
窗口底部的标签页。 按住 Shift
键并点击
X
可以关闭所有同名的标签页。同时按住
Ctrl
和
Shift
键并点击
X
可以在 单独的窗口内打开标签页。 使用 Ctrl +
←
和
Ctrl
+
→
来快速地在标签页之间切换。 你也可以通过拖拽的方法来改变标签页的前后位置。
控制台
Cobalt Strike 提供一个控制台来与 Beacon 会话、脚本等交互,你也可以通过控制台与你的队友交流。
控制台会追踪你的命令历史。
点击向上的箭头可以浏览以前键入的命令,点击向下的箭头可以移回到你 键入的最后一个命令。
使用
Tab
键可以补全命令和参数。
使用
Ctrl
+
+
可以让控制台的尺寸变大,
Ctrl
+
-
可以减小控制台的尺寸,
使用
Ctrl
+
0
可以重 置控制台的大小。此更改仅对当前控制台生效。
通过 Cobalt Strike
→
Preferences
(偏好)来永久更改字体。
按
Ctrl
+
F
会显示一个面板,让你可以在控制台中搜索文本。