Cobalt Strike基本使用
目录来源: https://xz.aliyun.com/t/3975
简介
Cobalt Strike: C/S架构的商业渗透软件,适合多人进行团队协作,可模拟APT做模拟对抗,进行内网渗透。
Cobalt Strike的C/S架构
- 客户端(Client GUI)
- 团队成员使用的图形化界面
- 服务器(Team Server)
- 控制 - Team Server是Cobalt Strike中所有payload的主控制器,与victim的所有连接
bind/reverse
都由Team Server管理。 - 日志记录 - Cobalt Strike中发生的所有事件 保存在
logs
文件夹 - 信息搜集 - 收集在后渗透阶段发现的、或攻击者在目标系统上用于登录的所有凭据
credentials
- 自定义脚本 -
cat teamserver
可看到该文件是一个简单的bash脚本(可根据自己要求修改) 调用Metasploit RPC服务msfrpcd
并启动服务器cobaltstrike.jar
- 控制 - Team Server是Cobalt Strike中所有payload的主控制器,与victim的所有连接
基本步骤
- (可选步骤)选取C2域名
- (可选步骤)扩展Team Server - 选取或自定义一个C2通信配置文件Malleable C2 profile 可设置有效的SSL证书等
- (可选步骤)扩展Client功能 - 使用AggressorScripts修改或扩展Cobalt Strike 3.* 的客户端功能
- 启动团队服务器Team Server
- Client 登录Team Server
- 启动监听器Listener
- 生成payload
- (可选步骤)对payload进行免杀 尽量避免被victim的杀毒软件报毒
- 使用任意途径以实现victim主机执行payload
- 对victim主机所在网络进行后渗透操作
运行环境
-
Team Server 推荐运行环境
- Kali Linux 1.0, 2.0 – i386 and AMD64
- Ubuntu Linux 12.04, 14.04 – x86, and x86_64
-
Client GUI 运行环境
- Windows 7 and above
- macOS X 10.10 and above
- Kali Linux 1.0, 2.0 – i386 and AMD64
- Ubuntu Linux 12.04, 14.04 – x86, and x86_64
扩展性
CS的自带的某些功能可能已过时,但其扩展性是非常强大,利用好CS的扩展性十分有用!
- Team Server 的扩展性
- C2通信配置文件 - Malleable C2 profile
- 定义C2的通信格式,修改CS默认的流量特征,以对抗流量分析
- 使用前强烈推荐使用团队服务器上的脚本对配置文件进行本地的单元测试以检查语法
./c2lint my.profile
- 每个Cobalt Strike团队服务器只能加载一个配置文件,如果需要多个配置文件,可以启动多个团队服务器,每个都有自己的配置文件,可从同一个Cobalt Strike客户端连接到这些服务器
- 外部C2(第三方C2) - External C2 (Third-party Command and Control)
- C2 over chat protocols
- C2 over network covert channels
- C2 trough database fields
- C2 trough synced locations (owncloud / RSYNC etc.)
- ...
- C2通信配置文件 - Malleable C2 profile
- Client GUI 的扩展性
- AggressorScripts脚本 - 修改或扩展Cobalt Strike 3.* 的客户端功能(可实现自定义菜单创建,日志记录,权限维持等),参考官方的Aggressor Script Tutorial and Reference
- 具体的脚本文件
scriptName.cna
-harleyQu1nn/AggressorScripts
- 具体的脚本文件
- AggressorScripts脚本 - 修改或扩展Cobalt Strike 3.* 的客户端功能(可实现自定义菜单创建,日志记录,权限维持等),参考官方的Aggressor Script Tutorial and Reference
启动团队服务器Team Server
执行sudo ./teamserver
看到如下说明:
[*] Generating X509 certificate and keystore (for SSL)
[*] ./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
<host> is the (default) IP address of this Cobalt Strike team server
<password> is the shared password to connect to this server
[/path/to/c2.profile] is your Malleable C2 profile
[YYYY-MM-DD] is a kill date for Beacon payloads run from this server
-
启动参数
./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
- 1 - 必填参数
host
本服务器外网IP/域名 - 2 - 必填参数
password
Client GUI连接时需要输入的密码 - 3 - 可选参数
Malleable C2 communication profile
指定C2通信配置文件 该功能体现了CS的强大扩展性 - 4 - 可选参数
kill date
指定所有payload的终止日期
- 1 - 必填参数
# 启动Team Server
# team server 必须以 root 权限运行 以便于监听端口号为0–1023的listener (个人认为可以使用放行端口权限,可以不再使用root)
# 默认使用50050端口 监听来自团队成员CS Client的连接请求
# 例
sudo ./teamserver this.CShost.com pAsSXXXw0rd