Cobalt Strike 安装与配置 
环境准备 
| 服务端 | 服务端环境 | GUI 客户端 | 
|---|---|---|
| Ubuntu / CentOS | Oracle Java 11 / 1.8 | Windows / macOS / Kali Linux | 
安装 Java11 
sudo apt install openjdk-11-jdksudo yum install java-11-openjdk-develbrew install java11Windows
https://www.oracle.com/java/technologies/downloads/#java11-windows
下载安装 jdk-11.0.18_windows-x64_bin.exe
检查是否安装成功 
➜  ~ java -version
java version "11.0.18" 2023-01-17 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.18+9-LTS-195)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.18+9-LTS-195, mixed mode)指定 Java11为 bash 默认版本
sudo update-java-alternatives -s java-1.11.0-openjdk-amd64文件说明 
网络上CS的版本很多,官方版本、破解版本、各式各样的二次开发版本中文件结构也不尽相同,一些互联网公开版本的破解版或二次开发版本:
- https://www.ddosi.org/cobalt-strike-4-7/
- https://github.com/TryGOTry/CobaltStrike_Cat_4.5
- https://github.com/TryGOTry/DogCs4.4
这里仅以共性的基础文件作说明
├── Cobalt_Strike_CN.bat					[Windows客户端启动程序(中文)]
├── cobaltstrike.auth						[Cabalt Strike 认证文件]
├── cobaltstrike.bat						[Cabalt Strike Windows客户端启动程序]
├── cobaltstrike.jar						[Cabalt Strike 主体程序]
├── cobaltstrike.store						[Cabalt Strike 生成的默认证书]
├── agscript								[运行测试cna脚本]
├── c2lint									[检查Profile语法和预览数据包]
├── peclone									[从dll中提取PE头]
├── third-party								[第三方工具]
│   ├── README.winvnc.txt					[vnc服务说明]
│   ├── winvnc.x64.dll						[x64版本VNC服务端DLL]
│   └── winvnc.x86.dll						[x86版本VNC服务端DLL]
└── teamserver								[Cabalt Strike 服务端启动程序]核心文件 
Cobalt Strike 4.7 版本后 cobaltstrike.jar 不再既是服务端也是客户端,新增下面两个文件:
├── cobaltstrike-client.jar					[Cabalt Strike 客户端文件]
└── TeamServerImage							[Cabalt Strike 服务端ELF文件]Agscript 
Cobalt Strike 4.8 版本默认没有提供 agscript 挂载脚本很不方便,直接复制其他版本的会报错
错误: 找不到或无法加载主类 aggressor.headless.Start原因是 jar 包名字变化了,把以下命令保存为 agscript 即可:
java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:uHook.jar -classpath ./cobaltstrike-client.jar aggressor.headless.Start $*C2lint 
Cobalt Strike 4.7 版本之前使用 cobaltstrike.jar 中的类进行 profile 检查
java -XX:ParallelGCThreads=4 -XX:+UseParallelGC -classpath ./cobaltstrike.jar c2profile.Lint $14.7 版本开始由于原核心文件分成单独的客户端和服务端文件,使用下面的脚本进行 profile 检查
print_section_header "Starting c2lint"
./TeamServerImage c2lint $*服务端安装 
为保证网络波动不影响服务端,推荐使用 screen 启动一个新窗口
screen -S cs在新窗口运行命令启动 Teamserver
./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
提示 Permission denied 需要赋予执行权限
chmod +x teamserver
chmod +x TeamServerImage按下组合键 ctrl+a+d 关闭当前 screen 窗口,运行下面的命令再次进入窗口
➜  ~ screen -ls   
There is a screen on:
        43250.cs       (07/06/2023 07:20:46 PM)        (Detached)
1 Socket in /run/screen/S-root.
➜  ~ screen -r cs客户端配置 
Java 参数 
- -Dfile.encoding=UTF-8--- 防止中文乱码
- -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1088--- 走Socks代理连接服务端
- -Xdock:icon=cobaltstrike.icns--- 任务栏图标显示
- -javaagent:xx.jar--- 加载外部jar包
macOS 
macOS下可以使用自动操作封装APP
cd /Users/Tools/CobaltStrike/ && java -Xdock:icon=cobaltstrike.icns -Dfile.encoding=UTF-8 -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1088 -javaagent:patch.jar -jar cobaltstrike.jar
保存后在资源库找到APP,右键显示简介,将cobaltstrike.icns 拖到图标处即可
效果:

Windows 
Cobalt_Strike_CN.bat
java -Dfile.encoding=UTF-8 -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:CSAgent.jar=CSAgent.properties -Duser.language=en -jar cobaltstrike-client.jar %*Linux 
start.sh
java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -Xms512M -Xmx1024M -jar cobaltstrike-client.jar连接服务端 
运行客户端脚本后会弹出连接信息,输入服务端IP地址、端口(默认50050)以及账号密码连接:

检查指纹是否与服务端指纹一致(Hash256)

点击是,连接成功后进入客户端界面

汉化加载 
汉化文件结构
├── CSAgent.jar						[客户端加载汉化]
├── CSAgent.properties				[客户端汉化配置文件]
├── patch.jar
├── resources
│   ├── bdetails.txt
│   ├── bhelp.txt
│   ├── ssh_details.txt
│   ├── ssh_help.txt
│   └── translation.txt
└── scripts
    └── default.cna					[服务端汉化]带汉化Agent启动脚本:
java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:CSAgent.jar=CSAgent.properties -Duser.language=en -jar cobaltstrike.jar配置信息【溯源反制】 
连接成功后会在当前用户根目录生成 .aggressor.prop 文件,包含连接的配置信息
➜  ~ cat .aggressor.prop
#Cobalt Strike (Aggressor) Configuration
#Wed Mar 29 16:04:00 CST 2023
connection.profiles=172.16.46.143
graph.clear_selection.shortcut=pressed ESCAPE
......
connection.profiles.172.16.46.143.password=123456
......修复补丁 
CVE-2022-39197 漏洞可以在捕获攻击者的 Beacon 后向 Teamserver 发送包含 XSS 的数据,经过反射后最终在攻击者的 Client 上执行 RCE,是一个可遇不可求的反制黑客的神洞。补丁通过 hook javax.swing.plaf.basic.BasicHTML的isHTMLString 方法来禁用swing的html支持。
使用方法 
将 patch.jar 放入 cobaltstrike 启动目录下
在 cobaltstrike 启动参数中加入 javaagent 启用补丁
-javaagent:patch.jar启动 cobaltstrike 输出 Successfully Patched. 即为禁用成功
====== CVE-2022-39197 patch @burpheart ======
Successfully Patched.