Cobalt Strike---(3)
创始人
2024-06-02 09:22:20
0

DNS Beacon 监听器设置

通过 Cobalt Strike → Listeners ,点击 Add 按钮,然后选择 Beacon DNS 作为 payload 类型。

      点击 [+] 来添加一到多个与 beacon 通信的域名。你的 Cobalt Strike 团队服务器系统必须对你指定的 域名具有权威性。创建一个 DNS A 记录然后指向你的 Cobalt Strike 团队服务器。使用 DNS NS 记录来 将多个域名或子域名委派到你的 Cobalt Strike 团队服务器的 A 记录。     DNS HOST(Stager) 字段配置 DNS Beacon 的 TXT 记录 stager。这个 stager 仅被用在要求显式 stager 的 Cobalt Strike 功能中。你的 Cobalt Strike 团队服务器系统也必须对此域名具有权威性。

    要测试你的 DNS 配置,打开一个终端并输入 nslookup jibberish.beacon domain (domain 自行 替换为 stager 域名)。如果你得到了一个 0.0.0.0 的 A 记录回复——这说明你的 DNS 配置是对的。如 果你没有得到回复,那说明你的 DNS 配置不对、DNS Beacon 不会与你通信。
    确保你的 DNS 记录引用了你的网络接口的首选地址(primary address)。Cobalt Strike 的 DNS 服务器会一直从你的网络接口的首选地址发送响应。当 DNS 解析器从一台服务器请求信息,但是从另一台服务器接收回复时,DNS 解析器往往会丢弃回复。

SMB Beacon

    SMB Beacon 使用命名管道通过一个父 Beacon 进行通信。这种对等通信对同一台主机上的 Beacon 和跨网络的 Beacon 都有效。Windows 将命名管道通信封装在 SMB 协议中。因此得名 SMB Beacon。

 所谓的「这种对等通信对同一台主机上的 Beacon 和跨网络的 Beacon 都有效」是指 SMB

Beacon 通过管道( pipe )进行进程间的数据传递。管道通信的进程可以是本地主机上的两个进 程,也可以和远程主机上的进程通过网络进行通信。
     要配置一个 SMB Beacon payload,通过 Cobalt Strike → Listeners 。点击 Add 。选择 Beacon  SMB 作为你的 payload 选项。唯一的与 SMB Beacon 相关的选项是 pipeame (管道名称)。你可以设置一个明确的管道名称或接受默认选项。SMB Beacon 与 Cobalt Strike 中派生 payload 的大多数动作兼容。这个的例外情况是用户驱动的攻击(例如 Attacks → Packages , Attacks → Web Drive-by )这种要求明确 stager 的。Cobalt Strike 后渗透和横向移动行为派生一个 payload,会尝试为你承担对 SMB Beacon payload 的控制。如果你手动的运行 SMB Beacon,你将需要从一个父 Beacon 链接到它。

 链接和取消链接

    从 Beacon 控制台,使用 link [host] [pipe] 来把当前的 Beacon 链接到一个等待连接的 SMB Beacon。当当前 Beacon check in,它的链接的对等 Beacon 也会 check in。
所谓的 check in ,指的是 Beacon 回连主机,回传受害系统的元数据,准 备好进行任务数据通讯的状态
    为了与正常流量融合,链接的 Beacon 使用 Windows 命名管道进行通信。这个流量被封装于 SMB 协议中。对于此方法有一些警告:

  1.  具有 SMB Beacon 的主机必须接受445端口上的连接。
  2. 你只能链接由同一个 Cobalt Strike 实例管理的 Beacon。

     如果在你尝试去连接到一个 Beacon 之后得到一个 error 5(权限拒绝),可以尝试这样解决: 窃取域 用户的令牌或使用 make_token DOMAIN\user password 来使用对于目标有效的凭据来填充你的当前 令牌,然后再次尝试去连接到 Beacon。        要销毁一个 Beacon 链接,在父会话或子会话中使用 unlink [ip address] [session PID] 。这个 [session PID] 参数是要取消链接的 Beacon 的进程 ID。该值用于当有多个子 Beacon 时,指定一个特 定的 Beacon 来断开链接。 当你对一个 SMB Beacon 取消了链接,它不会离开并消失。相反,它进入一种等待其他 Beacon 连接 的状态。你可以使用 link 命令来从将来的另一个 Beacon 恢复对 SMB Beacon 的控制。

TCP Beacon

   TCP Beacon 使用一个 TCP socket 来通过一个父 Beacon 通信。这种对等通信对同一台主机上的Beacon 和跨网络的 Beacon 都有效。    要配置一个 TCP Beacon payload,通过 Cobalt Strike → Listeners ,点击 Add 按钮。选择 Beacon TCP 作为你的 payload 选项。 使用这种方法配置的 TCP Beacon 是一个绑定的 payload。一个绑定的 payload 会等待来自它的控制器 (在此场景中,控制器是另一个 Beacon 会话)的连接。 Port(C2) 选项控制 TCP Beacon 将等待连接的端口。当它监听一个连接,勾选 Bind to localhost only 来使 TCP Beacon 绑定到 127.0.0.1。 如果你为仅本地的行为使用 TCP Beacon,那么这是一个很好的选项。    类似于 SMB Beacon,TCP Beacon 与 Cobalt Strike 中派生 payload 的大多数动作相兼容。除了一些 要求显式 stager 的用户驱动的攻击(比如: Attacks → Packages 、 Attacks → Web Drive-by )。 Cobalt Strike 后渗透和横向移动行为派生一个 payload,会尝试为你承担对 TCP Beacon payload 的控制。如果你手动的运行 TCP Beacon,你将需要从一个父Beacon 链接到它。

连接和取消链接

   从 Beacon 控制台,使用 connect [ip address] [port] 来把当前的 Beacon 连接到一个等待连接 的 TCP Beacon。当当前的会话 check in,它的链接的对等 Beacon 也会 check in。       要销毁一个 Beacon 链接,在父会话或子会话的控制台中使用 unlink [ip address] [session PID] 。以后,你可以从同一主机(或其他主机)重新连接到 TCP Beacon。

外置 C2

     外置 C2 是一种规范,允许第三方程序充当 Cobalt Strike 的 Beacon payload 的通信层。这些第三方程 序连接到 Cobalt Strike 来阅读预定使用的帧,并使用以此种方式控制的 payload 的输出写帧。这些第三方程序使用外置 C2 服务器来与你的 Cobalt Strike 团队服务器交互。 转到 Cobalt Strike → Listeners ,点击 Add ,选择 External C2 作为你的 payload。       外置 C2 接口有两个选项。 Port(Bind) 指定外置 C2 服务器等待连接的端口。勾选 Bind to localhost only 以使外置 C2 服务器仅本地主机。 外置 C2 监听器与其他 Cobalt Strike 监听器不同。这个监听端口其实是一个数据接收端口,没有相关的 其他监听器的功能,所以不能用来发一些后渗透指令过去。

Foreign Listeners

      Cobalt Strike 支持对外监听器的概念。 这些是托管在 Metasploit 框架或其他 Cobalt Strike 实例的 x86 payload handler 的别名。要传递一个Windows HTTPS Meterpreter 会话到一个使用 msfconsole 的朋友那里,建立一个 Foreign HTTPS payload 并将主机和端口的值指向它们的 handler。你可以在任何你想要使用 x86 Cobalt Strike 监听器的地方使用 foreign listener(对外监听器)。

基础设施整合

     Cobalt Strike 的分布式行动模型的基本思想是为你的每个行动阶段建立单独的团队服务器。比如,将你 的后渗透基础设施和持久化基础设施分开。如果一个后渗透行为被发现,这个基础设施将被重建。 一些行动阶段要求多个重定向器和通信通道选项。Cobalt Strike 4.0 对此有非常友好的设计。     你可以将多个 HTTP、HTTPS 和 DNS 监听器绑定到一个单独的 Cobalt Strike 团队服务器。这些 payload 在它们的配置中也支持端口弯曲(port bending)。这允许在你的重定向器和 C2 设置中使用 与你的通信通道(80,443或53)共同的端口,但是最好把这些监听器绑定到不同的端口以避免你的团队服务器系统中发生端口冲突。       为了使你的网络流量指标多样化,Cobalt Strike 的 C2 拓展文件可能包含多种变体。变体是一种将当前文件的变量加到一个配置文件中的方法。当你定义每个 HTTP 或 HTTPS Beacon 监听器时,你可以指定 一个配置文件变体。       此外,你可以在一个团队服务器上定义多个 TCP 和 SMB Beacon,每一个都使用不同的管道和端口设 置。任一个来自同一团队服务器的出口 Beacon,一旦它们被部署在目标环境中,那么都可以控制任何一个这些 TCP 和 SMB Beacon 的 payload。

Payload 安全特性

       Cobalt Strike 采取措施保护 Beacon 的通信,确保 Beacon 只能接收来自其团队服务器的任务并且只能将结果发送至其团队服务器。       首次设置 Beacon payload 时,Cobalt Strike 会生成一个团队服务器专有的公钥/私钥对。团队服务器 的公钥会嵌入 Beacon 的 payload stage。Beacon 使用团队服务器的公钥来加密发送到团队服务器的会话元数据。       Beacon 必须在团队服务器可以发出任务和接收来自 Beacon 会话的输出之前持续发送会话元数据。此元数据包含一个由 Beacon 生成的随机会话秘钥。团队服务器使用每个 Beacon 的会话秘钥来加密任务 并解密输出。 每个 Beacon 都使用这种相同的方案来实现数据通道。当在混合 HTTP 和 DNS Beacon 中使用记录 (A、AAAA、TXT)数据通道时,你有和使用 HTTPS Beacon 同样的安全保护。 请注意,当 Beacon 分阶段时,payload stager 因为其体积原因,没有这些内建的安全特性。

相关内容

热门资讯

【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AsusVivobook无法开... 首先,我们可以尝试重置BIOS(Basic Input/Output System)来解决这个问题。...
ASM贪吃蛇游戏-解决错误的问... 要解决ASM贪吃蛇游戏中的错误问题,你可以按照以下步骤进行:首先,确定错误的具体表现和问题所在。在贪...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...