海莲花活跃木马KSRAT加密通信分析

1.概述

自2023年8月至今,海莲花组织多次利用KSRAT远控木马对我国发起攻击。KSRAT通过HTTP协议与C&C服务器进行通信,每个样本都使用了不同的URL。其心跳包采用XOR算法进行加密,而控制指令包和数据回传包则使用了XOR以及"XOR+AES-128-CBC"组合的加密方法。这种对不同类型的数据采用不同加密方式的策略,使得心跳包的解密方法无法完全应用于其他数据,从而有效延缓了安全人员对其具体攻击操作的分析。为了隐藏通信特征,KSRAT在心跳包中填充了随机生成的数据,使得载荷长度随机变化,但其并未更改XOR密钥和数据结构,导致心跳包请求体中的特征仍然显著,可直接通过特征值进行检测。

2.执行过程

样本执行后,会先在内存中XOR解密出shellcode和dll文件,shellcode负责调用dll的导出函数,函数参数为加密的配置文件,配置文件中包含了C2地址、请求头信息、心跳时间间隔等信息。样本使用HTTP协议与服务器进行通信,通信URL为"http://38.180.94.8/public/home/images/2024/yawwjs.jpg"。

图 2‑1 KSRAT执行过程

图 2‑2 解密后的参数信息

3.通信分析

3.1心跳包

样本执行后,使用HTTP协议与服务器进行通信,每隔30秒左右向服务器发送心跳包,心跳包构造为"8字节通信标识符+13字节固定数据+8字节随机数据长度+随机数据+9字节固定数据"。心跳包中的数据通过XOR算法进行加密,密钥为"p@sswor!kS@mk$y"。

图 3‑1 KSRAT心跳包

图 3‑2 心跳包数据结构

图 3‑3 解密后的心跳包

3.2控制指令包

当攻击者想要对受害机进行操作时,会通过心跳包的响应体向样本下发控制指令。控制指令按照加密方式可以分为两种,一种使用XOR算法进行加密,另一种使用"XOR+AES"组合算法进行加密。

攻击者下发"上传系统信息"、"上传进程ID"等指令时使用XOR算法加密,密钥为"p@sswor!kS@mk$y"。XOR算法加密的指令包由"8字节通信标识符+8字节固定数据+4字节控制指令+1字节数据+8字节随机数据长度+随机数据+9字节固定数据"组成。

图 3‑4 控制指令-上传系统信息

图 3‑5 xor加密控制指令包数据结构

图 3‑6 上传系统信息指令0x03

图 3‑7 上传进程ID指令0x14

攻击者下发"执行CMD命令"指令时,使用"XOR+AES"组合算法对控制指令包进行加密,XOR密钥"p@sswor!kS@mk$y",AES密钥和IV为"AF744438F8996F07543623C6E426E29C"。该指令包由"8字节通信标识符+4字节控制指令+8字节参数长度+参数+8字节随机数据长度+随机数据+9字节固定数据"组成。

图 3‑8 下发指令

图 3‑9 "XOR+AES"加密的控制指令包结构

图 3‑10 解密后的CMD指令"tasklist"

3.3数据回传包

回传给服务器的数据也使用了两种方式进行加密。接收到控制指令0x3后,样本会XOR加密回传系统信息。接收到控制指令0x14和0x4后,样本会使用"XOR+AES"组合算法加密回传数据。

图 3‑11 上传系统信息

图 3‑12 XOR解密后的系统信息

接收到控制指令0x14,样本使用"XOR+AES"组合算法加密回传进程ID。

图 3‑13 上传的加密数据

图 3‑14 解密后的进程ID 0x0B40

接收到控制指令0x4后,样本提取出参数"tasklist",执行后将进程列表使用"XOR+AES"组合算法加密后回传给服务器。

图 3‑15 加密的上传数据与解密后的进程列表

4.产品检测

玖鼎软件科技-加密威胁智能检测系统能够对海莲花KSRAT进行有效检出。

加密威胁智能检测系统检测结果

5.总结

近年来,越来越多的APT组织开始使用Go、Rust、Nim和DLang等编程语言开发攻击工具,这些语言本身具有一定的混淆效果,能够有效规避杀软检测并阻碍安全分析工作。海莲花组织采用Rust语言实现KSRAT远控木马,并去除了样本中AES加密算法的特征,显著降低了研究人员的分析速度。KSRAT在通信上别具匠心,每个样本使用了不同的URL,并且在URL中掺杂了随机字符,以避免流量检测系统通过URL识别其恶意流量。然而,自2023年至今,KSRAT并未改变其心跳包的XOR密钥和数据结构。尽管心跳包长度因随机数据填充而变化,但由于固定数据和固定密钥的存在,使得心跳包请求体中的特征依然明显,可通过特征值直接检测。未来,海莲花可能会更新其XOR密钥来隐藏其心跳包特征,规避流量检测。玖鼎软件科技安全研究团队将持续关注并更新其检测策略,以有效应对这一网络威胁。

相关推荐
Doris Liu.5 小时前
如何检测代码注入(Part 2)
windows·python·安全·网络安全·网络攻击模型
iOS技术狂热者6 小时前
使用抓包大师(sniff master)进行手机端iOS抓包的配置步骤
websocket·网络协议·tcp/ip·http·网络安全·https·udp
68岁扶墙肾透7 小时前
Java安全-FastJson反序列化分析
java·安全·web安全·网络安全·网络攻击模型·安全架构·fastjson
梧六柒8 小时前
1.1-站点差异\源码差异\数据存储差异\MVC模型
网络安全
金丝猴也是猿14 小时前
如何抓取手机与服务器通信包?三种方法详解
websocket·网络协议·tcp/ip·http·网络安全·https·udp
久违 °14 小时前
【安全运营】关于攻击面管理相关概念的梳理(一)
安全·web安全·网络安全
christine-rr15 小时前
密码学基础——密码学相关概念
网络·安全·密码学·加密
仙女很美哦18 小时前
flutter性能优化总结
websocket·网络协议·tcp/ip·http·网络安全·https·udp
风澜舞19 小时前
windows防火墙高级设置
网络安全
AntResearch19 小时前
蚂蚁集团主导的ISO密码学国际标准立项,纳入国产算法
网络·密码学