Bootstrap

Cobalt Strike 4.8 用户指南-第十节 SSH会话

10.1、SSH客户端

Cobalt Strike 使用内置SSH客户端控制 UNIX 目标。此 SSH 客户端从父 Beacon 接收任务并通过父Beacon路由其输出。

右键单击目标,然后转到 Login -> ssh 以使用用户名和密码进行身份验证。转到 Login -> ssh (key) 使用密钥进行身份验证。

在 Beacon 控制台中,使用 ssh [pid] [arch] [target] [user] [password] 注入指定进程以运行 SSH 客户端并尝试登录指定目标。使用 ssh [target] [user] [password](不带 [pid] 和 [arch] 参数)派生一个临时进程来运行 SSH 客户端并尝试登录到指定的目标。

image-20241111134533456

你也可以使用 ssh-key [pid] [arch] [target:port] [user] [/path/to/key.pem] 注入指定进程,运行SSH 客户端并尝试登录指定目标。使用 ssh-key [target:port] [user] [/path/to/key.pem](不含[pid][arch]参数)派生一个临时进程,运行 SSH 客户端并尝试登录指定目标。

注:密钥文件必须是 PEM 格式。如果文件不是 PEM 格式,则复制一份文件,然后使用以下命令转换: /usr/bin/ssh-keygen -f [/path/to/copy] -e -m pem -p

这些命令会运行 Cobalt Strike  SSH 客户端。客户端会向父Beacon 报告任何连接或身份验证问题。如果连接成功,你会在 Cobalt Strike 的显示中看到一个新会话。这是一个 SSH 会话。右键单击该会话,然后选择Interact打开 SSH 控制台。

image-20241111134606206

image-20241111134630534

输入 help 查看 SSH 会话支持的命令列表。输入 help 后跟命令名,可查看该命令的详细信息。

image-20241111134658601

# 10.2、运行命令

shell 命令将运行你提供的命令和参数。在 Cobalt Strike 将命令放到后台之前,运行中的命令会阻塞SSH会话长达 20 秒。Cobalt Strike 会报告这些长时间运行命令的输出结果。

image-20241111135310371

使用 sudo [password] [command + arguments] 尝试通过sudo运行命令。该别名要求目标sudo接受 -S 标志。

cd 命令将更改 SSH 会话的当前工作目录。pwd 命令报告当前工作目录。

image-20241111135351959

# 10.3、上传和下载文件

可使用以下命令:

  • download - 该命令下载请求的文件。文件名中如果有空格,则无需加引号。Beacon专为低速、缓慢的数据外泄而设计。在每次check-in过程中,Beacon 会下载每个文件的固定片段。该数据块的大小取决于 Beacon 当前的数据通道。HTTP 和HTTPS通道以 512KB 的块大小下载数据。
  • downloads - 用于查看当前 Beacon 正在进行的文件下载列表。
  • cancel - 使用此命令,并在命令后加上文件名,以取消正在进行的下载。你可以在取消命令中使用通配符,一次取消多个文件的下载。
  • upload - 该命令将文件上传到主机。
  • timestomp - 上传文件时,有时需要更新文件的时间戳,使其与同一文件夹中的其他文件保持一致。这条命令就能实现这一目的。timestomp 命令会将一个文件的 “已修改”、“已访问 ”和 “已创建 ”时间与另一个文件相匹配。

在 Cobalt Strike 中进入View -> Downloads,查看团队目前已下载的文件。只有完成的下载才会显示在此选项卡中。·

image-20241111140230200

下载的文件存储在团队服务器上。要将文件保存到文件系统中,请在此处选中它们,然后点击 Sync FilesCobalt Strike 会将所选文件下载到你系统中指定的文件夹。

# 10.4、点对点C2

SSH 会话可以控制 TCP beacon。使用connect命令可以控制等待连接的 TCP Beacon。使用 unlink 命令断开 TCP Beacon会话。

通过[session] -> [Listeners] -> Pivot -> Listener...,设置与此 SSH 会话绑定的 pivot 监听器。这将允许这个被入侵的 UNIX 目标接收反向 TCP Beacon会话。此选项要求 SSH 守护进程的 GatewayPorts 选项设置为 yes 或 ClientSpecified

image-20241111141958778

image-20241111143117976

# 10.5、SOCKS跳板和反向端口转发

socks - 使用此命令在团队服务器上创建一个通过ssh会话转发流量的SOCKS服务器。rportfwd 命令还将创建一个反向端口转发,用于路由通过 SSH 会话和你的Beacon链的流量。

rportfwd 有一个注意事项:rportfwd 命令要求 SSH 守护程序绑定所有接口(0.0.0.0)。SSH 守护进程很可能会覆盖此配置并强制端口绑定到localhost。你需要将 SSH 守护程序的 GatewayPorts 选项更改为yes clientspecified

;