观成科技:摩诃草组织Spyder下载器流量特征分析
一、概述
自2023年以来,摩诃草组织频繁使用Spyder下载器下载远控木马,例如Remcos。观成安全研究团队对近几年的Spyder样本进行了深入研究,发现不同版本的样本在数据加密、流量模式等方面存在差异。基于此,我们对多个版本样本的通信特征进行了对比分析,其中版本的界定主要是通过数据中的字段(如ver或about)来确定,早期样本未明确版本标识,而后期版本通过这些字段明确显示版本信息。具体特征总结如下:
①各版本样本均使用HTTP协议,80端口进行通信,心跳包使用POST请求方式。
②各版本样本会根据第一次发起请求后服务器的响应,判断是否需要收集设备信息并进行回传。
③各版本样本的数据均采用Base64编码进行加密,但随着版本的更新,后期版本普遍使用双重Base64加密。
④各版本样本的流量类型不同,早期版本采用多流模式,每条流只包含一个HTTP交互;而后期版本则采用单流模式,在一条流内维持长连接,包含多次HTTP交互。
⑤各版本的上线包和心跳包的内容格式发生变化。
根据回传数据的位置和键值名称,我们将各版本样本的通信特征分为三种类型。下文将详细介绍这三类通信特征。
二、样本
此次分析的10个Spyder下载器样本的基本信息如下表:
三、流量特征
3.1上线包
样本执行后会收集设备信息,不同版本的样本收集的信息也不一样,但通常都至少包括主机名、用户名、操作系统版本和杀软信息等。三类样本流量特征如下:
类型1:设备信息位于HTTP请求体中,且数据部分经过Base64编码。从版本2开始,样本数据末尾会添加如 &ver=2 的字段,用来标识版本信息,如图1所示;类型1的上线包中发送的数据字段及其含义见表1。
类型2:设备信息的关键字和值完全加密,使用双重base64编码,且数据位于请求体中的 data= 字段后,如图2、3、4。
类型3:设备信息的加密数据位于请求头部,请求头中出现特殊的键值名称,如 boop 或 zte等,后跟双重base64编码的数据,如图5、6;类型3发送的数据字段及其含义见表2。
图 1 spyder-类型1上线包
表 1 spyder-类型1上线数据字段说明
图 2 spyder-类型2上线包
Spyder-类型2样本采用双重Base64编码加密方式,解密后的上线数据见图4。
图 3 双重base64编码
图 4 spyder-类型2 上线数据解密
图 5 spyder-类型3上线包
spyder-类型3上线数据解密见下图。
图 6 spyder-类型3 上线数据解密
表 2 spyder-类型3上线数据字段说明
3.2心跳包
各样本的心跳数据都具有固定的心跳时间间隔,但每个样本的心跳间隔不同,范围从0.5秒到4秒不等。此外,不同版本的心跳数据在内容上也存在一定差异,主要包含Machine GUID、获取控制指令码和版本号。详情见表3。
表 3 各版本心跳包信息
图 7 spyder-类型1 心跳包
图 8 spyder-类型2 心跳包
spyder-类型2心跳数据解密见图9。包括Machine GUID、控制指令码、版本号。其中控制指令码包括0、1、2、3四种取值,0表示操作结束,1、2、3均用于获取并执行不同的后续载荷。心跳包通常首先发送指令码1,以请求获取控制指令。
图 9 spyder-类型2 心跳数据解密
表 4 spyder-类型2心跳数据字段说明
图 10 spyder-类型3 心跳包
spyder-类型3心跳数据解密见图11。
图 11 spyder-类型3 心跳数据解密
表 5 spyder-类型3心跳数据字段说明
四、产品检测
观成瞰云(ENS)-加密威胁智能检测系统能够基于行为特征对各个版本的spyder下载器进行有效检出。
图 12 观成瞰云(ENS)-加密威胁智能检测系统检出spyder
五、总结
Spyder下载器经历了多次更新,通过对其历代样本的分析,我们可以看到该工具的通信数据格式和加密方式不断变化。从最初通过请求体回传数据,变为通过请求头回传数据;从部分数据采用Base64编码,到如今将全部数据进行双重Base64编码。这些变化表明Spyder攻击工具在不断改进。目前,Spyder已经成为摩诃草APT组织的常用工具。通过行为检测方式,我们实现了Spyder工具的检测能力,能够更有效地跟踪摩诃草APT组织,及时发现针对我国的APT攻击事件。