当前位置: 首页 > article >正文

观成科技:海莲花“PerfSpyRAT”木马加密通信分析

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组织在隐匿自身行为方面的高度策略性。观成科技安全研究团队将持续关注并更新其检测策略,以有效应对这一网络威胁。

  1. 参考链接
  • 警惕境外APT组织在GitHub投毒,攻击国内安全从业者、指定大企业

https://mp.weixin.qq.com/s/ih36z93y6BazatjeoGjp1A

  • 【涨知识】海莲花活跃木马KSRAT加密通信分析

https://mp.weixin.qq.com/s/UK-2R4ALy0p1pswiF06RmA


http://www.kler.cn/a/563029.html

相关文章:

  • 微服务架构与传统的单体架构有什么区别?微服务架构(Spring Cloud + Maven)强在哪?
  • LeetCode 1472.设计浏览器历史记录:一个数组完成模拟,单次操作均O(1)
  • css实现左右切换平滑效果
  • 数字人AIGC实训室:以AI技术赋能数字化教育
  • python基础学习day01
  • 高效能计算与高速数据传输的完美结合:飞腾D2000处理器与复旦微双FPGA集成主板
  • 数据库二三事(8)
  • 数组的使用
  • HTTPS 与 HTTP 的区别在哪?
  • DeepSeek开源周Day1:FlashMLA引爆AI推理性能革命!
  • PyTorch 源码学习:GPU 内存管理之它山之石——TensorFlow BFC 算法
  • python爬虫学习第十一篇爬取指定类型数据
  • Qt Creator + CMake 构建教程
  • QT和有道词典有冲突,导致内存溢出,闪退。
  • LeetCode详解之如何一步步优化到最佳解法:14. 最长公共前缀
  • JavaScript 系列之:Ajax、Promise、Axios
  • 【人工智能】数据挖掘与应用题库(101-200)
  • 【嵌入式原理设计】实验六:倒车控制设计
  • 蓝耘服务器与DeepSeek的结合:引领智能化时代的新突破
  • 30 分钟从零开始入门 CSS