冰蝎3.0流量特征分析(附特征)
字数 3112 2025-08-15 21:31:46

冰蝎3.0流量特征分析教学文档

一、冰蝎3.0版本主要改动

  1. 取消动态密钥获取机制

    • 由于WAF等安全设备已能识别冰蝎2.0的动态密钥特征
    • 3.0版本改为使用固定密钥生成方式
  2. 界面更新

    • 从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列表

  1. Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1
  2. Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0
  3. Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50
  4. Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50
  5. 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)
  6. 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)
  7. Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0)
  8. Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
  9. Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
  10. Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12
  11. 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)
  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; SE 2.X MetaSr 1.0)
  13. 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
  14. 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)
  15. 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
  16. 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
冰蝎3.0流量特征分析教学文档 一、冰蝎3.0版本主要改动 取消动态密钥获取机制 : 由于WAF等安全设备已能识别冰蝎2.0的动态密钥特征 3.0版本改为使用固定密钥生成方式 界面更新 : 从SWT改为JavaFX 界面更加美观大方 二、密钥生成机制 密钥生成方式 使用密码的MD5哈希值前16位作为AES密钥 密钥生成公式: md5("pass")[0:16] 示例代码: 密钥交互流程 优先尝试无动态密钥交互 仅在无密钥交互失败时,才会进入常规密钥交互阶段 三、流量特征分析 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 实现 默认设置如下(如果未手动设置): 特征分析 : 正常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