1.概述
在2024年9月中旬至10月,东南亚APT组织“海莲花”通过GitHub发布开源安全工具项目,针对网络安全人员发起了定向攻击。通过对相关攻击活动进行分析,可以将其与一些海莲花的样本关联起来。这些样本的通信数据结构与海莲花此前使用的攻击工具有所不同。本文将详细剖析其中一个样本(命名为“PerfSpyRAT”)的通信过程。该样本通过TLS协议与C&C服务器进行通信,通信数据采用LZMA与AES加密。AES密钥随流量传输,且加密数据中插入不定长度的随机数据,以规避长度检测。这种规避检测的策略曾在海莲花近期使用的攻击工具中出现过,例如“KSRAT”木马。
2.样本信息
表 1 样本信息
文件名 |
perftd.exe |
文件Hash |
2b8353fe5862c88fdefb79f016d611d7 |
时间戳 |
2024-11-04 |
C&C服务器 |
https[:]//45[.]41[.]204[.]15/extensions/a586bc8a-728c-4d06-8180-befb9e20c408 |
样本类型 |
远控 |
3.加密通信分析
“PerfSpyRAT”木马使用TLS与服务器进行通信,TLS解密后通信流程如下:
- 木马发起GET请求,用于获取后续通信“Cookie”值,该请求本身不包含“Cookie”字段;
- 服务器接收到首次GET请求后,响应头字段“set-cookie”为后续通信“Cookie”值,响应头状态无意义,可以为“404 Not Found”;
- 木马再次发起GET请求,请求头包含“Cookie”值,用于获取控制指令;
- 服务器首次建立连接默认下发获取系统信息的控制指令,通信内容使用LZMA压缩+AES加密;
- 木马通过POST请求上传系统信息,通信内容使用LZMA压缩+AES加密;
- 服务器响应“200 OK”;
- 每2~3秒重复步骤③,等待服务器下发新的控制指令。
通信流程如下图:
图 1 TLS解密后HTTP通信流程示例
TLS通信流量解密后为HTTP协议,通信载荷仍然是加密内容,加密使用了LZMA压缩+AES_CBC_256加密,AES加密密钥每次随着流量传输,IV为16个0,HTTP载荷包含“加密数据+AES密钥+随机数据+AES密钥偏移数据”,AES密钥偏移与最后一字节值相关,具体计算公式为:偏移=载荷总长度-0x28-1-载荷最后一字节的值。
图 2 HTTP载荷数据结构以及加密过程
以图3流量为例,偏移=载荷总长度(0x13C)-0x28-1-载荷最后一字节的值(0x63)=0xB0,即图3中黄色数据部分为AES密钥,黄色之前的蓝色部分为加密数据,AES密钥后的数据为随机数据。
图 3 HTTP示例流量结构解析
系统信息解密过程如下图所示。
图 4 系统信息流量解密示例截图
4.产品检测
观成瞰云(ENS)-加密威胁智能检测系统能够对海莲花“PerfSpyRAT”进行有效检出。
图 5 观成瞰云(ENS)-加密威胁智能检测系统检测结果
5.总结
“PerfSpyRAT”是一种使用TLS协议进行通信的木马。木马的载荷数据采用LZMA压缩和AES加密,且加密采用动态AES密钥,密钥随流量传输。此外,数据中插入了不定长的随机数据,进一步规避了网络流量的长度检测。该木马的通信过程与“海莲花”组织以前使用的武器有所不同。尽管通信协议结构有些许变化,但依然延续了该组织惯用的加密手段和流量伪装技术,可以看出海莲花APT组织在隐匿自身行为方面的高度策略性。观成科技安全研究团队将持续关注并更新其检测策略,以有效应对这一网络威胁。
- 参考链接
- 警惕境外APT组织在GitHub投毒,攻击国内安全从业者、指定大企业
https://mp.weixin.qq.com/s/ih36z93y6BazatjeoGjp1A
- 【涨知识】海莲花活跃木马KSRAT加密通信分析
https://mp.weixin.qq.com/s/UK-2R4ALy0p1pswiF06RmA