Cobalt Strike 4.8 用户指南-第四节-监听器和基础设施管理

4.1、概述

任何行动的第一步都是建立基础设施。在 Cobalt Strike 中,基础设施由一台或多台团队服务器、重定向器以及指向团队服务器和重定向器的 DNS 记录组成。一旦团队服务器启动并运行,你将需要连接到它,并将其配置为接收来自受感染系统的连接。监听器是 Cobalt Strike 执行此操作的机制。

监听器既是payload的配置信息,也是 Cobalt Strike 建立服务器以接收来自payload连接的指令。监听器由用户定义的名称、payload类型和几个特定于payload的选项组成。

# 4.2、监听器管理

要管理Cobalt Strike监听器,点击菜单栏上的Cobalt Strike -->Listeners打开监听器管理选项卡,列出了所有已经配置的payload和监听器。

image-20230907105417018

A screenshot of a cell phone  Description automatically generated

点击ADD添加新的监听器。将显示New Listener面板。

image-20230907105844331

使用Payload下拉菜单选择要配置的payload/listener类型。每种类型都有不同的参数,将在后面的章节中进行详细介绍。

要编辑监听器,选中一个监听器,然后点击 Edit 。删除监听器,点击Remove

image-20230907110243953

# 4.3、Cobalt Strike 的 Beacon Payload

通常情况下,你需要为 Cobalt Strike 的 Beacon payload 配置监听器。 Beacon 是 Cobalt Strike 的paylod,用于对高级攻击者进行建模。使用 Beacon 通过 HTTPHTTPS 或 DNS 出网。还可以通过控制 Windows 命名管道和 TCP 套接字上的点对点Beacon来限制哪些主机可以出网。

Beacon 非常灵活,支持异步和交互式通信。异步模式下通信缓慢, Beacon 回连服务器,下载其任务,然后休眠。交互式通信模式下是实时的。

Beacon 的网络指标具有可塑性。使用 Cobalt Strike 的可扩展 C2 语言重新定义 Beacon 的通信。这可以将Beacon活动伪装成其他恶意软件或混入合法流量。有关详细信息,会在后续的Malleable Command and Control章节介绍。

# 4.3.1、系统调用

``Beaconpayload实现了使用系统调用而非标准 Windows API 函数的功能。目前,Beacon 只支持有限的函数集来实现这一功能。

以下函数支持系统调用的使用:

  • CloseHandle
  • CreateFileMapping
  • CreateRemoteThread
  • CreateThread
  • GetThreadContext
  • MapViewOfFile
  • OpenProcess
  • OpenThread
  • ResumeThread
  • SetThreadContext
  • UnmapViewOfFile
  • VirtualAlloc
  • VirtualAllocEx
  • VirtualFree
  • VirtualProtect
  • VirtualProtectEx
  • VirtualQuery

当你通过 Cobalt Strike UI 或支持的攻击者函数生成五阶段``Beaconpayload时,你可以选择在执行时使用哪个系统调用方法。

系统调用方法描述
None使用标准Windows API函数
Direct使用 Nt* 版本的函数
Indirect跳转到 Nt* 版本函数中的相应指令

有些注入或生成新Beacon的命令和工作流程不允许设置初始系统调用方法。在这种情况下,在配置文件中设置stage.syscall_method 将允许控制执行时使用的初始方法。

以下命令和工作流程可使用的 stage.syscall_method 设置:

  • elevate
  • inject
  • jump
  • spawn
  • spawnas
  • spawnu
  • team server responding to a stageless payload request
  • team server responding to an external c2 payload request

使用 syscall-method [method] 命令可以修改后续命令使用的方法。不带任何参数的 syscall-method 将查询当前方法。

image-20230907132349296

# 4.3.2、Payload安全特性

Cobalt Strike 会采取措施保护Beacon通信,确保Beacon只能从团队服务器接收任务并向团队服务器发送输出。

首次设置 Beacon``Payoad时,Cobalt Strike 会生成团队服务器独有的公钥/私钥对。团队服务器的公钥被嵌入 Beaconpayload stageBeacon会使用团队服务器的公钥对发送到团队服务器的会话元数据进行加密。

Beacon必须始终发送会话元数据,团队服务器才能从 Beacon会话中发布任务和接收输出。该元数据包含由该 Beacon生成的随机会话密钥。团队服务器使用每个 Beacon的会话密钥来加密任务和解密输出。

每个Beacon实现和数据通道都使用相同的方案。HTTP 和 DNS 混合Beacon中 A 记录数据通道的安全性与 HTTPS Beacon相同。

请注意,一旦 payload stage被执行,上述内容就适用。payload stagers由于体积小,没有内置安全功能。

# 4.4、Payload Staging

作为背景信息,值得一提的一个主题是payload Staging(分阶段载荷)。许多攻击框架将攻击与攻击执行的内容分离。攻击执行的内容称为payloadpayload通常分为两部分:payload stagepayload stager。 stager 是一个小程序,通常是手工优化的汇编指令,用于下载payload stager,将其注入内存,并将执行命令传递给它。此过程称为staging(分阶段)。

在某些进攻行为中,staging过程是必要的。许多攻击对于成功利用后可以加载到内存中并执行的数据量都有严格的限制。这极大地限制了你进行后渗透,除非分阶段加载你的后渗透payload

Cobalt Strike 在用户驱动的攻击中使用了分阶段技术。大部分项目在PayloadsAttacks中。这些地方使用的stager取决于与攻击配对的payload。例如,HTTP Beacon有一个 HTTP stagerDNS Beacon有 DNS TXT 记录stager。并非所有payload都有stager选项。没有stagerpayload无法使用这些攻击选项进行投递。

image-20230907130113409

如果你不需要staging,可以将其关闭。在 Malleable C2 配置文件中的 host_stage 选项设置为 false。这将阻止 Cobalt Strike 在其 Web 和 DNS 服务器上payload stage。这样做对于 OPSEC 有很大的好处。如果开启了staging,任何人都可以连接到你的服务器、请求一个payload、并分析它的内容,从而可以从payload配置中获取信息。

在 Cobalt Strike 4.0 及更高版本中,后渗透和横向移动行动避开了stager,并尽可能的选择去投递一个完整的payload。如果你禁用了payload staging,,那么除非你准备做后渗透那么你应该不会注意到此变动。

# 4.5、DNS Beacon

DNS Beacon 是 Cobalt Strike 最受欢迎的功能。此payload使用 DNS 请求将Beacon返回给你。这些 DNS 请求用于解析由你的 Cobalt Strike 团队服务器作为权威 DNS 服务器的域名。 DNS 响应告诉 Beacon 进入睡眠状态或连接到服务器下载任务。 DNS 响应还将告诉 Beacon 如何从团队服务器下载任务。

dnscomms2

在 Cobalt Strike 4.0 及更高版本中,DNS Beacon 仅是一个 DNS payload。该payload没有 HTTP 通信模式。这是与先前版本的一个变化。

# 4.5.1、数据通道

DNS Beacon 可以通过 DNS TXT 记录、DNS AAAA 记录或 DNS A 记录下载任务。该payload可以在到达目标时灵活地在这些数据通道之间进行切换。使用Beacon的模式命令可以改变当前Beacon的数据通道。

  • mode dns 是 DNS A 记录数据通道。
  • mode dns6 是 DNS AAAA 记录通道。
  • mode dns-txtDNS TXT记录数据通道。默认为DNS TXT记录数据通道。

请注意,DNS Beacon 直到有可用任务时才会 checkin 。使用 checkin 命令要求 DNS Beacon 在下次回连的时候 checkin

# 4.5.2、DNS 监听器设置

要创建 DNS Beacon监听器,请在主菜单中选择Cobalt Strike -> Listeners,然后点击Listeners选项卡底部的Add按钮

image-20230907133614821

image-20230907133644236

然后在New Listener窗口选择Beacon DNS 作为 payload 类型。

image-20230907133840445

设置监听器的名字。确保给新监听器起一个好记的名字,因为在 Cobalt Strike 的命令和工作流中,这个名字就是你要引用的监听器。

参数

  • DNS Hosts:点击 [+] 来添加一到多个与beacon通信的域名。你的 Cobalt Strike 团队服务器系统必须对你指定的域名具有权威性。创建一个 DNS A 记录然后指向你的Cobalt Strike 团队服务器。使用 DNS NS 记录来将多个域名或子域名委派到你的Cobalt Strike 团队服务器的 A 记录。

    Beacon payloadBeacon主机列表的长度限制为 255 个字符。这包括为每个主机随机分配的 URI 以及列表中每个项目之间的分隔符。如果超过长度,主机将从列表末尾删除,直到长度合适为止。团队服务器日志中将包含已删除主机的消息。

  • Host Rotation Strategy:主机轮换策略,该值配置Beacon行为以供选择,选择以下选项之一:

    • round-robin:轮询机制,选择按提供的顺序循环连接主机名列表。每个主机用于一个连接。
    • random:随机,选择后,每次尝试连接时都会从列表中随机选择一个主机名。
    • failover-xx:故障转移,选择尽可能长时间地使用工作主机。使用列表中的每个主机,直到它们达到连续故障转移计数 (x) 或持续时间段 (m,h,d),然后使用下一个主机。
    • rotate-xx:轮流,选择在一段时间内使用每台主机。在指定的时间段(m,h,d)内使用列表中的每台主机,然后使用下一台主机。
  • Max Retry Stategy:最大重试策略,此项配置Beacon在与团队服务器的连接尝试连续失败后退出的行为。有多个默认选项可供选择,也可以使用 LISTENER_MAX_RETRY_STRATEGIES 钩子创建自己的列表。请参考后续章节的LISTENER_MAX_RETRY_STRATEGIES

    • none:选择此选项可确保Beacon不会因连接尝试失败而退出。

    • exit-xxx:这些设置使用exit-[max_attempts]-[increase_attempts]-[duration][m,h,d]语法。max_attempt值是Beacon退出之前连续尝试失败的次数。 increase_attempts 是增加睡眠时间之前连续失败尝试的次数。duration 是设置新睡眠时间的分钟数、小时数或天数。

      如果当前睡眠时间大于新指定的持续时间值,睡眠时间将不会更新。睡眠时间将受当前抖动值的影响。成功连接后,失败尝试计数将重置为零,睡眠时间也将重置为先前的值。

  • DNS Host (Stager):配置 DNS Beacon 的 TXT 记录 stager。这个 stager 仅被用在要求显式stager 的 Cobalt Strike 功能中。你的 Cobalt Strike 团队服务器系统也必须对此域名具有权威性。

  • Profile :配置 Malleable C2 策略。

  • DNS Port (Bind):此字段指定 DNS Beacon payload 服务器绑定的端口。如果想要设置端口重定向器(例如接受端口 53 上的连接但将连接路由到另一个端口上的团队服务器的重定向器),则此选项非常有用。

  • DNS Resolver:允许 DNS Beacon 使用特定的 DNS 服务器,而不是使用目标服务器的默认DNS 解析服务。指定所需解析服务的 IP 地址。 DNS Beacon 的 stager 不使用此 DNS 解析器。

  • Guradrails:  Beacon Guardrials 允许用户创建一种方法来限制Beacon可以执行的目标。配置后,这些值将成为 Stageless 或 Windows Stageless payload生成器的默认guradrails

    按 ... 按钮打开 Guardrails 设置:

    image-20230912102807073

    image-20230912102829492

    IP Address:输入特定 IP 地址或网段的通用通配符:

    • 123.123.123.123

    • 123.123.123.*

    • 123.123..

    • 123...*

      User Name:输入一个特定的名称或一个值:

    • 支持结尾通配符“*”

    • 支持开头通配符“*”

    • 不区分大小写

      Server Name:输入特定的计算机名称:支持通配符“*”,不区分大小写

Domain:特定的域名,支持通配符“*”,不区分大小写

测试

要测试你的DNS配置,打开终端并输入 nslookup jibberish.beacon domain (domain 自行替换为 stager 域名)。如果你得到了一个 0.0.0.0 的 A 记录回复——说明你的 DNS 配置是对的。如果没有得到回复,那说明你的 DNS 配置不对、DNS Beacon 不会与你通信。

image.png

image-20230912133611658

备注

  • 确保你的DNS记录引用了你的网络接口的首选地址(primary address)。Cobalt Strike 的DNS 服务 器会一直从你的网络接口的首选地址发送响应。当 DNS 解析器从一台服务器请求信息,但是从另一台服务器接收回复时,DNS 解析器往往会丢弃回复。
  • 如果你在 NAT 设备后面,请确保用你的公网 IP 地址作为 NS 记录,并配置防火墙转发53端口上的 UDP 流量到你的系统。Cobalt Strike 包含一个控制 Beacon 的 DNS 服务器。
  • 要自定义 DNS Beacon的网络流量指示器,请参阅 Malleable C2 中的 DNS beacon
# 4.6、HTTP Beacon 和HTTPS Beacon

默认设置情况下,HTTP 和 HTTPS Beacon 通过 HTTP GET 请求来下载任务。通过 HTTP POST 请求传回数据。也可以通过Malleable C2来控制 payload 的行为和流量指标。

# 4.6.1、HTTP(S) 监听器配置

要创建 HTTP 或 HTTPS Beacon监听器,请在主菜单中选择 Cobalt Strike -> Listerners,然后点击Listerners选项卡底部的Add按钮。

image-20230918134307295

选择Beacon HTTPBeacon HTTPS作为Payload类型,并为监听器指定名称。

参数

  • HTTP(S) Hosts :按 [+] 来为HTTP Beacon增加一个或多个回连的主机。按 [-] 移除一个或多个主机,按 [X] 来清除当前的主机列表。如果有多个主机,可以在此对话框中粘贴以逗号分隔的回连主机列表。(主机列表的长度限制为 255 个字符.这包括为每个主机随机分配的 URI 以及列表中每个项目之间的分隔符。)
  • Host Rotation Strategy :配置轮换策略,与DNS Beacon中的配置类似。
  • Max Retry Stategy:最大重试策略,同DNS Beacon中的配置
  • HTTP Host (Stager):控制 HTTP Beacon 的 HTTP Stager 的主机。仅当你将此 payload 与需要显式 stager 的攻击配对时,才使用此值。
  • Profile:通过 Profile 字段,可以选择一个C2拓展文件变体。通过一个C2文件变体,可以在一个文件中指定多个配置文件的变量。使用变体文件之后,你设置的每个 HTTP或 HTTPS监听器会有不同的网络流量指标。
  • HTTP Port (Bind) :指定你的 HTTP Beacon payload web 服务器绑定的端口。如果你要设置端口弯曲重定向器(例如,接受来自 80 或443 端口的连接但将连接路由到团队服务器开在另一个端口上的连接,这样的重定向器),那么这些选项会很有用。
  • HTTP Host Header:如果指定 HTTP Host Header 值,会影响你的 HTTP stagers,并通过你的 HTTP 通信。这个选项使得通过 Cobalt Strike 利用域名前置变得更加容易。
  • HTTP Proxy:点击旁边的...按钮来为此 payload 指定一个显式的代理配置。
  • Gurardrails:同DNS Beacon中的配置
# 4.6.2、手动 HTTP 代理配置

(Manual) Proxy Settings 对话框提供了多个选项来控制 Beacon 的 HTTP 和 HTTPS 请求的代理配置。默认情况下,Beacon当前的进程/用户上下文使用 Internet Explorer 代理配置。

image-20230918144049723

Proxy Type 指定代理的类型。 Proxy Host和 Proxy Port 字段告诉 Beacon 使用的代理主机和端口。 Username 和 Password 字段是可选的,这些字段指定了 Beacon 用来对代理进身份验证的凭据。

Ignore proxy settings; use direct connection:(忽略代理设置;使用直连),如果勾选则配置Beacon强制使用直连,在不通过代理的情况下尝试发送HTTP 和 HTTPS 请求。

set以使用所需的代理设置更新Beacon对话框。按Reset将代理配置设置回默认配置。

注意 :手动代理设置仅影响 HTTP 和 HTTPS Beacon payload stage,不影响payload stager

# 4.6.3、Redirectors(重定向器)

重定向器是位于目标网络和团队服务器之间的系统。任何去往重定向器的连接将转发到你的团队服务器进行处理。通过重定向器,为你的 Beacon payload 提供多个回连主机。使用重定向器还有助于提升OPSEC ,因为它会使溯源团队服务器的真实地址变得更加困难。

Cobalt Strike 的监听器管理功能支持使用重定向器。只需在设置一个 HTTP 或HTTPS Beacon监听器的时候指定重定向器 IP (在 Host 字段填入)。Cobalt Strike 不会验证这个信息。如果你提供的 host 不隶属于当前主机(不是团队服务器的 IP),那么 Cobalt Strike 就假设它是重定向器。一种把服务器转变为重定向器的简单方法是使用 socat

下面是将80端口上的所有连接转发到位于192.168.12.100的团队服务器的80端口是socat语法:

socat TCP4-LISTEN:80,fork TCP4:192.168.12.100:80
# 4.7、SMB Beacon

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

# 4.7.1、SMB 监听器设置

要配置一个 SMB Beacon payload,通过 Cobalt Strike --> Listeners 。点击 Add 。选择Beacon SMB 作为payload选项。

image-20230918144314322

SMB Beacon 与 Cobalt Strike 中派生 payload 的大多数动作兼容。除了一些要求显式 stager的用户驱动的攻击(例如 Attacks --> Packages , Attacks --> Web Drive-by )。

Cobalt Strike 后渗透和横向移动行为派生一个 payload,会尝试为你承担对 SMB Beacon payload 的控制。如果你手动的运行 SMB Beacon,你将需要从一个父 Beacon 链接到它。

参数

  • Pipename (C2) :设置一个明确的管道名称或使用默认选项。
  • Gurardrails:同前
# 4.7.2、链接和取消链接

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 (拒绝访问):窃取域用户的token或使用 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 的控制。

# 4.7.3、隐蔽Beacon点对点通信

当多个受害者系统同时回连时,很难保持隐蔽。使用 Beacon 的点对点通信功能可以解决这个问题。该功能可让 Beacon 相互链接。链接的Beacon通过其父 Beacon 下载任务并发送输出。

使用mode smb Beacon 转换为等待另一个 Beacon 连接的对等体。

使用link [ip address]将当前 Beacon 链接到正在等待连接的对等方。当当前 Beacon check in时,其链接的对等方也会check in

一旦 Beacon 成为对等体,就无法再通过 HTTP 或 DNS 发送Beacon。如果你想杀死 Beacon 对等体,请使用 exit 命令。如果你想让主机通过 HTTP 或 DNS 发送Beacon,可以让Beacon对等体为你提供另一个 Beacon 会话。

Beacon Peer as a Payload(作为 Payload 通信

有些系统无法与互联网通信。在这些情况下,最好有一种方法来提供准备链接的Beacon,以便可以连接到它。使用[host] -> Login -> psexec 或 [host] -> Login -> psexec (psh)Beacon(连接到目标)监听器一起使用。这将在主机上运行 Beacon 对等点,无需连接到互联网即可进行部署。

你也可以设置一个监听器来发送点对点Beacon。为 windows/beacon_smb/reverse_tcp 创建一个监听器。该监听器将为你的点对点Beacon提供stage。在它启动后,你仍需要从另一个Beacon链接到它。

如果staging(分阶段)比较麻烦,你可以使用 Cobalt Strike 将完全staged的点对点Beacon导出为可执行文件DLLPowerShell 脚本或 shellcode 的原始 blob。点击主菜单上的Payloads -> Windows Stageless Payload ,然后选择 SMB Beacon

# 4.8、TCP Beacon

TCP Beacon 使用一个 TCP socket 来通过一个父 Beacon 通信。这种对等通信对同一台主机上的Beacon 和跨网络的 Beacon 都有效。

# 4.8.1、TCP监听器设置

要创建TCP Beacon监听器,在主菜单选择Cobalt Strike -> Listeners,然后点击Add,在New Listener面板选择PayloadBeacon TCP,并设置一个监听器名字。

image-20230918153449160

使用这种方法配置的 TCP Beacon 是一个绑定的 payload。一个绑定的 payload 会等待来自它的控制器(在此场景中,控制器是另一个 Beacon 会话)的连接。

参数

  • Port (C2) :控制 TCP Beacon 将等待连接的端口
  • Bind to localhost only:勾选是否让 TCP Beacon 绑定到 127.0.0.1。如果将 TCP Beacon 用于仅本地主机的操作,这是一个不错的选择。
  • Gurardrails :同DNS Beacon

SMB Beacon类似,TCP Beacon与 Cobalt Strike 中派生 payload 的大多数动作兼容。除了一些要求显式 stager 的用户驱动的攻击(例如 Attacks --> Packages , Attacks --> Web Drive-by )。

Cobalt Strike 后渗透和横向移动行为派生一个 payload,会尝试为你承担对 TCP Beacon payload 的控制。如果你手动的运行 TCP Beacon,你将需要从一个父 Beacon 链接到它。

# 4.8.2、链接和取消链接

 Beacon 控制台,使用 connect [ip address] [port] 来把当前的 Beacon 连接到一个等待连接的 TCP Beacon。当当前的会话 check in,它的链接的对等 Beacon 也会 check in

要销毁 Beacon 链接,请使用父会话或子会话控制台中的 unlink [ip address] [session PID]。之后,你可以从同一主机(或不同主机)重新连接 TCP Beacon

# 4.9、外置C2

External C2 是一种规范,允许第三方程序充当 Cobalt StrikeBeacon payload 的通信层。这些第三方程序连接到 Cobalt Strike 读取以其为目标的帧,并从以这种方式控制的paylod中写入输出帧。这些第三方程序使用External C2 服务器与Cobalt Strike 团队服务器进行交互。

External C2 监听器设置

要创建External C2 Beacon监听器,请在主菜单上选择 Cobalt Strike -> Listeners,然后点击Listeners 选项卡底部的Add按钮。选择External C2作为payload

image-20230918160250786

参数

  • Port (Bind):指定外部 C2 服务器等待连接的端口。
  • Bind to localhost only:设置外部 C2 服务器链接仅为本地主机

注意:外部External C2 监听器与其他 Cobalt Strike 监听器不同。无法用于Cobalt Strike 的后渗透来发送指令。这个选项只是一个数据接收端口。

规范

外部 C2 接口详见外部 C2 规范。

https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/externalc2spec.pdf

https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/extc2example.c

如果你想将本规范中的示例(附录 B)改编为第三方 C2,你需要遵循 3-clause BSD许可证。

第三方资料

以下是参考、使用或基于 External C2 的第三方项目和文章列表:

# 4.10、Foreign Listeners(外部监听器)

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

# 4.10.1、Foreign Listeners设置

点击主菜单上的Cobalt Strike -> Listeners,然后点击底部的Add,在New Listener面板中选择payloadForeign HTTP/Foreign HTTPS

image-20230918162539436

参数

  • HTTP(S) Host (Stager):此字段指定了外部监听器所在的主机名。
  • HTTP(S) Port (Stager):此字段指定服务器上的端口,外部监听器在此端口监听连接。
# 4.11、基础设施整合

Cobalt Strike 的分布式操作模型是为参与的每个阶段建立一个单独的团队服务器。例如,将后渗透基础设施和持久性基础设施分开是有意义的。你不希望如果一个后渗透行为被发现,这个基础设施将被重建。

一些行动阶段要求多个重定向器和通信通道选项。Cobalt Strike 4.x 对此有非常友好的设计。

image-20230918163630478

你可以将多个 HTTPHTTPS 和 DNS 监听器绑定到单独Cobalt Strike 团队服务器上。这些payload的配置还支持端口弯曲。这允许你的重定向器和 C2 设置中使用与你通信通道(80、443 或 53)共同的端口,但最需要将这些监听器绑定到不同的端口,以避免团队服务器系统上的端口冲突。

为了使你的网络流量指标多样化,Cobalt Strike 的 C2 拓展文件可能包含多种变体。变体是一种将当前 为了使你的网络指示器多样化,Cobalt Strike 的 Malleable C2 配置文件可能包含多个变体。变体是一种将当前配置文件的变体添加到一个配置文件中的方法。你可以在定义每个 HTTP HTTPS Beacon 侦听器时指定配置文件变体。

此外,还可以在一个团队服务器上定义多个 TCP 和 SMB Beacom,每个Beacon都有不同的管道和端口配置。一旦部署到目标环境中,任一个来自同一团队服务器的出口Beacon都可以控制任何一个这些 TCP 和 SMB Beacon 的 payload

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值