魔改哥斯拉反编译重打包后,如何打乱特征指纹实现Webshell免杀对抗?

摘要:🦖 魔改哥斯拉 | 反编译重打包 + 特征指纹打乱 + Webshell免杀对抗 本文记录对哥斯拉(Godzilla)v4.01 进行魔改的完整过程,涵盖 JAR 反编译环
🦖 魔改哥斯拉 | 反编译重打包 + 特征指纹打乱 + Webshell免杀对抗 本文记录对哥斯拉(Godzilla)v4.01 进行魔改的完整过程,涵盖 JAR 反编译环境搭建、特征指纹修改、Webshell 免杀对抗等内容。 免责声明:本文仅用于学习研究,请勿用于非法用途。 📌 目录 环境准备 JAR 反编译与项目搭建 打乱特征指纹 Webshell 免杀对抗 利用文件包含绕过 D 盾 替换生成模板实现生成即免杀 使用现成免杀工具适配哥斯拉 总结 🛠️ 环境准备 主要用到以下工具: jadx:JAR 反编译工具,用于提取源码 decompiler.com:在线反编译工具(备用) IDEA:Java 开发环境,用于修改和重新打包 JDK 1.8:哥斯拉是基于 JDK 8 编写的,版本要对应,用高版本会有一堆兼容性问题 🔧 JAR 反编译与项目搭建 反编译 用 jadx 打开 godzilla.jar,或者上传到 decompiler.com 进行反编译: decompiler.com 有时候会出问题,建议两个工具都备着 另一款在线反编译工具:https://www.decompiler.com/(这个工具导出的项目中文会被 Unicode 编码,属于正常现象,不影响使用) 配置 IDEA 项目 选 JDK 1.8,版本不对会报一堆奇怪的错误: 添加原版哥斯拉 JAR 包为依赖,这样第三方库的类都从原版 JAR 里读取,不需要单独解决依赖问题: 📁 目录结构说明 这里的目录结构设计很关键,理解清楚能省很多麻烦 项目根目录/ ├── godzilla/ # 反编译的完整源代码(只用来复制文件,不参与构建) ├── lib/ # 原版 jar 包,作为依赖引入 └── src/ # 自己修改的源码目录(核心!参与构建) 注意 src 目录里的文件必须保持和原代码一样的目录结构,比如要改 core/ApplicationConfig.java,就在 src 里建 core/ 目录再放进去。 只保留一个 src 目录参与构建,这样只有你改过的文件会被重新编译,其他的都走原版 JAR: 配置主类入口 找到 godzilla/META-INF/MANIFEST.MF,里面写明了程序的主类: 在 IDEA 的工件配置里填入对应的主类: 构建打包 先点击构建项目: 再点击构建工件重新打包: 看到生成了新的 JAR 文件: 直接运行会提示 hash 校验错误,这是正常的,因为代码被我们重新编译了,hash 值当然变了: ✅ 能弹出提示说明程序能运行,环境搭建成功!接下来开始改代码 🎯 打乱特征指纹 1️⃣ 去除 Hash 校验 全局搜索关键词,找到 godzilla/core/ApplicationConfig.java: 把校验逻辑改掉,有两种方式: // 方法一:去掉取反,让校验永远通过 if (jarHashString.equals(hashString)) // 原来是 !equals // 方法二:直接把校验代码全删了,只保留正常逻辑 ⚠️ 修改的文件要复制一份到 src 目录里,并且保持目录结构不变,否则改动不生效 如果 src 里复制了太多文件导致构建报错,把不需要的文件删掉就行 如果碰到找不到某个包的问题,自己去网上下载对应的 JAR 放到 lib 目录下,再加入依赖就好了: 2️⃣ 修改流量特征(UA/Headers) 先用 Burp 抓一下原版的数据包看看长什么样: 原版数据包: POST /shell.php HTTP/1.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Host: 127.0.0.1 Content-type: application/x-www-form-urlencoded 这个 UA 是哥斯拉的默认特征,流量设备一眼就能识别。
阅读全文