小迪安全v2023学习笔记(一百四十六讲)—— Webshell篇魔改哥斯拉打乱特征指纹新增后门混淆过云查杀过流量识别
文章目录
- 免杀对抗——第一百四十六天
- Webshell篇&魔改哥斯拉&打乱特征指纹&新增后门混淆&过云查杀&过流量识别
- Webshell工具 — 哥斯拉godzilla
- 简介
- 流量特征
- 魔改哥斯拉 - JAR反编译打包构建
- 魔改哥斯拉 - 防识别-打乱特征指纹
- 魔改哥斯拉 - 防查杀-新增后门插件
免杀对抗——第一百四十六天
Webshell篇&魔改哥斯拉&打乱特征指纹&新增后门混淆&过云查杀&过流量识别
Webshell工具 — 哥斯拉godzilla
简介
- 和冰蝎一样,哥斯拉(Godzilla)也是一款常用的Java开发的Webshell权限管理工具,具有如下特点:
- 通信加密:使用 AES、XOR、RSA 等加密算法对通信数据进行加密,支持 自定义密钥 和 自定义加密算法,每个 Shell 可配置独立密钥,实现"一人一密"
- 跨平台兼容:客户端基于 Java,支持 Windows、Linux、macOS 等主流操作系统,服务端支持 JSP/ASP/ASPX/PHP 等多种脚本语言
- 功能丰富:支持命令执行、虚拟终端、文件管理、SOCKS 代理、端口转发、内存马注入、内网穿透、数据库管理、自定义插件等
- 我们平时主要是用哥斯拉4.1版本,它的传输流程和冰蝎一样,本地加密之后发送到目标主机,当通信的时候才解密进行通信,因此能够在一定程度上进行免杀:


流量特征
- 同样,由于哥斯拉比较出名,所以它默认版本的流量特征基本都被研究透了,所以我们要对他进行魔改,以此来绕过检测
- 哥斯拉的强弱特征如下:
- 强特征:
- 请求包的Cookie中最后会有一个分号
- 默认请求包为Base64编码,并且请求体以
pass=eval...&key=....开头,并且初始化会产生一个比较大的数据包,在进行后续操作时产生的数据包相对较小 - 如果请求体采用 Base64 编码,响应体返回的也是 Base64 编码的数据。响应体的特征为:一个 32 位的 MD5 字符串 按照一半拆分,分别放在 Base64 编码 的数据的前后两部分。整个响应包的结构体征为:
md5前十六位 + base64 + md5后十六位。 - 连接时会发送三个POST数据包:
- 请求1:发送一段固定代码(payload),返回内容为空
- 请求2:发送一段固定代码(test),返回内容为固定字符串,如下:
72a9c691ccdaab98fL1tMGI4YTljO/79NDQm7r9PZzBiOA==b4c4e1f6ddd2a488,解密后即为ok。如果连接失败返回内容为空,且不发起请求3 - 请求3:发送一段固定代码(getBacisInfo),返回内容为固定字符串(对应服务器信息)
- 需要注意的是:使用哥斯拉时点击测试连接会立即发起请求1和2,如果弹出success并点击确认会立即发起请求3
- 弱特征:
- UA头可能会显示类似于Java/1.8.0_121之类的字符
- Accept字段默认为
text/html, image/gif, image/jpeg, *; q=.2, /; q=.2 - 所有响应中Cache-Control都为
no-store, no-cache, must-revalidate
- 其他特征:
- 哥斯拉使用的是 ICMP 协议数据报文,而 ICMP 流量本身就不高,所以较难在大流量中检测。ICMP 数据报文的载荷部分 Length 值固定为 92 字节,这是它的重要特征。
- 在默认脚本编码的情况下,JSP 会出现 xc、pass 字符和 Java 反射(
ClassLoader,getClass().getClassLoader()),Base64 加解码等特征。而 PHP 和 ASP 则为普通的一句话木马,数据报文的 Payload 内容以 “godzilla” 开头,这也是检测的特征标志。

魔改哥斯拉 - JAR反编译打包构建
-
怎么反编译以及如何打包构建就不用说了吧?和上节课冰蝎魔改一模一样:

-
这里的主类是
core.ui.MainActivity,怎么找的小迪说就是凭开发经验了:

-
在魔改的时候,只用把需要修改的代码部分放到
/src目录下即可
魔改哥斯拉 - 防识别-打乱特征指纹
-
参考文章:webshell免杀(三)——哥斯拉流量特征 - 智爱的博客
-
上面说过哥斯拉的弱特征有UA头、Accept字段,所以我们就从这里入手,比如这里先找到特征,直接搜“Mozilla”:

-
修改完成后编译运行,可能会报出哈希校验失败的情况,因为作者做了防篡改保护机制:

-
我们可以去代码中找一下这段检测,在
core/ApplicationConfig.java文件中,将检测代码给注释掉,然后再构建运行jar包就可以了:


-
我们上线抓包看看刚才修改的特征是否已经成功生效:

-
可以看到成功修改,然后修改其他地方也是类似的,这里就不再赘述,当然,和冰蝎一样,我们可以直接在配置中修改:

魔改哥斯拉 - 防查杀-新增后门插件
-
参考文章:哥斯拉-流量分析OR流量隐藏OR免杀初探
-
由于哥斯拉比冰蝎的魔改要难一些,我们这里就只是做简单的操作尝试去免杀Webshell和流量,来到这个文件夹:

-
我们这里主要是针对php的加密器进行改装,所以其他的就自己下去研究
-
我们找到这个文件夹之后,它下面有一个template目录(如果没有就自己创建一个,这里我也没反编译出来),在PhpXor.java文件中可以看到它的payload生成逻辑:

-
我们要做的就是直接对这个eval.bin文件做免杀,比如这里用工具生成一个免杀木马:

-
然后我们再用这个生成默认的php马,就可以实现静态免杀了,但是这样做的缺陷就是只能我们静态去修改,而且密码和密钥是固定的,我们之后可以将免杀脚本集成到哥斯拉里面去,让他真正实现动态生成免杀木马
-
除了原本的加密器,我们还可以自己添加加密器,同样,哥斯拉中的插件也可以自己去添加、修改,但是由于比较难,这里就不展开讲了,可以自行下去尝试
