声明
本文属于OneTS安全团队成员Gal0nYu的原创文章,转载请声明出处!本文章仅用于学习交流使用,因利用此文信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,OneTS安全团队及文章作者不为此承担任何责任。
1、反编译源码
使用在线反编译网站来反编译jar包
在线反编译网站地址:https://www.decompiler.com/
2、配置IDEA环境
创建项目
添加解压的反编译源码
新建lib目录,添加从github上下载的冰蝎项目
github项目地址:https://github.com/rebeyond/Behinder/releases
配置项目结构
添加Behinder.jar包
勾选点击应用
工件添加主类
选择第一个
配置完成
3、修改冰蝎流量的请求头
观察冰蝎流量特征
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36
```
Ctrl+Shift+R全局搜索特征application/json, text/javascript, */*; q=0.01
在Behinder.jar_Decompiler.com/net/rebeyond/behinder/core/Constants.java中
Ctrl+Shift+R全局搜索特征zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
在Behinder.jar_Decompiler.com/net/rebeyond/behinder/core/ShellService.java中
将要修改的源码复制粘贴到src目录
删除其他不需要修改的文件,只保存需要修改的文件
修改Constants.java中的相关名称为OneTS
修改ShellService.java中的UA头为OneTS-UA,AL头为OneTS-AL
将data.db放入根目录
重构项目,点击Build->Rebuild Project
点击Build->Build Artifacts
点击Build生成jar包
运行生成的behinder.jar
在burpsuite中可以观察到成功修改请求头
4、传输协议算法修改
查看传输协议配置
查看default_xor协议,里面有data[i] = (byte) ((data[i]) ^ (key.getBytes()[i + 1 & 15]))
全局搜索data[i] = (byte) ((data[i]) ^ (key.getBytes()[i + 1 & 15]))
可以找到传输协议的位置在
Behinder.jar_Decompiler.com/net/rebeyond/behinder/resource/transprotocol/default_xor.config
新增协议
填入对应的加解密算法
保存成功
点击分享保存到项目中
重构项目生成jar包重新运行,点击生成服务端
选择对应的传输协议,测试连接
成功使用
同理配置了其他协议,重构项目,获得魔改后的冰蝎
5、总结
免杀思路有修改webshell代码,修改调用逻辑改变操作行为的方式、修改工具指纹,本文从修改请求头和替换传输协议的加解密算法两方面来魔改冰蝎。