Cobalt Strike 是一款专为红队渗透测试和高级威胁模拟设计的专业工具,由安全专家 Raphael Mudge 开发,现隶属于 Fortra 公司。其核心功能是通过模拟真实攻击场景,帮助安全团队评估网络防御能力,覆盖从初始入侵到持久化控制的全流程。
核心原理:分层架构与隐蔽通信
Cobalt Strike 采用 C2(Command and Control)框架,由三部分构成:
- Team Server(服务端):作为指挥中枢,监听特定端口(如 50050)并管理所有通信,支持多用户协作。其核心功能包括:
- 监听器(Listener):配置通信协议(HTTP/HTTPS/DNS/SMB 等)和端口,生成 Beacon 后门的上线地址。
- 模块化设计:允许加载自定义攻击模块(如 Mimikatz 集成、凭证窃取脚本),并支持与 Metasploit 联动cobaltstrike.com。
- Client(客户端):操作员通过图形界面远程控制服务端,执行生成载荷、管理会话、横向移动等操作。
- Beacon(信标):植入目标系统的微型后门,定时与服务端通信(类似间谍定期汇报),支持反弹 Shell、进程注入、代理转发等功能。
通信技术上,Cobalt Strike 采用 多协议混淆策略:
- HTTP/HTTPS:伪装成正常 Web 流量,支持自签名证书和 SSL 加密。
- DNS 隧道:通过 DNS 查询(A 记录或 TXT 记录)传输数据,隐蔽性极强。
- SMB/TCP:用于内网横向移动,可绕过部分防火墙规则。
最新版本(如 4.11.1)还引入 DNS over HTTPS(DoH) 和 ObfSetThreadContext 注入技术,进一步提升对抗检测能力。
下载地址:【免费】CobaltStrike4.3资源-CSDN下载
安装Cobalt Strike
1、系统要求
- 服务端:仅支持 Linux(Kali/Ubuntu 等),需 Java 11+、2GB 内存、500MB 磁盘空间hstechdocs.helpsystems.com。
- 客户端:支持 Windows、macOS 和 Linux,建议使用图形界面系统。
下载好之后,我们复制一份放在服务端,一份放在客户端,在这里我把服务端放在ubantu系统,客户端放在windows11主机上
2、由于服务端要求使用JDK,所以没有安装的需要安装JDK
(1)Java 环境配置
# 在 Kali/Ubuntu 中安装 OpenJDK 11
sudo apt update && sudo apt install openjdk-11-jdk
sudo update-java-alternatives -s java-11-openjdk-amd64 # 设置默认 Java 版本
(2)下载与解压
将 Cobalt Strike 安装包(如 cobaltstrike.tar.gz
)上传至 Linux 服务器,解压后进入目录:
unzip cobaltstrike.zip
cd cobaltstrike
(3)启动 Team Server
chmod +x teamserver # 赋予执行权限
./teamserver <服务器IP> <连接密码> # 例如:./teamserver 192.168.1.100 mypassword
在启动过程,会出现一个常见问题,就是监听过程需要监听80端口,80端口大多数情况下是被占用,在这里我们需要关闭80端口所在的服务
使用命令查看占用80端口的进程以及所在的服务
sudo netstat -tulnp | grep 80
可以看到是apache2占用80端口,我们把它关掉
ok,再次使用命令
./teamserver ip地址 连接密码
ok,服务端运行成功,将其放在后台,接下来运行客户端,客户端直接运行start.bat文件即可
输入你在服务端设置的IP地址以及密码,其它的默认,然后连接即可
连接成功后就是如图所示
接下来先介绍一下各个模块的功能以及作用
顶部菜单栏与核心模块
1. 连接模块
- 位置:工具栏左侧的
+/-
图标 - 在 Cobalt Strike 的 连接对话框(Connect Dialog) 中,左侧列表上方的 加号(+) 并非直接发起连接,而是用于 “新建连接配置文件”,核心作用是 保存常用的 Team Server 连接参数(IP、端口、用户、密码),方便后续快速复用。
意思就是可以添加多个服务端进行连接
2、Attacks(攻击)模块
- 子功能(菜单栏展开后):
- Payload Generator(载荷生成):
- 生成不同格式的恶意文件(
.exe
、.dll
、PowerShell 脚本、Java 小程序等),适配钓鱼、漏洞利用等场景。 - 支持 免杀混淆(通过配置文件调整代码特征,对抗杀毒软件)。
- 生成不同格式的恶意文件(
- Web Drive-by(水坑攻击):
- 搭建恶意网站,植入漏洞利用代码(如 Java 反序列化、浏览器溢出),诱使目标访问后植入 Beacon。
- Spear Phish(鱼叉钓鱼):
- 发送钓鱼邮件,附件或链接携带 Beacon 载荷,精准攻击特定目标。
- Payload Generator(载荷生成):
3. Reporting(报告)模块
- 功能:导出渗透测试报告,包含:
- 会话记录:哪些主机被控制、执行了哪些命令、横向移动路径。
- 凭证列表:抓取的账号密码、NTLM 哈希、Kerberos 票据。
- 漏洞利用:使用的攻击模块(如 EternalBlue 结合 Beacon)。
- 作用:向客户或团队输出 攻击链完整复盘,明确防御薄弱点(如内网凭证泄露、未修复漏洞)。
工具栏图标(从左到右关键功能)
图标 | 功能 | 作用 |
---|---|---|
耳机图标 | Listeners | 管理监听器,进行配置,删除等操作 |
网格图标 | Targets View | 查看已控制的目标主机列表,标记内网拓扑(如域控制器、关键服务器)。 |
钥匙图标 | Credentials | 管理抓取的凭证(密码、哈希、票据),用于横向移动(如 psexec 登录其他机器)。 |
下载图标 | Downloads | 查看从目标主机下载的文件(如敏感文档、日志)。 |
相机图标 | Screenshots | 查看目标主机的屏幕截图,辅助判断权限(如是否进入管理员桌面)。 |
齿轮 / 脚本图标 | Scripts/Aggressor | 加载自定义脚本(扩展功能,如自动抓取凭证、集成 BloodHound 分析域内权限)。 |
接下来就是配置监听器以及生成木马进行连接
1、配置,在点击左上角耳机图标后,点页面最下面的add进行监听器的配置
其中名字自取,hosts默认IP地址,端口任意,其它保持默认即可,然后保存即可。
接下来就是木马生成,在右上角的attack模块那里
点第一个,然后第四个即可
这个模块生成exe木马文件的模块,在Listener那里选择刚刚创建的那个,然后根据情况是否需要选择x64,最后生成即可
选择保存的位置,位置随意,由于并没有进行免杀操作,生成以后会被杀掉,最好关闭杀毒软件进行尝试
然后进行运行
出现这个即为成功,然后就可以右键,出现以下菜单进行一系列操作,这里不再展示
今天的工具分享就到这里。