Cobalt Strike工具
介绍
Cobalt Strike(简称CS)是一款GUI框架式渗透工具,集成了端口转发、服务扫描、自动化溢出、多模式端口监听、winexe 木马生成、Win DLL木马生成、Java 木马生成、Ofice宏病毒生成、木马捆绑、钓鱼攻击等功能。其中具体的钓鱼攻击手段包括 站点克隆、目标信息获取、Java执行、浏览器自动攻击等。
Cobalt Strike主要用于团队渗透测试,可以说是内网渗透中的团队渗透神器,Cobalt Strike能够让多个渗透测试人员同时连接到团队服务器上,共享攻击资源、目标信息和Session。众人拾柴火焰高,当发现一个内网控制点后,为了使渗透收益最大化,最好的办法就是跟团队共享资源,给其他成员提供同样的接人点,Cobalt Strike就很好地做到了这一点。因此Cobalt Strike作为一款协同APT工具,凭借其针对内网的渗透测试和作为APT的终端控制功能,变成众多APT组织的首选工具。
Cobalt Strike 工具分为服务端和客户端,服务端一般运行在具有独立可访问公网IP的服务器上,方便与被测试目标主机进行连接。客户端则运行在渗透测试人员自己的主机上,通过连接服务端对目标主机进行测试。Cobalt Strike工具的服务端和客户端都依赖于Java环境,并且只能是JAVA8
Cobalt Strike 的官方下载地址网上找寻。
这里我使用的是某安全团队二次开发的从GitHub下载的版本,链接如下,**自行甄别是否有木马**
https://github.com/k8gege/Aggressor/releases/tag/cs
环境
服务端:虚拟机win10
客户端:主机win10
当然,你可以尝试使用Linux作为服务端,本人使用kali未正确启动服务端,所以转而使用Windows作为服务端
启动
在客户端和服务端均放入该工具包的文件
服务端
在服务端工具包的目录下,运行
1 | TeamServer.exe IP pass |
IP为服务端的IP,pass为客户端连接服务端所需的密码
如果是Linux就是运行对应的teamserver文件,记得给该文件添加可行性权限,可能还需要使用sudo来提升权限执行
1 | chmod +x ./teamserver |
只要出现Team server is up on 0.0.0.0:4488,就证明服务端已经启动,并且服务端开放的端口为4488
客户端
在客户端的工具包中运行TeamServer.exe
重点是Host、Port和Password,Host是服务器的IP地址,Port是服务端开放的访问端口,Password是刚刚设置的连接密码,其余的不重要,User是以什么名称连接到这个团队服务器中
功能
Cobalt Strike
Cobalt Strike 选项下的功能模块及其含义如下所示
| 功能模块 | 含义 |
|---|---|
| New Connection | 建立新的连接,允许连接多个服务器端 |
| Preferences | 偏好设置(界面、控制合样式设置等) |
| Visualization | 窗口视图模式(结果输出模式) |
| Pivot Graph | 透视图模式 |
| Session Table | Session表模式 |
| Target Table | 目标表模式 |
| VPN Interfaces | VPN 接入 |
| Listeners | 监听器(创建Listener) |
| Script Manager | 脚本管理功能 |
View
View 各个功能模块的功能释义
| 功能模块 | 含义 |
|---|---|
| Applications | 显示目标机的应用信息 |
| Credentials | 凭证(所有通过Mimikat2 抓取的密码都存储在这里) |
| Downloads | 下载文件 |
| Event Log | 事件日志,主机上线记录及团队交流记录 |
| Keystrokes | 键盘记录 |
| Proxy Pivots | 代理模块 |
| Screenshots | 查看目标机截图 |
| Script Console | 脚本控制台 |
| Targets | 显示目标主机 |
| Web Log | Web 日志 |
Attacks
如下为Attacks各个功能模块的功能释义
Packages:攻击包
| 功能模块 | 含义 |
|---|---|
| HTML Application | 生成 HTA 木马 |
| MS Office Macro | 生成office 宏病毒文件 |
| Payload Generator | 生成各种语言版本的payload |
| USB/CD AutoPlay | 生成自动播放执行的木马文件 |
| Windows Dropper | 捆绑器,对文档类进行捆绑 |
| Windows Executable | 生成 EXE 的 payload |
| Windows Executable(S) | 生成无状态的 EXE 的payload |
Web Drive-by:钓鱼攻击
| 功能模块 | 含义 |
|---|---|
| Manage | 对开启的 Web 服务进行管理 |
| Clone site | 克隆网站 |
| Host File | 提供 Web 以下载某文件 |
| Scripted Web Delivery | 提供Web 以下载 powershell |
| Signed Applet Attack | 使用 Java 自签名的程序进行钓鱼 |
| Smart Appplet Attack | 自动检测 JAVA 版本进行测试 |
| System Profiler | 获取系统信息 |
Spear Phish:邮件钓鱼
使用
控制一台目标主机的步骤:
1 | 创建监听器 --> 生成控制木马文件/命令 --> 将木马文件上传到目标主机 --> 目标主机执行木马文件/命令 |
- 创建监听器
监听器的作用:等待被植入恶意代码(payload)的目标主机回连,建立C2(命令与控制)通道。
Name:任意取一个有意义的名字即可
Payload:
**Beacon HTTP **:通过HTTP通信
Beacon DNS:通过DNS查询通信
Beacon HTTPS:加密HTTPS通信
Beacon SMB:通过命名管道(内网横向)
Beacon TCP:原始TCP连接
Payload Options:
HTTP Hosts:指定Beacon回连的域名或IP地址
- 单地址:
192.168.231.130- 多地址:
192.168.231.130, malware.example.com- 支持通配符:
*.example.comHost Rotation Strategy:多个C2服务器时的轮询策略
- 选项:
- round-robin:循环使用(默认)
- random:随机选择
- failover:故障转移
HTTP Host:Stage下载服务器地址
Stager:小型初始载荷,用于下载完整的Beacon
通常与C2服务器相同,但可分离增加隐蔽性
Profile:通信流量伪装模板
作用:修改HTTP请求头、URI结构等,模仿合法流量
自定义Profile:可导入Malleable C2配置文件
HTTP Port:Beacon与TeamServer的通信端口
80端口优势:
- 通常是Web服务端口,不易被防火墙拦截
- 可伪装成正常Web流量
其他常用端口:443(HTTPS)、8080、8888
- 生成控制木马
这里使用常见的exe木马
Attacks -> Packages -> Windows Executable生成exe木马
- 将木马上传到目标主机,等目标主机运行exe木马文件,CS上就会有上线的主机