Cobalt Strike---(3)

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 因为其体积原因,没有这些内建的安全特性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值