哥斯拉二开(学习)

Milktea 发布于 2024-11-18 95 次阅读 1359 字 最后更新于 2024-11-18


最近学习了一下冰蝎和哥斯拉的二开,但也只是学习了一丢丢皮毛,这里记录一下(跟着大佬的文章,手动尝试一下,学习二开一些相关内容)

准备

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用到这些就够了。其实是其他的我也不太懂。

加密部分放在下一个文章中更新。

此作者没有提供个人介绍
最后更新于 2024-11-18