蔓灵花,又名"Bitter",主要针对我国和巴基斯坦进行网络攻击活动,其攻击目标主要包括政府部门、核工业、能源、国防、军工、船舶工业、航空工业以及海运等行业,主要意图是窃取敏感资料。
迄今为止,蔓灵花组织使用的攻击武器呈现出开源化、组件化和重复使用的趋势,在通信上多使用HTTP和TCP协议,数据传输仍然采用简单的加密算法,如移位加密和XOR加密等。日前,观成安全研究团队对其近两年主要使用的工具各个版本进行了详细分析,包括xorRAT、sessionRAT、plaintextRAT、wmRAT,梳理样本通信的流量特征,进行了对检测方案的探索和总结。
1
xorRAT
加密算法
xorRAT与wmRAT在通信上存在共性,均使用自定义TCP加密协议进行通信,通信端口采用随机大端口和80端口。样本使用逐字节XOR对数据进行加密,目前发现使用过的通信加密密钥有0xf6、0x9d、0xca,其中最常使用的加密密钥为0xca。
数据格式为2字节的数据长度,后面拼接加密后(Unicode格式转化+XOR加密)的数据。见下图。
图 1 数据格式
xorRAT各版本样本的上线包数据均包含计算机名、用户名、操作系统版本、MAC地址和程序版本等信息。
对上线包数据进行解密,数据多包含DESKTOP、Admin、Windows等常见字符。见下图。
xorRAT各版本样本发送的心跳数据均为样本硬编码数据,为单字节的22或1。心跳包间隔时间区间为61-91秒。见下图。
各个版本的样本在控制指令上存在一些变化,但是差异不大,共包含10余种控制指令,包括敏感信息获取,文件传输,执行cmd指令等。服务器下发控制指令的数据格式均没有变化,下图以指令18为例。
模拟服务器下发指令18(获取磁盘信息),获取磁盘名称、卷标、类型等信息。
2
sessionRAT
加密算法
sessionRAT各版本样本均使用TCP协议传输数据,其通信流程具有一定的特殊性:sessionRAT是由服务器先下发控制指令,通信流程包括三步:①样本运行后,会主动向C2服务端发起TCP请求;TCP连接建立成功后,C2服务端会率先向客户端下发指令;客户端接收指令执行后会将执行结果发送到服务端。并且该攻击武器在通信中会对部分通信数据进行加密,加密方式较老版本的样本发生了变化,从多字节XOR更改为了移位算法,下面我们将用密钥0x67的样本作为例子进行说明。
从2019到2024年,通信格式均未曾发生改变,其中通信的上下行数据格式有略微差异,见下图。
上行数据其中前5个字节为会话标识数据,样本会将5字节数据解密后在响应包中发送给服务端;6-7字节TCP载荷大小,表示整个C2下发指令包的长度;8-9字节为控制指令,样本会根据指令执行命令;10-11字节为后续传输数据的载荷大小;11字节为后续传输数据,样本会将该部分数据解密,并在执行控制指令时使用。
下行数据其中前5个字节为会话标识数据,该数据根据C2下发指令包中的会话表示数据解密得到,并作为明文放在客户端响应包中;6-7字节为控制指令,该指令和C2下发指令包中的控制指令相同,在客户端响应包中传输时会经过加密;7字节后的数据为加密后的传输数据,该部分数据内容为控制指令执行后的返回结果。
sessionRAT各版本样本均支持多种远程控制功能,其中包括获取主机信息、获取文件目录、文件的读写功能、利用匿名管道实现shell等。
样本的C2服务器会先下发控制指令5026,客户端接收该指令会上传填充数据,见下图。
收到客户端回传的数据后,样本的C2服务器会再次下发控制指令5000,客户端接收该指令会上传系统信息,见下图。
3
plaintextRAT
plaintextRAT最早出现于2021年,于2023年12月开始活跃。与xorRAT功能一致,是明文版本的xorRAT。
各版本样本的上线包同样包含计算机名、用户名、操作系统版本、MAC地址和程序版本等信息。
心跳包由4字节的长度和1字节的样本硬编码数据构成。
4
窃密木马
该攻击武器是一种窃密木马,该木马会窃取文件信息,获取文件路径。其url参数部分携带计算机名、MachineGuid、时间戳等内容。相关示例流量如下。
检测方案
总结蔓灵花组织使用的主要攻击武器的流量特征后,研究人员综合利用规则检测、行为检测和人工智能检测等手段,针对Bitter攻击武器的流量达到有效检出的效果。
规则检测
首先,研究人员采用基于规则的检测方法 ,在面对简单的明文通信和已知密钥加密的工具时,对其流量中的关键字符串,比如url、固定密钥加密的16进制字符进行匹配。在面对较为复杂的攻击武器通信加密的流量时,针对已知密钥的情况,可以利用已掌握的密钥规律进行解密尝试。通过成功解密的流量,我们可以进行第二轮的关键字符串匹配,例如识别上线包中常见的字符串及其连接符。通过规则匹配的手段检测出明文通信的工具;对加密工具的检测做初步的筛选工作,为后续的检测奠定了基础。
行为检测
对于未知密钥的加密流量,可以通过统计流量数据在时间、空间上的分布情况,对蔓灵花组织的每款工具制定行为模型,例如统计流量中的心跳时间间隔,载荷的数据格式,以及流量中上下行数据的关系,来判断是否符合蔓灵花组织某一攻击武器的流量通信行为特征。
检测结果
观成瞰云加密威胁智能检测系统能够对以上所有攻击武器进行检出,用sessionRAT举例,检测结果见下图。
图 16 加密威胁智能检测系统检测结果