CobaltStrike-反编译自定义功能学习 (一)

最近看了RedCore红队学院的CSTips的直播课程,学习到了大佬,在渗透测试中的一些关于CS自定义功能的一些方法和步骤,于是按照大佬的方法自己尝试搞一下,本身自己Java代码能力很弱,慢慢学习,以此为记录

0x02 基本过程

(1). 反编译Jar包

平时自己在反编译时,只会通过jd-jui或者用其他一些反编译工具,这些工具反编译的结果和效果也不是很好 ,看了课程学会了新知识! 步骤如下

1. 通过IntelliJ IDEA自带的插件进行,反编译,插件路径为,IDE的跟目录下的plugins下的java-decompiler.jar:

image-20200628181814456

2. 因为这个只是一个插件,将jar文件拷贝出来,直接通过java -jar运行,会运行失败!

直接通过命令,运行jar里面的反编译主类:


# 具体命令如下:

java -cp java -cp ./java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true (1)需要反编译的jar文件路径 (2)反编译完的jar文件保存路径
  
# 反编译CS的Cobaltstrike.jar文件,命令为:

java -cp ./java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true ./cs_bin/cobaltstrike.jar ./cs_src/

3. 反编译完成后,解压反编译后的jar文件就会得到完整的源码,目录结构如下

(2) 配置IEDA的具体配置,处理相关依赖

1. 创建项目,导入反编译后解压的jar文件里面的具体代码,目录结构设置为一致:

image-20200628183939649
  1. 设置相关配置,处理依赖,添加jar路径,应用设置:
image-20200628184340221
image-20200628184516995

3. 配置主类的名称:

image-20200628184850052

(3) 接下来就是,修改代码:

你修改那个文件,就把jar文件下的.java文件,复制到src目录,如果需要更改子目录下的名称同名的文件,目录结构也要保持一致

下面以 windows/Aggressor.java文件为例

​ 1.将反编译源代码下的具体文件,复制文件到src目录:

image-20200628192537236

2. 创建同名的目录aggressor,复制文件进去:

image-20200628192557396

3. 修改文件,添加一个弹窗:

image-20200628190152854

4.保存打包为jar包,运行看一下效果

image-20200628190414700
image-20200628190424679

5. 输出文件在out文件夹下,运行,添加运行jar的配置文件:

image-20200628190851451
  1. 添加俩个vm选项,将auth文件放进目录:
image-20200628191349173
image-20200628191553414

7 . 可以直接运行,运行成功,弹出了我们设置的消息框,CS客户端也成功运行了:

image-20200628191641358
image-20200628191755803

0x03 To do

后续我们就可以通过这种方式来进行 自定义改造了,改造那个文件,就把源码复制进src,修改完后打包jar文件,就可以

  1. 添加自定义功能呢,实现一键信息收集到内网渗透
  2. 修改特征,自定以功能
  3. 等等…