前期准备
- IDEA 2022.1
- java 11
- cobalt strike 4.5
反编译
IDEA自带反编译软件,在idea目录的plugins\java-decompiler\lib\java-decompiler
在该jar文件同级目录创建src
、bin
文件夹,将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
目录中。
项目结构 -> 模块
-> 依赖
-> +
-> 库
-> java
中将cs jar包导入
配置工件
将反编译文件夹里面的MANIFEST.MF
文件夹内容复制到src对应的文件,之后可以删除decompiler里面的META-INF
Javaagent暗桩去除
直接全局搜索-javaagent:
,将检测代码都注释掉,完成后重新编译
如果修改完成后beacon上线报错,则是去除暗桩的时候出了问题。保险起见是删除while循环的相关逻辑
去除screenshot暗桩
位于beacon.BeaconC2#A()
函数中,如果存在javaagent就会进入下面框出来的部分,导致screenshot返回一直报错。正确的分支是进入934行的代码。
源码调试Teamserver
teamserver 在server/TeamServer.java
,先随便启动一下让IDEA生成默认配置,之后修改配置,将teamserver启动文件中vm选项填入diea启动配置的vm选项中,将启动参数填入程序实参