记录一下Cobalt-Strike二次开发环境准备好后添加UI的一个一个过程

之前的文章记录了如何搭建环境,以及如何进行反编译。本篇文章记录如何添加自定义的UI,因为后续我们添加功能的话,肯定要跟UI打交道。这里我们先解决最简单的问题。

涉及到UI我们肯定考虑到菜单项,添加菜单项

其中最简单的一种方式是通过寻找关键字,然后在整个源码中去搜索关键字,来定位相关的文件和代码

我们选取Attacks中的Spear Phish为例子

decompiled_src右键选择Find in Path然后输入Spear Phish我们可以看到出现了两个结果

在第一个可以看到是添加的菜单项,是在default.cna脚本中去添加的。我们先打开,处理这个我文件,找到这个scripts目录中的default.cna,右键选择Refactor ——Copy File

在src目录中创建一个相同的scripts文件然后拷贝过去

回到搜索关键字处,我们可以看到其关联了一个方法openSpearPhishDialog接下来我们要搞清楚openSpearPhishDialog的意思

这里同样用关键词openSpearPhishDialog搜索一下,找到其对应的文件,继续右键选择Refactor ——Copy File在src中的aggressor中新建一个bridges目录然后把AggressorBridge.java拷贝过去

好了接下来我们来找到这两行的代码,并对两行代码进行标记,方便之后的查找

这里大概的意思是如果var1等于就会去创建openSystemProfilerDialog这个类,这个类有一个方法show()用来显示

基本明白了这么一个流程,结下来我们要添加自己的UI,在src目录下新建一个MyCustomDialogs然后右键New--Swing Ui中新建一个名为customabloutdialogs

这个时候就会打开一个UI设计界面,可以用它来进行我们自己的UI设计,这里在field name中输入This is pentes

接下来我们需要让它来显示出来,回到AggressorBridge.java中去,复制Cortana.put(var1, "&openSpearPhishDialog", this);到最后一行 把openSpearPhishDialog替换成customabloutdialogs

再继续到315行代码,添加customabloutdialogs这里的customabloutdialogs跟上面的要对应

再去customabloutdialogs.java中改掉 main(String[] args)改成showDog()其他的不用动

回到AggressorBridge.java中引入import MyCustomDialogs.customabloutdialogs;

在315行代码处则添加customabloutdialogs.showDog();因为暂时不涉及参数的传递,这里暂时先这样

下一步改default.cna创建一个单独的根菜单,添加如下两处,既添加完成

最后build然后连接上后,可以看到添加的菜单栏Custom

记录一下,接下来研究一下Cobalt-Strike的插件开发

参考资料:

红队学院CSTips004