5_Cobalt strike部署和基本功能
本文介绍了网络安全工具Cobalt Strike的核心功能、安装配置及基本操作。Cobalt Strike是一款渗透测试工具,支持团队协作、多种攻击模块和扩展性。详细讲解了服务端和客户端的部署步骤,包括监听器配置、木马生成及使用、Beacon模式交互、VNC远程控制、网络探测和端口扫描等功能。
网络安全是数字时代的基石,但学习过程中必须严守法律红线。
根据《中华人民共和国网络安全法》《数据安全法》等法律法规,任何未经授权的网络测试、数据访问或攻击行为均属违法。本文所有技术讨论与实例均基于合法授权的靶场环境(如Metasploitable、DVWA、Hack The Box等),严禁将文中方法应用于真实系统或非授权场景。
网络安全学习应以提升防御能力为目标,而非成为攻击工具。
本文所有内容均在非免杀的前提下进行,免杀内容后续文章会涉及。
千万注意,防火墙和杀毒软件都不能打开,否则会被当成病毒删除,文章内容无法复现。
一、工具介绍
Cobalt Strike是⼀款美国Red Team开发的渗透测试神器。这个⼯具成为了渗透测试中不可缺少的利器。其拥有多种协议主机上线⽅式,集成了提权,凭据导出,端⼝转发,socket代理,服务扫描、自动化溢出、多模式端口监听、木马生成(如Windows exe/dll、Java、Office宏病毒)以及钓鱼攻击(如站点克隆、浏览器自动攻击)等功能。同时,Cobalt Strike还可以调⽤Mimikatz等其他知名⼯具,因此⼴受⿊客喜爱。
Cobalt Strike它分为客户端与服务端,服务端是⼀个,客户端可以有多个,可被团队进⾏分布式协团操作。当然还有⼀点就是这款⼯具主要⽤于内⽹渗透以及APT攻击。
核心功能
- 团队协作:支持多客户端连接同一服务端,实现分布式操作。
- 攻击模块:包括Web drive-by、木马生成、钓鱼攻击等。
- 扩展性:支持通过脚本(如AggressorScripts)增强功能。
安全与检测
Cobalt Strike主要在内存中运行,难以被传统杀毒软件检测。但可通过内存分析或行为监控发现其活动。
二、安装与配置
1、环境要求:
需安装Java运行环境(如JDK17或以上)。客户端和服务端都是如此。
2、服务端部署(以CS4.8为例):
-
启动kali,把cobaltstrike放到
root/里去(以CS4.8为例) -
进⼊到CS4.8的服务端⽬录中,先赋予服务端运行权限,然后启动服务端
cd CS4.8 #切换到我们上传的CS4.8⽬录中 cd server #切换到server⽬录 chmod +x teamserver chmod +x TeamServerImage #赋予服务端运⾏权限 ./teamserver 192.168.247.128 1234 #启动teamserver(服务端)IP地址为kali(建立服务端的系统)的地址,1234为连接密码

启动后结果
# 启动命令格式。profile文件 是可选项 ./teamserver 服务端IP [profile文件]
地址为kali地址,目的是让Kali作为CS运行时候的服务端。
1234为客户端连接用的密码,可以随便设置
TIPS:
CobaltStrike 的流量隐藏技巧,需要配置相应的 profile 文件(CobaltStrike 全局变量配置文件)
参考连接:https://www.cobaltstrike.com/product/features/malleable-c2
3、客户端部署:
以win系统为例,通过cobaltstrike.jar或Cobalt_Strike_CN.bat连接服务端。
设置说明如下:

设置好以后,点击连接,进入客户端主界面。

三、基本操作示例
1、多客户端、服务端连接及通信
所有人聊天:交互框内直接输入聊天内容即可。例如:hello
私发信息: /msg 对方的用户名 聊天信息。例如:/msg test 你好

2、配置监听
一切行为开始之前的必备步骤!
如图所示,打开监听器

此时出来一个 listeners 对话框,选择 add 添加监听

进入以下监听设置界面,设置好以后,保存

Beacon HTTP 的核心功能是实现隐蔽的C2通信
reverse_http 表示反向(反射)即别⼈主动来连我
beacon_bind 表示正向(本地)即我们去连接别⼈
3、生成木马
通过以下菜单选择,进行木马生成的操作,此处以 win7 系统为例
点击 有效载荷 ==> Windows可执行程序(E)

进入以下设置界面

x64:如果勾选就会生成64位 x64 架构的木马;不勾选则是 32位 x86 架构的木马
listener : 选择监听
Output : 选择生成的木马类型

选择保存路径,且可以更改文件名(生成的木马文件),注意路径中不能有中文和特殊符号

点击确定后,木马生成完毕。
4、使用木马
假设,使用文件上传漏洞或社工的方法,将刚刚生成的木马 artifact_x64.exe 放在了 虚拟机win7 的网站根目录下,并启动了木马
上传木马到靶机的网站根目录

运行后,查看进程

查看 CobaltStrike 也监听到了靶机,首先将 回连间隔 设置为1秒,方便后续操作

5、使用beacon模式
在连接会话上点击鼠标右键 ==> 会话交互

注意看交互时使用的命令。直接输入的是 linux 的交互命令才可以
想使用win系统的终端命令,需要在命令前加 shell

6、远程 VNC模式
点开此模式,就可以查看目标机在做什么,但是默认是只能看不能操作的。
黑帽子图标点选以后就可以远程对目标主机进行操作。

7、网络探测
此模式可以探测到目标主机的网络状况。检查当前局域⽹的共享主机,如果存在共享的话会在列表中显示出来

也可在 视图 ==> 目标列表 进行查看

8、端口扫描
就是扫描靶机那些端口是活跃端口。选择端口扫描后,如下图所示

Ports : 自定义要扫描的端口号
max sockets :系统或程序为套接字连接分配资源的上限,超过此限制可能导致新连接失败。合理设置可避免资源耗尽,提升高并发场景下的稳定性。一般不做更改。
Discovery :发现端口,有三个选项,默认是 arp
arp协议:属于数据链路层的协议,利⽤时很难被防⽕墙检测和发现;
icpm协议:属于ping协议,很难被检测发现。
点击确定。此时会去扫描目标主机IP的整个网段,然后连带设置的端口范围,一并进行扫描。

补充知识–Socket
1.Socket–套接字
套接字(Socket)是网络通信的编程接口,它让不同设备上的应用能通过IP地址和端口号互相发送和接收数据。简单来说,它就像网络世界里的“电话机”,帮你建立连接、传输信息。
核心概念
- 定义:套接字是通信的端点,封装了协议(如TCP/UDP)、IP地址和端口号,让程序能跨网络通信。
- 作用:它屏蔽了底层协议细节,提供统一接口,让开发者不用直接处理网络协议,就能实现进程间通信。
关键特性
- 协议支持:支持TCP(可靠传输)和UDP(高效传输)等协议。
- 通信模型:基于客户端-服务器模式,通过套接字建立连接、交换数据。
- 跨平台性:从UNIX系统发展而来,现已成为网络编程的标准接口。
实际应用
- 网络编程:用于开发Web服务器、聊天工具等需要网络通信的应用。
- 进程通信:不仅支持本地进程间通信,还能实现跨主机的数据交换。
2.max sockets 推荐配置表:
-
**高并发网络服务(如 Web 服务器、API 网关)**
- 推荐值:
2048或更高 - 说明:这类服务需要处理大量并发连接,提高
somaxconn可以避免连接被拒绝,提升吞吐量。 - 相关参数:
net.core.somaxconn:控制监听队列长度,建议设置为2048。net.ipv4.tcp_max_syn_backlog:SYN 队列长度,建议设置为2048。
- 推荐值:
-
**分布式计算(如 NCCL 通信)**
- 推荐值:
32(nccl-fastsocket 默认)或64(原生 NCCL 默认) - 说明:NCCL 通信对 socket 数量敏感,但过多 socket 可能增加线程切换开销,需根据实际负载调整。
- 相关参数:
MAX_SOCKETS:NCCL 中控制 socket 数量的宏,默认32(nccl-fastsocket)或64(原生 NCCL)。
- 推荐值:
-
**文件传输服务(如 Samba、FTP)**
- 推荐值:根据并发会话数调整
- 说明:每个会话需要独立的 socket 资源,需根据并发数合理分配。
- 相关参数:
net.core.rmem_max和net.core.wmem_max:控制接收和发送缓冲区大小,建议根据 BDP(带宽延迟积)计算。
-
低延迟交易系统
- 推荐值:
1024或更高 - 说明:低延迟场景需快速处理连接,但需避免过度分配导致资源浪费。
- 相关参数:
net.core.somaxconn:建议设置为1024或更高。net.ipv4.tcp_rmem和net.ipv4.tcp_wmem:调整缓冲区大小以降低延迟。
- 推荐值:
-
**容器化环境(如 Kubernetes)**
- 推荐值:
1024或更高 - 说明:容器化环境需为每个 Pod 分配独立 socket,需根据 Pod 数量调整。
- 相关参数:
net.core.somaxconn:建议设置为1024或更高。net.ipv4.ip_local_port_range:控制本地端口范围,建议设置为1024 65000。
- 推荐值:
-
物联网(IoT)设备
- 推荐值:
128或更低 - 说明:IoT 设备资源有限,需限制 socket 数量以避免资源耗尽。
- 相关参数:
net.core.somaxconn:建议设置为128或更低。net.ipv4.tcp_rmem和net.ipv4.tcp_wmem:调整缓冲区大小以节省内存。
- 推荐值:
-
游戏服务器
- 推荐值:
512或更高 - 说明:游戏服务器需处理大量玩家连接,需平衡性能和资源消耗。
- 相关参数:
net.core.somaxconn:建议设置为512或更高。net.ipv4.tcp_rmem和net.ipv4.tcp_wmem:调整缓冲区大小以降低延迟。
- 推荐值:
-
视频流媒体服务
- 推荐值:
1024或更高 - 说明:视频流媒体需处理大量并发连接,需提高 socket 数量。
- 相关参数:
net.core.somaxconn:建议设置为1024或更高。net.ipv4.tcp_rmem和net.ipv4.tcp_wmem:调整缓冲区大小以提升吞吐量。
- 推荐值:
-
**数据库服务(如 MySQL、PostgreSQL)**
- 推荐值:
512或更高 - 说明:数据库需处理大量并发查询,需合理分配 socket 资源。
- 相关参数:
net.core.somaxconn:建议设置为512或更高。net.ipv4.tcp_rmem和net.ipv4.tcp_wmem:调整缓冲区大小以提升性能。
- 推荐值:
-
混合负载环境
- 推荐值:
1024或更高 - 说明:混合负载需平衡不同应用需求,需根据实际负载调整。
- 推荐值:
9、进程列表
可查看⽬标服务器的进程,kill杀死相关进程,或者进⾏token值伪造等等~功能⽐较强⼤。而这些功能的实现,都需要对话框下边那一排按钮

四、CS插件
1、主要作用及种类
Cobalt Strike 插件非常多,主要分为社区贡献和商业定制,核心功能是增强内网渗透、信息收集、凭证窃取、权限维持和后渗透,知名插件包括巨龙 (Ladon)、LSTR、欧拉 (Euler)、梼杌 (Taotie)、XLS(谢公子的插件)等,它们提供了更多扫描、漏洞利用、进程管理、持久化、凭证dump、跨平台上线(如 CrossC2)等功能。
主要插件类型和功能举例:
- 巨龙 (Ladon): 包含漏洞检测、密码读取、横向移动(RCE)、服务器扫描等模块。
- LSTR: 专注于凭证窃取与权限维持。
- 欧拉 (Euler) / 梼杌 (Taotie): 增强了域内信息收集和横向移动能力。
- XLS/谢公子插件: 提供定位域管理员、信息收集、万能密码、白银票据、内网扫描等。
- PostExpKit: 包含进程注入、权限提升、用户操作等后渗透模块。
- CrossC2: 用于在 Linux 等不同平台实现上线和通信。
- 其他: 还有针对特定漏洞(如CVE)、绕过防护(WAF/杀毒软件)的脚本和模块。
这些插件的作用是:
- 信息收集: 发现域用户、管理员、内网资产。
- 凭证攻击: Dump 数据库哈希、使用万能密码、白银票据。
- 横向移动: 远程执行命令、利用漏洞(RCE)进行内网渗透。
- 权限维持: 增加后门、维持会话。
- 隐蔽性: 绕过杀毒软件(AV/EDR)和 Web 应用防火墙(WAF)。
如何获取/使用:
- 许多插件作者在 CSDN、GitHub、腾讯云等平台分享。
- 通常以
.cna(Beacon)、.bin或通过 Script/Plugin 菜单加载。
2、安装方法
以 巨龙 (Ladon) 为例。插件的路径上不能有中文或特殊符号,否则容易出现错误。
选择菜单如下图

选择插件的 .cna 格式文件并加载

ready 状态打勾,说明安装正常

五、插件的使用
在连接状态窗口,鼠标右键,就会出现安装好的插件

选择相应的功能,按照功能提示就可以正常使用插件了。
六、CS和MSF联动
当我们使⽤ CS ⽣成的⽊⻢连接到⽬标服务器之后虽说 CS 功能⽐较强⼤。但是因为漏洞库和功能模块有限,所以最好的⽅法是联动kali 系统的 MSF ,调⽤ MSF 强⼤的漏洞和功能库去做更多的操作。
具体步骤:
1、Kali 启动 MSF
另开终端窗口,启动MSF
msfconsole

2、kali 设置监听
use exploit/multi/handler #选择⼯具
set payload windows/meterpreter/reverse_http #设置监听的会话(注意会话类型要和CS的会话⼀致)
set lhost 10.0.0.9 #设置IP地址(IP地址为kali的监听的机器的IP地址,和CS中保持⼀致)
set lport 7777 #设置端⼝(和CS中⾃定义的端⼝保持⼀致)
run #开始监听

此时监听状态已开启。
3、CS创建新的监听
创建⼀个Foreign HTTP的监听。其中 IP 地址为 MSF 的 ip地址(即Kali的IP),端⼝与Kali中设置的一致

4、CS增加会话
右键 ==> 凭证提权 ==> 新建会话

选择刚刚新建的会话 nsf

Kali状态显示建立连接成功。Kali中输入的命令就会传递到CS中执行,并返回给Kali

七、本文总结与心得
1、文档核心内容总结
- 工具概述
Cobalt Strike(CS)是一款渗透测试工具,支持多客户端协作,核心功能包括团队协作、攻击模块(如Web钓鱼、木马生成)和扩展性(通过AggressorScripts脚本增强),主要用于内网渗透和APT攻击。其运行依赖Java环境,分为服务端(单节点)和客户端(多节点)架构。 - 部署与配置
- 服务端:需在Kali系统中部署,通过
teamserver命令启动,需指定IP和连接密码,并可配置profile文件隐藏流量。 - 客户端:Windows系统通过
cobaltstrike.jar或批处理文件连接服务端,配置IP、端口和密码即可进入操作界面。
- 服务端:需在Kali系统中部署,通过
- 基本操作流程
- 监听配置:通过
listeners模块添加监听,支持reverse_http(反向连接)和beacon_bind(正向连接)等模式。 - 木马生成:选择
Windows可执行程序,配置架构(x64/x86)、监听和输出类型,生成后需避免中文路径。 - 会话管理:通过Beacon模式执行命令(需加
shell前缀调用Windows命令),支持VNC远程控制、网络探测、端口扫描等功能。
- 监听配置:通过
- 高级功能
- 插件扩展:支持加载
.cna格式插件(如Ladon、LSTR),增强信息收集、凭证窃取和横向移动能力。 - 与MSF联动:通过
Foreign HTTP监听将CS会话转发至Metasploit,利用MSF的漏洞库扩展攻击能力。
- 插件扩展:支持加载
2、心得与注意事项
- 环境与安全
- 需关闭防火墙和杀毒软件以避免工具被拦截,但实际渗透中需结合免杀技术(文档后续将涉及)。
- 服务端IP需使用Kali本地地址,客户端连接时需确保网络可达,密码复杂度建议提高以防止未授权访问。
- 操作技巧
- 监听配置:优先选择
reverse_http模式,隐蔽性更强;端口扫描时建议使用arp协议减少被检测风险。 - 木马生成:根据目标系统架构选择x64/x86,路径避免中文和特殊符号,可结合钓鱼或文件上传漏洞投递。
- 插件与联动:Ladon插件适合内网扫描,MSF联动可弥补CS漏洞库不足,需注意会话类型和端口一致性。
- 监听配置:优先选择
- 风险与合规
- 工具仅用于授权测试,未授权使用可能违反法律;操作过程中需记录日志并及时清理痕迹。
- 流量特征可能被EDR检测,需通过
profile文件自定义HTTP头、URI等参数伪装正常流量。
更多推荐
所有评论(0)