冰蝎和哥斯拉流量分析
字数 1308 2025-08-20 18:17:59

冰蝎与哥斯拉流量分析技术详解

1. 对称密码AES基础

1.1 AES基本概念

  • 明文/密文长度可选:128bit、192bit、256bit(常见128bit)
  • 密钥长度对应:AES-128、AES-192、AES-256

1.2 分组密码工作模式

  1. ECB模式(电子密码本)

    • 相同密钥加密相同明文产生相同密文
    • 不需要初始向量(IV)
    • 安全性较低,不推荐使用
  2. CBC模式(密码分组链接)

    • 前一块密文与当前块明文异或后再加密
    • 需要初始化向量(IV)处理第一块数据
    • 更安全,解决了ECB的重复性问题

其他模式:CFB、OFB等(文中未详细讨论)

2. 冰蝎流量分析

2.1 冰蝎3特性

  • 加密方式:openssl_decrypt($post, "AES128", $key)
  • OpenSSL默认使用AES-128-CBC模式
  • 解密时需要:
    • 使用CBC模式
    • 初始向量通常设为全0

2.2 冰蝎4特性

  • 加密方式可选:
    • aesaes_with_magic:使用ECB模式
    • 其他非AES加密方式
  • 新功能"传输协议":
    • 可直接查看加解密函数
    • 提供加解密操作界面

2.3 冰蝎4特殊加密方式

  1. xor_base64

    • 特征:流量中可见较短密文
    • 解密方法:使用冰蝎4传输协议直接解密
  2. xor

    • 特征:流量中有大量字符
    • 解密方法:同样使用传输协议解密

3. 哥斯拉流量分析

3.1 JAVA_AES_BASE64

3.1.1 特征识别

  1. 密钥长度:16字节(128bit)
  2. 密钥生成:md5(pass+xc),取完整MD5值
  3. 返回包格式:
    • 前16位:MD5前16位
    • 密文主体
    • 后16位:MD5后16位

3.1.2 解密流程

  1. 请求包解密配方

    URL_Decode()
    From_Base64('A-Za-z0-9+/=',true,false)
    AES_Decrypt({
      'option':'UTF8',
      'string':'密钥'  // 如3c6e0b8a9c15224a
    },{
      'option':'Hex',
      'string':''
    },'ECB','Raw','Raw',{
      'option':'Hex',
      'string':''
    },{
      'option':'Hex',
      'string':''
    })
    Gunzip()
    
  2. 响应包解密配方

    • 先手动删除前16位和后16位
    From_Base64('A-Za-z0-9+/=',true,false)
    AES_Decrypt(...)  // 同上
    Gunzip()
    

3.2 JAVA_AES_RAW

3.2.1 与BASE64区别

  • 不需要去除前后16位
  • 密文为十六进制格式

3.2.2 解密配方

From_Hex('Auto')
AES_Decrypt({
  'option':'UTF8',
  'string':'密钥'  // 如748007e861908c03
},{
  'option':'Hex',
  'string':''
},'ECB','Raw','Raw',{
  'option':'Hex',
  'string':''
},{
  'option':'Hex',
  'string':''
})
Gunzip()

3.3 连接密码获取

  • 密钥为密码MD5值的前16位
  • 示例:xc=748007e861908c03 → 密码MD5前16位
  • 解密后可得连接密码(如14mk3y)

4. 实战技巧

4.1 端口扫描识别

  • TCP SYN扫描特征
    • 攻击者发送SYN包
    • 端口开放:返回SYN,ACK
    • 端口关闭:返回RST
    • 端口过滤:无响应
  • 过滤命令:tcp.connection.synack

4.2 WebShell操作识别

  1. 查找JSP文件:

    • 过滤HTTP流查找文件头(如压缩包)
    • 使用foremost提取文件
  2. 查找关键信息:

    • 过滤HTTP 200响应
    • 查找包含密钥的流量包

4.3 密钥爆破

当密钥无法直接找到时:

  1. 冰蝎密钥生成规律:
    • 密钥 = 密码32位MD5值的前16位
  2. 爆破方法:
    • 猜测可能的密码
    • 计算MD5并取前16位作为测试密钥
    • 能成功解密即找到正确密码

5. 工具推荐

  • CyberChef:用于加解密操作
  • B神工具:自动分析工具(B站账号:183379727)

6. 总结流程图

开始
│
├─ 识别加密类型
│   ├─ 冰蝎3:AES-128-CBC
│   ├─ 冰蝎4:可选(ECB/xor_base64等)
│   └─ 哥斯拉:JAVA_AES_BASE64/RAW
│
├─ 获取密钥
│   ├─ 直接查找
│   └─ 爆破获取(md5(pass)[:16])
│
├─ 解密流程
│   ├─ BASE64:去头尾→Base64→AES→Gunzip
│   └─ RAW:Hex→AES→Gunzip
│
└─ 分析解密内容
    获取flag/操作记录等关键信息

通过掌握这些关键技术和流程,可以有效分析冰蝎和哥斯拉的流量,识别WebShell活动并获取攻击证据。

冰蝎与哥斯拉流量分析技术详解 1. 对称密码AES基础 1.1 AES基本概念 明文/密文长度可选:128bit、192bit、256bit(常见128bit) 密钥长度对应:AES-128、AES-192、AES-256 1.2 分组密码工作模式 ECB模式(电子密码本) : 相同密钥加密相同明文产生相同密文 不需要初始向量(IV) 安全性较低,不推荐使用 CBC模式(密码分组链接) : 前一块密文与当前块明文异或后再加密 需要初始化向量(IV)处理第一块数据 更安全,解决了ECB的重复性问题 其他模式:CFB、OFB等(文中未详细讨论) 2. 冰蝎流量分析 2.1 冰蝎3特性 加密方式: openssl_decrypt($post, "AES128", $key) OpenSSL默认使用AES-128-CBC模式 解密时需要: 使用CBC模式 初始向量通常设为全0 2.2 冰蝎4特性 加密方式可选: aes 和 aes_with_magic :使用ECB模式 其他非AES加密方式 新功能"传输协议": 可直接查看加解密函数 提供加解密操作界面 2.3 冰蝎4特殊加密方式 xor_ base64 : 特征:流量中可见较短密文 解密方法:使用冰蝎4传输协议直接解密 xor : 特征:流量中有大量字符 解密方法:同样使用传输协议解密 3. 哥斯拉流量分析 3.1 JAVA_ AES_ BASE64 3.1.1 特征识别 密钥长度:16字节(128bit) 密钥生成: md5(pass+xc) ,取完整MD5值 返回包格式: 前16位:MD5前16位 密文主体 后16位:MD5后16位 3.1.2 解密流程 请求包解密配方 : 响应包解密配方 : 先手动删除前16位和后16位 3.2 JAVA_ AES_ RAW 3.2.1 与BASE64区别 不需要去除前后16位 密文为十六进制格式 3.2.2 解密配方 3.3 连接密码获取 密钥为密码MD5值的前16位 示例: xc=748007e861908c03 → 密码MD5前16位 解密后可得连接密码(如14mk3y) 4. 实战技巧 4.1 端口扫描识别 TCP SYN扫描特征 : 攻击者发送SYN包 端口开放:返回SYN,ACK 端口关闭:返回RST 端口过滤:无响应 过滤命令: tcp.connection.synack 4.2 WebShell操作识别 查找JSP文件: 过滤HTTP流查找文件头(如压缩包) 使用foremost提取文件 查找关键信息: 过滤HTTP 200响应 查找包含密钥的流量包 4.3 密钥爆破 当密钥无法直接找到时: 冰蝎密钥生成规律: 密钥 = 密码32位MD5值的前16位 爆破方法: 猜测可能的密码 计算MD5并取前16位作为测试密钥 能成功解密即找到正确密码 5. 工具推荐 CyberChef :用于加解密操作 B神工具 :自动分析工具(B站账号:183379727) 6. 总结流程图 通过掌握这些关键技术和流程,可以有效分析冰蝎和哥斯拉的流量,识别WebShell活动并获取攻击证据。