观成科技:冰蝎内存马加密流量分析 📅 2026/7/1 7:24:35 一、概述冰蝎Behinder是一款采用加密通信机制的Webshell管理工具因其动态密钥协商、强加密传输、多种协议支持等特性被广泛用于红蓝对抗与APT攻击活动中。在近些年的攻防对抗场景中冰蝎内存马越来越受攻击方青睐与传统的冰蝎Webshell使用场景不同——攻击者将 JSP/PHP 后门文件上传至服务器 Web 目录——冰蝎内存马Memory Shell通过中间件漏洞如反序列化、表达式注入直接将恶意Agent注入到 Java 虚拟机的运行时内存中以Servlet、Filter或 Listener的形式注册在 Web 容器内部。由于内存马不在磁盘上留下任何文件传统基于文件哈希和文件扫描的终端检测手段很难发现给安全防护带来严峻挑战。在网络流量层面攻击者通过冰蝎内存马能够执行系统命令、管理文件、建立隧道等操作且所有控制流量均经过 TLS 加密传输给传统基于DPI的流量检测技术带来挑战。我们通过分析冰蝎内存马的通信架构——特别是TCP连接复用策略与加密记录传输模式——在加密流量侧信道层面尝试找到可被系统性识别的行为特征从而形成基于通信行为的冰蝎内存马TLS流量检测能力。1、冰蝎内存马通信流程图1 冰蝎内存马通信流程与行为检测冰蝎内存马的一次完整命令控制周期包含以下几个阶段1阶段一内存注入攻击者利用目标 Web 容器的漏洞如Fastjson反序列化、Log4j JNDI 注入、Spring EL 表达式注入等将冰蝎Agent注入到 JVM 运行时中。该 Agent 注册为 Servlet、Filter 或 Listener持续监听加密的 HTTP POST 请求。Agent 仅存活于内存空间中不在磁盘上产生任何文件。2阶段二密钥协商冰蝎客户端Behinder.jar向目标发送首次HTTP POST请求。请求体中包含经 AES 加密的密钥协商载荷。服务端 Agent 解密后获取会话 AES 密钥并返回加密的响应确认。每个独立 TCP 连接会生成独立的 AES 密钥对128位或256位确保前向安全性。3阶段三命令加密投递攻击者在冰蝎客户端界面上选择操作类型命令执行、文件管理、虚拟终端等客户端将操作指令序列化为JSON格式经AES加密和base64编码后封装为 HTTP POST 请求体再通过 TLS 协议加密发送至服务端。4阶段四服务端解密执行服务端内存马Agent接收到HTTP请求后从TLS解密后的 HTTP 载荷中提取base64数据完成 base64 解码和 AES 解密还原出操作指令明文。Agent根据指令类型调用 Runtime.exec() 执行系统命令或通过Java IO API进行文件操作将执行结果加密后封装为HTTP响应返回给客户端。5阶段五结果解密展示冰蝎客户端从 HTTP 响应中提取加密数据完成解密后展示给攻击者完成一次完整的命令控制循环。二、加密流量分析冰蝎内存马的加密流量特征与有文件落地的常规冰蝎流量特征极其相似分析可以从加密连接复用策略、TLS 记录传输模式、多流时序特征以及TLS指纹信息四个维度切入实现对内存马加密流量侧信道特征的系统性提取。1、连接复用策略特征在高维流量分析视角下TCP 会话层的连接复用策略是区分冰蝎内存马与传统 Webshell通信模式最显著的维度。也是冰蝎内存马与有文件落地的传统冰蝎Webshell之间最显著的流量特征差异。直接反映了客户端连接池的管理策略。通过分析几组冰蝎有文件落地的流量样本与冰蝎内存马流量样本的 TCP 会话结构我们发现冰蝎内存马在连接复用策略上呈现出高度规律性图2 内存马连接特征内存马连接模式流1: 请求→响应(十几条TLS记录)流2:请求→响应(十几条TLS记录)流3:请求→响应图3 有文件落地连接特征有文件落地连接模式流1:请求①→响应①→请求②→响应②→…→请求N→响应N(几十到上百条TLS记录)流2:请求①→响应①→请求②→响应②→…→请求M→响应M统计数据显示内存马每个 TCP 流承载十几条 TLS Application Data 记录对应一次完整的请求-响应交换有文件落地每个 TCP 流承载几十到上百条 TLS Application Data 记录在同一连接内复用了多次操作。这一差异的根本原因在于冰蝎内存马的 HTTP 连接在完成一次请求-响应后即通过 Connection: close 断开每次操作都建立新的 TCP 连接而传统冰蝎 Webshell 的客户端实现中HTTP 连接默认启用 Keep-Alive 机制在同一连接内复用多个操作。2、TLS 记录大小分布特征冰蝎所有操作载荷均遵循固定的加密封装流程操作指令明文 → JSON 序列化 → AES-GCM 加密 → Base64 编码 → HTTP POST 传输 → TLS Record 分片。由于分组加密后的密文长度与明文长度存在关联加上 TLS Record 层的固定协议开销冰蝎的TLS Application Data在记录大小维度上呈现出稳定的分布模式。图4 Tls Application Data大小分布规律通过统计六个样本的 TLS 记录大小分布我们观察到以下特征模式记录大小内存马出现频率有文件落地出现频率说明数千字节高高冰蝎最大化 TLS Record 块加密载荷主体几百字节高低上行小确认包密钥协商/指令确认几十字节高中TLS Record 层边界确认包数百到上千字节低中小命令命令执行返回少量数据/分块传输场景内存马场景下每条流均包含数千字节的大块对应加密后的请求体或响应体和若干几百/几十字节的小确认包形成了可被量化的记录大小指纹。特别值得关注的是内存马每个流的请求-响应周期中大块必然出现 有限次——分别对应 AES 加密载荷的若干TLS分片。这种确定性数量关系构成了与正常Web流量大分块出现频率和次数不可预测的核心区别。3、多流时序特征内存马的人机交互特性在 TCP 流的时间轴上留下了独特的时序指纹可以引入多个量化指标来描述这些特征。通过对样本的流启动时间进行排序分析可以发现图5 内存马Tcp流时序统计图流间无重叠后一条 TCP 流的首包时间晚于前一条流的尾包时间流与流之间无并发。操作间隔规律相邻流之间的启动时间间隔体现攻击者阅读命令输出、输入下一条指令的操作节奏。流内稳定性同一会话内TLS 记录数维持稳定。与之形成对比的是自动化脚本或正常业务流量的流间时序自动化脚本通常以固定间隔机械化发起请求而正常业务流量中的并发请求则会产生流的时序重叠。4、TLS 指纹特征冰蝎客户端的TLS协议栈实现存在稳定的配置指纹可通过提取TLS限定域指纹对其建立TLS连接的过程进行描述。图6 冰蝎TLS握手包三、产品检测图7 产品检测告警观成瞰云ENS-加密威胁智能检测系统能够基于上述加密流量侧行为特征对冰蝎内存马通信行为进行有效检出。系统通过采集引擎实时捕获和解析 TLS 加密会话利用多维特征结合算法实现高精度行为判定。四、总结冰蝎内存马作为无文件攻击的重要载体虽然规避了传统的文件扫描和WebShell检测手段但其通信架构的本质在加密流量侧信道层面留下了可供系统性识别的行为指纹。观成科技安全研究团队将持续跟踪冰蝎工具版本的迭代及时更新和优化相应的检测策略保持对该威胁活动的即时防护能力。