环境搭建相关配置如下:
-
jdk15.0.2
-
idea 2022
-
cobalt strike 4.4
下载 4.4 版本的 cobaltstrike.jar:Release Cobalt Strike Cracked by K8gege · k8gege/Aggressor · GitHub,并对比一下 HASH。
-
反编译 cobalt strike 的 java 端代码。
找到 IntelliJ IDEA 2022.3.3\plugins\java-decompiler\lib 这个目录下的反编译工具 java-decompiler.jar,并创建如下文件夹,在下图的 cs_bin 文件夹下面放置我们下载的 cobaltstrike.jar。
输入如下命令开始反编译,反编译后的压缩包文件将会存放在 cs_src 目录下。
java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dsg=true cs_bin/CobaltStrike_4.4_000.jar cs_src
压缩包是个 jar 文件,解压后就是源码 .java 文件了。
2.使用 Idea 创建项目
打开 Idea 新建项目,命名为 mycobaltstrike 。在项目目录下新建两个文件夹。
decompiled_src:将 cs_src 里的 jar 压缩包,解压到 decompiled_src 目录下。
lib:将 cs_bin 里的 cobaltstrike.jar 文件拷贝到 lib 目录下。
3.配置项目
文件 -> 项目结构 -> 模块 -> 新建模块。
添加库时,要选 lib 里面的 jar 包。
文件 -> 项目结构 -> 工件 -> 添加 -> jar -> 来自具有依赖项的模块
配置主类为 aggressor.Aggressor。
当然目前项目的 src 目录下还没有 aggressor.Aggressor 我们从 decompiled_src 目录中复制到 src 目录下即可。
同时将 Lib -> cobaltstrike.jar -> META-INF -> MENIFEST.MF 内容拷贝到 src -> META-INF -> MENIFEST.MF 下。
4.构建工件
在 src/aggressor/Aggressor.java 文件的 A 函数中添加如下代码用于测试是否能够构建成功。
JOptionPane.showMessageDialog(null, "Hello");
点击构建工件。
成功的话,会出现一个 out 文件夹,里面存放着编译的 mycobaltstrike.jar 文件(这里的 CSAgent.jar 是我之后添加的,现在请忽略它)
5.添加 运行-调试 配置
运行 -> 编辑配置 -> 添加 -> jar应用程序
-
jar 路径选择 out 目录下的 mycobaltstrike.jar 文件。
-
虚拟机选项选择
-XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -Duser.language=en
6.CSAgent 绕过认证文件
调试配置已经配置好了,但是 cobaltstrike 启动需要 .auth 文件认证,如果现在运行的话会提示 your authorization file is not valid。
网上下载一个 CSAgent.jar 文件:CobaltStrike 4.4原版+通用白嫖破解及汉化加载器 - 🔰雨苁ℒ🔰
记住这个 CSAgent.jar 文件对应的哈希值 -javaagent:CSAgent.jar=5e98194a01c6b48fa582a6a9fcbb92d6
在虚拟机选项选择中新添加一项关于 CSAgent 的设置
-XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -javaagent:F:\cobalt_strike\mycobaltstrike\out\artifacts\mycobaltstrike_jar\CSAgent.jar=5e98194a01c6b48fa582a6a9fcbb92d6 -Duser.language=en
这样在调试运行将不会出现认证文件的提示了。
7.去除暗桩
cobaltstrike 4.4 有 5 个暗桩,对应如下文件。将他们从 decompiled_src 拷贝到 src 目录下。
BeaconData:
CommandBuilder:
Helper:
Starter:
Starter2:
完成后即可运行客户端。
但是客户端是无法登录的,因为没有 teamserver,下一期我们调试 teamsever。