Cobalt Strike渗透之HTTPS/SMB/TCP Beacon横向移动实战1(跳板机Windows)

目录

[一、Cobalt Strike原理](#一、Cobalt Strike原理)

[1、Conbalt Strike简介](#1、Conbalt Strike简介)

2、Beacon简介

(1)Beacon协议

(2)Beacon类型

(3)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、上线https木马

6、横向渗透


本系列讲解内网渗透中跳板机为Windows系统的情况下,通过CobaltStrike生成的https beacon与跳板机建立连接,再基于跳板机进行横向渗透的过程。

  • 创建监听器 & 生成 HTTPS Beacon

    • 在 C2 服务器(20.1.0.21)上创建 HTTPS 监听器(如 mooyuan_https),并生成 Windows 可执行的 HTTPS Beacon 文件。
  • 控制跳板机

    • 通过漏洞利用或钓鱼攻击,将 HTTPS Beacon 上传至跳板机(10.33.212.200)并执行,使其回连 C2 服务器,建立加密 HTTPS 通信。
  • 准备横向移动

    • 在 C2 服务器上创建 SMB 或 TCP 监听器(如 mooyuan_smbmooyuan_tcp),并生成对应的 Beacon 文件(SMB Beacon 或 TCP Beacon)。
  • 上传并执行 SMB/TCP Beacon 到内网主机

    • 通过已控制的跳板机(10.33.212.200)将 SMB/TCP Beacon 上传至内网目标主机(10.100.10.100),并执行该 Beacon。
  • 建立 SMB/TCP 通道

    • 在跳板机的 HTTPS Beacon 会话中执行 spawn 命令(如 spawn mooyuan_smbspawn mooyuan_tcp),使跳板机在内存中注入 SMB/TCP Beacon 的 Shellcode,并连接目标内网主机(10.100.10.100)。

    • 内网主机通过 SMB 管道或 TCP 连接回连跳板机,形成隐蔽通信通道。

  • 数据通信与控制

    • 攻击机(C2)→ 跳板机 :通过 HTTPS 加密发送控制指令(如 shell whoami)。

    • 跳板机 → 内网主机:通过 SMB 管道或 TCP 连接转发指令。

    • 内网主机 → 跳板机:返回执行结果。

    • 跳板机 → 攻击机(C2):将数据加密后通过 HTTPS 回传。

整体流程图如下所示。本篇主要讲解CS原理以及使用CobaltStrike生成https beacon木马的上线过程,即攻击机与跳板机建立会话连接的流程(如下整体流程的前两个流程)

复制代码
sequenceDiagram
    participant C2 as 攻击者<br>20.1.0.21(CobaltStrike)
    participant Jumpbox as 跳板机<br>10.33.212.200(HTTPS Beacon)
    participant Internal as 内网主机<br>10.100.10.100(SMB Beacon)

    Note over C2: 阶段1:控制跳板机
    C2->>Jumpbox: 创建HTTP监听并生成HTTPS Beacon,上传Beacon到跳板机10.33.212.200中运行
    Jumpbox->>C2: Beacon上线(20.1.0.21←HTTPS→10.33.212.200)
    
    Note over C2: 阶段2:准备横向移动
    C2->>C2: 创建SMB或TCP 监听以及对应的Beacon文件
    
    Note over Jumpbox: 阶段3:部署执行
    Jumpbox->>Internal: 通过跳板机上传SMB或TCP Beacon到10.100.10.100,并在目标内网执行,开启监听

    
    Note over C2: 阶段4:建立SMB或TCP通道
    C2->>Jumpbox: 跳板机内存中注入SMB或TCP Beacon的shell,连接目标内网主机10.100.10.100
    Jumpbox->>Internal: 建立SMB或TCP连接<br>(10.33.212.200↔10.100.10.100)
    Internal->>Jumpbox: 连接确认

    Note over C2: 阶段5:数据通信
    C2->>Jumpbox: 发送指令<br>(20.1.0.21→10.33.212.200 HTTPS)
    Jumpbox->>Internal: SMB或TCP转发<br>(10.33.212.200→10.100.10.100)
    Internal->>Jumpbox: 返回数据
    Jumpbox->>C2: 加密回传<br>(10.33.212.200→20.1.0.21 HTTPS)

一、Cobalt Strike原理

1、Conbalt Strike简介

Cobalt Strike(简称 CS)是一款由美国安全公司 Rapid7(原由 Strategic Cyber LLC 开发)推出的商业化渗透测试工具,以强大的内网渗透、社会工程学攻击和团队协作功能著称,广泛应用于红队演练、渗透测试和网络安全评估场景。Cobalt Strike的核心架构如下所示。

  • C2 服务器:由渗透测试人员部署,负责接收 Beacon 的连接、下发命令,通常运行在公网或目标内网可访问的服务器;

  • 客户端(Cobalt Strike Client):图形化操作界面,攻击者通过客户端连接 C2 服务器,管理 Beacon 会话和执行攻击命令。

  • Beacon 后门:植入目标主机的恶意程序,通过 C2 服务器与攻击者通信;

2、Beacon简介

Beacon 是 Cobalt Strike Strike 中最核心的组件之一,本质上是一种植入目标主机的恶意后门程序,负责与攻击者控制的 C2(Command & Control,命令与控制)服务器通信,并执行攻击者下发的指令。它是攻击者实现对目标主机持久化控制、内网横向移动的关键工具,具有隐蔽性强、功能灵活等特点。

(1)Beacon协议

Cobalt Strike 中 Beacon 支持的主要通信协议及其特点如下表所示。

协议类型 核心特点 适用场景 优势 局限性
HTTP 基于 HTTP 协议通信,使用 GET/POST 方法传输数据,可伪装成正常网页请求 目标网络允许 HTTP 出站流量(80 端口),需绕过简单的网络过滤 兼容性强,常见网络环境均支持 流量特征较明显,易被 HTTP 层检测设备识别
HTTPS 基于 HTTPS 协议(TLS 加密)通信,数据传输经过加密,伪装成加密的 Web 通信 目标网络允许 HTTPS 出站流量(443 端口),需规避深度包检测(DPI) 加密传输,难以被中间人解密,隐蔽性优于 HTTP 需配置 SSL 证书,部分环境可能对 HTTPS 流量严格审查
DNS 利用 DNS 协议的查询 / 响应过程传递数据(如 TXT 记录、A 记录) 目标网络仅允许 DNS 流量出站(53 端口),其他协议被封锁(如 HTTP/HTTPS 受限) 绕过端口限制,适合严格管控的网络环境 数据传输效率低,每次传输的数据量有限
SMB 基于 Windows SMB 协议(445 端口),通过命名管道(Named Pipe)进行进程间通信 内网横向移动时,已控制主机与目标主机间的通信(无需通过公网 C2 服务器) 隐蔽性强,利用系统原生协议,不易触发异常告警 仅限 Windows 系统,且需在同一内网网段
TCP 基于原始 TCP 协议建立持久连接,直接通过端口传输数据 简单网络环境,无复杂协议过滤,需要稳定的长连接 通信效率高,配置简单 易被防火墙检测到异常 TCP 连接,隐蔽性较差

(2)Beacon类型

根据功能和使用场景,Beacon 主要被分为stager(分阶段)和stageless(不分阶段)类型。在实际红队工作中,很多时候不能在目标上执行过大的代码和文件,因此出现了,用一个小一点的代码去拉取更大的功能代码的情况。我们把这个一段一段的拉去代码执行的过程叫分阶段执行,因此出现了Stage(分阶段)和Stageless(不分阶段)这两个词。

  • **Staged Beacon(分阶段载荷):**体积较小,先在目标主机上运行一个 "引导程序",再从 C2 服务器下载完整的 Beacon payload 并执行。适合通过漏洞利用(如缓冲区溢出)等对载荷大小有限制的场景。

  • **Stageless Beacon(无阶段载荷):**包含完整功能的独立程序,无需额外下载组件,可直接运行。体积较大,但稳定性更高,适合通过钓鱼邮件附件、恶意软件等方式投递。

  • **Named Pipe Beacon(命名管道 Beacon):**基于 Windows 命名管道(Named Pipe)通信,主要用于内网横向移动时的主机间通信(如通过 SMB 协议在已控制主机与目标主机间建立隐蔽通道)。

(3)Beacon流程

  • **生成 Beacon 载荷:**在 Cobalt Strike 客户端中,通过 "Payload Generator" 生成适合目标环境的 Beacon 载荷(如 EXE、DLL、PowerShell 脚本等)。

  • **投递与执行:**通过钓鱼攻击(如诱骗用户打开带恶意宏的文档)、漏洞利用(如永恒之蓝)等方式,将 Beacon 载荷植入目标主机并执行。

  • **建立会话:**Beacon 执行后,主动连接 C2 服务器,Cobalt Strike 客户端会显示新的 "Beacon 会话"。

  • 远程操控: 攻击者通过客户端向 Beacon 下发命令(如 shell ipconfig 查看网络配置、getsystem 提权、portscan 扫描内网),实现对目标主机的控制和内网渗透。

二、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地址,如下所示。

  • name: 为监听器名字,配置为mooyuan_https
  • HTTP Hosts: 进行回连的主机(shell反弹的主机),也就是我们kali的ip(如果是阿里云,则填阿里云主机的公网ip),可以设置多个,我这里使用的是公网ip地址20.1.0.21
  • HTTP Hosts(Stager): Stager的马请求下载payload的地址(一般也是和上面的ip填一样)
  • HTTP Port(C2): payload回连的端口,这里选择使用10086

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

2、配置NAT模式

将端口7777映射到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木马

点击有效载荷-windows可执行程序(stageless),效果如下图红框所示。

在弹出的生成框中点击下图红框中的选项部分,在选择payload的listener中选择mooyuan_https的监听器,点击选择,效果如下图所示。

配置完毕后点击下图红框中的"生成"按钮,将生成的windows可执行程序重命名为https.exe。

生成成功后效果如下图所示,提示已经成功保存https.exe。

4、受害靶机运行Https Beacon

使用远程桌面连接靶机10.33.212.200,将木马上传到靶机中。双击https启动木马程序,如下图所示。

5、上线https木马

受害靶机运行Https Beacon后,查看cs状态,如下所示成功上线。

6、横向渗透

点击https会话,右键-凭证提取-抓取哈希(hash),效果如下图所示。

相关推荐
xing.yu.CTF2 天前
ATT&CK实战系列-红队评估(九)(上)
网络·安全·web安全·横向移动·域渗透·内网对抗
mooyuan天天2 天前
CobaltStrike之MSF转发CS联动:原理详解与渗透实战
内网渗透·metasploit·msf·cobalt strike
xing.yu.CTF3 天前
Hackmyvm靶场之Always渗透
web安全·渗透测试·横向移动·内网对抗
mooyuan天天3 天前
内网渗透之Thinkphp5提权实战+reGeorg代理横向移动(CVE-2018-20062)
内网渗透·横向移动·thinkphp·regeorg·cve-2018-20062·thinkphp代码执行漏洞
jieyu11193 个月前
内网后渗透攻击--linux系统(权限维持)
网络安全·内网渗透
jieyu11193 个月前
内网后渗透攻击--域控制器安全(1)
安全·web安全·内网渗透·域控制器安全
人衣aoa4 个月前
PG靶机 - Pelican
web安全·网络安全·渗透测试·内网渗透
jieyu11194 个月前
icmpsh、PingTunnel--安装、使用
内网渗透·隧道技术·工具使用
jieyu11195 个月前
内网后渗透攻击过程(实验环境)--2、权限提升
内网渗透·提权攻击