最近学习了一下冰蝎和哥斯拉的二开,但也只是学习了一丢丢皮毛,这里记录一下(跟着大佬的文章,手动尝试一下,学习二开一些相关内容)
准备
php5 /php7、java 1.8
准备工作,这里还是建议使用idea调,第一步配环境就给我卡死了,调了很久都没有调明白,太菜了。
首先致敬一下原版哥斯拉,原版地址https://github.com/BeichenDream/Godzilla
我们这里使用的最新的v4.0.1-godzilla版本,进行逆向及二开。
反编译网址,https://www.decompiler.com/,直接拖入jar包即可,很方便。
当然也可以使用idea的插件进行反编译,都一样。
环境搭建
先改个名称试试看
下载好原版哥斯拉,然后拖到反编译网站,反编译完成后会看到一个压缩包,解压。
解压完毕,开始在idea搭建环境,首先创建项目(此处不做解释)。

这是创建项目后内容,在此处创建lib文件夹,将原版的哥斯拉文件放入其中。

再将刚刚反编译后的文件夹拖到项目目录下。

接着建立依赖关系。
文件>项目结构

打开后,在从左到右依次添加对应模块

接着添加主类

也是从左到右添加,这个时候,我们会发现,并没有其他大佬文章中说的有ui里的那个主类,是因为少了一部。
我们要将反编译的src\META-INF/MANIFEST.MF源文件,放到src下面,注意路径。
然后同样复制XXXXXX/core/ui/MainActivity.java文件到src目录下。(这个地方目录一定要对齐。这里一定要清楚,不要在原版的那个和编译的那些文件里改,想改什么,把目录对齐,创建复制文件。)

然后添加主类就会有对应的类文件。

这样我们的环境就搭建成功了。
修改名称
现在就可以编译了,我们先简单的改一下标题。
复制一份文件,godzilla的标题在core/MainActivity.java,复制到src/core/MainActivity.java,(在再次强调,没有的目录要创建一下,目录一定要对齐。)

对应的src文件夹中

OK,接下来构造编译
第一步构建,完成之后构建jar文件


编译完成后,在项目目录下面的out/artifacts/下面就会有编译好的godzilla

这个时候是无法打开的,会提示hash错误

OK,我们继续更改
将core/ApplicationConfig.java复制到src/core/ApplicationConfig.java。

将中间的四行对比注释掉即可。
然后重新build,重新artifacts编译即可。

可以看到已经更改成功。
全局改造
我们知道,godzilla等webshell管理工具都有一些特征,我们可以加一下混淆或者简单改改。
ua,accept,Cache-Control(弱特征)
在/core/ui/component/frame/ShellSetting.java的文件中,
大概290行,设置一下ua头
直接给他写死,这样的话既可以每次打开不用自己改了。

还有下面的,
this.leftTextArea.setText("page=1&size=10&");
this.rightTextArea.setText("&Name=manager");
左右追加数据,我们也给他写死,这样,就不用每次写了。

当然这里你想加什么都可以,这里只是修改一些参数。
本地搭建环境测试一下修改的效果。(使用小皮创建一个本地web环境)

将编辑好的哥斯拉生成的马子放到web目录下

测试连接

然后使用burp抓包测试,可以看到burp在连接时会先发送三个包,这里更改的特征已经生效

cookie(强特征)
这是哥斯拉一个很明显的强特征——就请求包中cookie中有分号。

这里咱们没有办法验证,听就行了,给他去掉。
笔者改的哥斯拉版本在src\util\http\HttpResponse.java下。
`cookies.forEach(cookie -> sb.append(String.format(" %s=%s;", cookie.getName(), cookie.getValue())));
这里就去掉`;`即可。

打包编译。可以看到已经去掉;

godzilla 结构
没开始之前咱们先看下一Godzilla的shell大概构造

在shell目录下,有三个目录,cryptions是加密/解密模块,也就是发送的payload的在本地加密,发送,从客户端解密返回给用户,payload就是各种功能,比如读取,上传,文件、数据库的操作等等,plugins很好理解,就是各种语言的插件,bypassdisable_function,提权,压缩,内存马等等。
这里说一个shell目录,shell目录下有各种语言的shell,每个语言下有一个Generate.java文件,他是用来生成godzilla木马的框架。然后就是要生成木马。我们点开lib目录下的godzilla.jar,然后是shell php下面的

这些*.bin对应的是这个生成的加密器。也就是xor base64啥的

相应的下面三个是加密 解密数据包的代码。其他的语言也大差不差。
这就是godzilla shell方面大致的理解,目前二开godzilla用到这些就够了。其实是其他的我也不太懂。
加密部分放在下一个文章中更新。
Comments NOTHING