冰蝎3.0流量特征分析(附特征)
字数 3112 2025-08-15 21:31:46
冰蝎3.0流量特征分析教学文档
一、冰蝎3.0版本主要改动
-
取消动态密钥获取机制:
- 由于WAF等安全设备已能识别冰蝎2.0的动态密钥特征
- 3.0版本改为使用固定密钥生成方式
-
界面更新:
- 从SWT改为JavaFX
- 界面更加美观大方
二、密钥生成机制
密钥生成方式
- 使用密码的MD5哈希值前16位作为AES密钥
- 密钥生成公式:
md5("pass")[0:16] - 示例代码:
String k = "e45e329feb5d925b"; // 示例密钥 session.putValue("u", k); Cipher c = Cipher.getInstance("AES"); c.init(2, new SecretKeySpec(k.getBytes(), "AES"));
密钥交互流程
- 优先尝试无动态密钥交互
- 仅在无密钥交互失败时,才会进入常规密钥交互阶段
三、流量特征分析
1. Content-Type强特征
- 固定值:
application/octet-stream - 原因:服务端使用
request.getReader().readLine()读取POST请求体 - 特征分析:
- 该Content-Type通常用于提交单个二进制数据
- 在常规Web请求中极少使用
- 客户端代码中硬编码,难以修改
2. User-Agent特征
- 默认行为:
- 每次请求随机选择一个User-Agent
- 如果用户未提供UA头,则从系统内置16个UA中随机选择
- 内置UA列表特征:
- 均为较老版本的浏览器UA
- 现代用户很少使用这些UA
- 完整列表见附录
3. Accept & Cache-Control特征
- 默认设置:
- 通过
sun.net.www.protocol.http.HttpURLConnection实现 - 默认设置如下(如果未手动设置):
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Cache-Control: no-cache Pragma: no-cache User-Agent: java/1.8
- 通过
- 特征分析:
- 正常Web请求很少如此简单设置
- Accept头格式具有Java特征
4. Content-Length特征
- 请求内容:
- 加密内容无随机填充
- 对于特定操作(如密钥交互、基本信息获取),payload为定长
- 检测方法:
- 分析请求长度模式
- 注意:此特征不一定准确,需结合其他特征判断
四、防御建议
1. WAF规则建议
-
强特征检测:
- 拦截
Content-Type: application/octet-stream的POST请求 - 检测内置的16个老旧User-Agent
- 监控Java默认的Accept头格式
- 拦截
-
组合检测:
- 结合多个特征进行综合判断
- 例如:老旧UA + octet-stream类型 + 特定Content-Length
2. 业务防护建议
- 根据业务特点调整检测策略
- 在误报和漏报之间寻找平衡
- 对可疑流量进行深度检测
附录:冰蝎3.0内置User-Agent列表
- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1
- Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0
- Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50
- Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50
- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)
- Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0)
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
- Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
- Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)
- Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0
- Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
- Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201
- Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201