冰蝎,从入门到魔改
字数 2120 2025-08-15 21:33:52
冰蝎工具深度解析与魔改指南
一、冰蝎概述
冰蝎是一款动态二进制加密网站管理客户端,作为第二代webshell管理工具,解决了第一代工具"菜刀"流量特征明显的问题。
主要特性
- 基于JAVA开发,跨平台使用
- 最新版本v2.0.1(2019年发布)
- 支持多种功能:
- 基本信息查看
- 命令执行
- 虚拟终端
- 文件管理
- Socks代理
- 反弹shell
- 数据库管理
- 自定义代码执行
二、加密原理分析(PHP版本)
加密流程
-
密钥交换阶段:
- 客户端以GET请求发起带密码的请求
- 服务端生成16位随机密钥,写入Session并返回给客户端
-
加密通信阶段:
- 客户端获取密钥后,使用AES-16算法加密payload
- 通过POST请求发送加密后的数据
- 服务端用Session中的密钥解密请求Body,执行payload
- 返回结果直接显示在客户端UI上
加密特点
- 使用AES算法,密钥长度16位(AES-16)
- 硬件加速:支持英特尔处理器AES指令集(6条指令)
- 内存需求低,适合流量加密
三、通信过程分析
通过Wireshark抓包观察:
- 流量全程加密,无可读执行代码
- 服务端返回结果实际上经过AES加密,但webshell界面显示未加密
解密示例:
{"status":"success","msg":"..."}
四、冰蝎特征分析与检测
1. 密钥交换特征
- URL参数:
- 默认密码参数名
pass - 参数值为3位随机数字
- 检测规则示例:
\.(php|jsp|asp|aspx)\?(\w){1,10}=\d{2,3} HTTP/1.1
- 默认密码参数名
2. Header特征
-
Content-Type:
- GET和POST请求都包含此字段
- 大小写不规范
- 默认值异常
-
User-Agent:
- 从17个内置UA随机选择
- 但浏览器版本较旧(如2011年版本)
-
Accept字段:
- 默认值为
text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 - 非浏览器常见值
- 默认值为
-
Cookie:
- 包含
path=/异常信息 - 正常浏览器不会发送path部分
- 包含
3. 其他特征
-
密钥返回格式:
- 直接返回16位字符
- 检测规则:
\r\n\r\n[a-z0-9]{16}$配合Content-Length: 16
-
二次密钥获取:
- 默认会进行两次GET请求获取密钥
- 通过异或操作校验密钥
五、冰蝎魔改实战
1. 准备工作
- 使用JD-GUI等工具反编译JAR包
- 安装Eclipse + WindowsBuilder(SWT框架支持)
- 创建SWT项目并导入源码
- 修复反编译产生的错误
项目结构:
- 主逻辑在
net包下 Main.java为程序入口
2. 特征擦除方案
(1) 密钥交换URL参数修改
- 问题:固定密码参数名和数字值
- 解决方案:
- 增加随机数量/随机值的参数
- 密码参数不固定为第一个
- 随机值不全为数字
(2) Content-Type头修改
- 问题:GET请求异常包含此头
- 解决方案:
- GET请求去掉此字段
- POST请求改为
text/html; charset=utf-8
(3) User-Agent更新
- 问题:内置UA版本过旧
- 解决方案:
- 替换为较新浏览器UA
- 示例:
- Firefox 75.0(2020年)
- Chrome 78.0.3904.108(2019年)
(4) Accept头修改
- 问题:使用HTTPURLConnection默认值
- 解决方案:修改为常见浏览器Accept值
(5) 密钥获取优化
- 问题:默认两次GET请求获取密钥
- 解决方案:
- 改为一次获取
- 或直接将密钥写入webshell
(6) 密钥返回混淆
- 问题:直接返回16位字符
- 解决方案:
- 添加混淆内容
- 对密钥进行变形处理
(7) Cookie优化
- 问题:包含异常path信息
- 解决方案:去除发送请求中的path字段
六、魔改效果验证
修改前后对比
-
密钥交换URL:
- 原:
shell.php?pass=123 - 改:
shell.php?x=abc&y=1a2b&pass=xyz
- 原:
-
Header变化:
- GET请求:去除Content-Type
- POST请求:Content-Type规范化
-
UA更新:
- 原:
Chrome/14.0.835.163 - 改:
Chrome/78.0.3904.108
- 原:
-
密钥返回:
- 原:
\r\n\r\nabc123def456ghi78 - 改:
\r\n\r\n<!--random-->abc123def456ghi78<!--end-->
- 原:
七、防御与检测建议
复合检测策略
- 单一规则误报率高
- 建议组合多个特征进行检测:
- 异常URL参数 + 特定Content-Type
- 旧版UA + 异常Accept头
- 密钥长度特征 + Cookie异常
持续对抗
- 攻防技术不断发展
- 需要持续更新检测规则
- 关注新型webshell工具特征
八、总结
冰蝎作为加密webshell管理工具,通过魔改可暂时绕过安全检测,但长期有效需要:
- 深入理解工具原理
- 持续跟踪安全设备检测规则
- 定期更新工具特征
- 结合多种混淆技术
安全攻防是持续的过程,需要不断学习和适应新技术发展。