前期准备

  • IDEA 2022.1
  • java 11
  • cobalt strike 4.5

反编译

IDEA自带反编译软件,在idea目录的plugins\java-decompiler\lib\java-decompiler

在该jar文件同级目录创建srcbin文件夹,将cobalt strike服务器jar包放到bin目录中,执行如下代码,反编译后的源码在src目录中。

java -cp java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dsg=true bin/cobaltstrike.jar src

项目创建

创建lib目录,里面存放cobaltstrike.jar

创建decompiled_src目录,路面存放反编译后的源码

decompiled_src目录中的aggressor移动到src目录中。

1.png

项目结构 -> 模块 -> 依赖 -> + -> -> java中将cs jar包导入

2.png

配置工件

3.png

将反编译文件夹里面的MANIFEST.MF文件夹内容复制到src对应的文件,之后可以删除decompiler里面的META-INF

4.png

Javaagent暗桩去除

直接全局搜索-javaagent:,将检测代码都注释掉,完成后重新编译

5.png

如果修改完成后beacon上线报错,则是去除暗桩的时候出了问题。保险起见是删除while循环的相关逻辑

6.png

7.png

去除screenshot暗桩

位于beacon.BeaconC2#A()函数中,如果存在javaagent就会进入下面框出来的部分,导致screenshot返回一直报错。正确的分支是进入934行的代码。

8.png

源码调试Teamserver

teamserver 在server/TeamServer.java,先随便启动一下让IDEA生成默认配置,之后修改配置,将teamserver启动文件中vm选项填入diea启动配置的vm选项中,将启动参数填入程序实参

9.png 10.png