前言
Record CS二次开发,整理一下自己的思考,总结成三篇文章,分别为环境篇、源码篇和脚本篇。本篇为环境篇,内容为搭建CS二次开发的环境。
目录
0x00反编译CS
0x01环境配置
0x02写个Demo
0x00反编译CS
在CS二次开发的过程中,首先需要做的是对CS源码做反编译,有了源码才可对CS做二次开发,反编译所需工具为IntelliJ IDEA自带的java-decompiler.jar,如果你想要反编译cobaltstrike.jar,那么跟着我做如下操作:
一:新建CS、cs_bin、cs_src目录,结构如下
二:从IDEA的安装目录找到java-decompiler.jar,复制到CS目录下,java-decompiler.jar所在路径为idea2020\plugins\java-decompiler\lib
三:把需要反编译的CS Jar包复制到cs_bin目录下
四:准备好如上操作后,在命令行下运行如下命令
1 | java -cp .\java-decompiler.jar org.jetbrains.java.decompiler.main.decompiler.ConsoleDecompiler -dgs=true .\cs_bin\cobaltstrike.jar .\cs_src\ |
在cs_src目录下则会生成反编译后的jar包,对比反编译前后的jar包,可发现.class文件已经被反编译为.java文件
0x01环境配置
CS二次开发之前,还需做一些环境上面的准备。
一:工具方面需要用到IntelliJ IDEA
二:新建Project,目录为CS目录下的cs_project,其余Next,这里我新建了一个Project1的项目
三:项目下新建目录,结构如下
四:decompiler目录放反编译后的cs jar包解压缩后的文件、lib目录放反编译前的cs jar包
五:添加模块依赖,右键选择项目 -> 打开模块设置,按下图操作顺序,添加lib目录下的cobaltstrike.jar后选中应用
六:添加构件,同样在模块设置里面,按下图操作顺序,Main Class设置为aggressor.Aggressor,出现目录后点击确定
七:编辑运行配置,首先点击 运行 -> 运行配置,然后按照顺序,新建配置 -> 输入名称 -> 修改配置,其中,虚拟机选项为-XX:+AggressiveHeap -XX:+UseParallelGC(中间有空格),Java选项为1.8.0_271,这里说一下,部分Java环境无法启动CS,如果你想不出错的话,那么下载跟我一致的Java版本
0x02写个Demo
环境配置完了,那么写个Demo做CS二次开发环境配置的结尾,改个连接界面的介绍
当我们打开CS时,连接界面如下,我们可看到有相应介绍,那么我们能不能把这些介绍改掉呢?当然是可以的
Try it!!!
一:从反编译后的源码中搜索介绍的描述,搜索方式如下
在ConnectDialog.java找到两处疑似介绍,经过实验,发现第40行为连接界面的介绍代码所在地
ConnectDialog.java所在路径如下
二:Copy这个Java文件到src目录下,目录结构需要与原该文件在decompiler目录下结构一致,也就是说ConnectDialog.java需要Copy到/src/aggressor/dialogs目录下
三:代码修改,修改原来的介绍代码,我这里改为无论学习哪门语言都会print的一句话,hello world
四:代码修改后,之后就是编译运行了,编译、运行按钮如下图1、2
Tips:运行前还需把cobaltstrike.auth放入与编译后的CS Jar包同一目录
运行后结果如下,已修改成功
参考文章
红队CS Tips