蔓灵花组织wmRAT攻击武器对比分析

  1. 概述

蔓灵花,又名"Bitter"、"APT-C-08"、"T-APT-17"以及"苦象",常对南亚周边及孟加拉湾海域的相关国家发起网络攻击,主要针对巴基斯坦和中国两国。其攻击目标主要包括政府部门、核工业、能源、国防、军工、船舶工业、航空工业以及海运等行业,其主要意图是窃取敏感资料。该组织从2013年起就开始活跃,近年长期通过攻击组件下发的方式来完成对目标设备的控制行为,大致的攻击流程如下,以恶意文档文件如chm文档等作为攻击入口,引诱用户打开执行,从而调用如xxx.msi等软件下载后续攻击组件。观成安全分析人员通过长期跟踪和样本狩猎主动发现Bitter组织使用频率最高的攻击组件wmRAT的10个样本,对比进行分析发现有如下特点:

  1. 各个样本的整体执行逻辑、通信协议无变化并且依旧使用大端口交互通信
  2. 各个样本的通信数据格式无变化,为四字节标识/控制码+四字节长度+数据/控制指令
  3. 各个样本的字符串加密和通信加密均采用移位加密的方式,不同的样本使用的密钥有所变化
  4. 各个样本发送的心跳数据和心跳时间均有变化,发送的心跳数据多为"X"、"-"、"0"、"1"、"."几种元素的组合
  5. 控制指令有所增加,由最初的9个增加到14个,功能较之前更为完善,并且部分样本中存在重复使用的行为
  6. 与2022年的版本相比,增加网络连接测试

可以看到各个样本在休眠特征、数据格式以及上线包上没有发生变化,而在网络连接测试、使用的密钥情况、心跳包和控制指令方面,不同的样本之间出现了差异,逐渐进行更新迭代,攻击武器的发展趋向成熟。以下将从这两个方面进行详细分析。

  1. 基本信息

此次分析的10个wmRAT样本的基本信息如下表:

表 1 样本基本信息

编号

样本hash

C2

端口

协议

日期

样本1

b7a9407b47baf7442e0baf94a3b4cc8b7420cb01364fc8e6a3c622b7ae39301f

kryoblockbind.net

23.189.40.206

31174

TCP

2022-10-12

样本2

caf871247b7256945598816e9c5461d64b6bdb68a15ff9f8742ca31dc00865f8

devqrytoprar.net

185.243.112.42

80

TCP

2022-12-01

样本3

5ab76cf85ade810b7ae449e3dff8a19a018174ced45d37062c86568d9b7633f9

devqrytoprar.net

185.243.112.42

47810

TCP

2023-01-04

样本4

7bda85911c5d2d51655f20d0362d87d114465974852dd1add423dfd2cef3fc53

uxmesysconsole.com

77.72.18.158

60099

TCP

2023-08-10

样本5

32005ebee5daadaa5ea96ae9891632b68184c29e92908080dcfcef7f3c0c4f83

uxmesysconsole.com

77.72.18.158

60099

TCP

2023-09-04

样本6

813c67414723ea162e789b1fc4b269839351863050f27a2f906426dac3a86f39

dtzappaccount.com

45.66.248.66

59142

TCP

2023-09-23

样本7

552ec2ce24113e3f46b4e0cf6bc91eea483ad2eaf351eb92ee77f882b96d4006

uxmesysconsole.com

77.72.18.158

80

TCP

2023-10-24

样本8

14e43110cc3c40bf56d95df0079cc744055b1568dbceac05b50a2c0159bef872

dtzappaccount.com

45.66.248.66

59142

TCP

2023-11-13

样本9

fc9f84bad598c057b595efbca7ae0ae9a1678de7f2185275953424b3ec47a00e

dtzappaccount.com

45.66.248.66

59142

TCP

2023-11-13

样本10

132098213b5923463611e6fc77bfce0cfad3d727566ce0e87e9723456c698ae6

maxdimservice.com

89.40.206.85

52529

TCP

2023-11-28

  1. 共同特征
    1. 休眠

样本运行后会多次调用Sleep函数使程序进入休眠,试图绕过沙箱检测,所有样本都有此特征。

图 1 休眠代码

    1. 数据格式

各个样本均使用自定义的TCP通信协议,通信数据包具有一定的结构,发送数据使用三次send函数发送,也使用三次recv函数接收。

第一次发送、接收的数据为控制码或标识码;第二次发送、接收的为第三次要发送数据的长度;第三次则为实际传输的数据,服务端发送控制指令,客户端返回窃取的数据,采用所有字节(+密钥)的方式加密传输。

图 2 数据结构

    1. 上线包

样本在 TCP连接成功后都获取电脑名、用户名、系统版本这三个设备信息上传C2,数据中间用”||”符号拼接。各个样本的上线包格式不变,为四字节标识码+四字节数据长度+上线数据。

图 3 上线信息

图 4 上线包流量

图 5 数据解密

  1. 差异性表现
    1. 网络连接测试

各个样本连接测试都有区别,共使用过三种网络连接测试,包括microsoft、baidu和Intel。

图 6 microsoft连接测试

图 7 baidu连接测试

图 8 Intel连接测试

    1. 密钥变化

部分样本使用的字符串加密密钥和通信加密密钥存在差别,目前样本使用过的字符串加密密钥有0x5、0x14、0x2E、0x31和0x2D,使用过的通信加密密钥有0x5、0x14、0x13。其中2023年2月之前的样本字符串加密和通信加密均使用相同的加密密钥,在这之后不再使用相同的密钥,这样即使攻击者获得了样本字符串加密的密钥,也无法轻易推断后续通信的密钥,这种差异化的加密策略增加了破解的难度。

表 2 样本字符串加密密钥

编号

字符串加密密钥

编号

字符串加密密钥

样本1

0x5

样本6

0x31

样本2

0x14

样本7

0x2E

样本3

0x14

样本8

0x31

样本4

0x2E

样本9

0x31

样本5

0x2E

样本10

0x2D

表 3 样本通信加密密钥

编号

通信加密密钥

编号

通信加密密钥

样本1

0x5

样本6

0x13

样本2

0x14

样本7

0x13

样本3

0x14

样本8

0x13

样本4

0x13

样本9

0x13

样本5

0x13

样本10

0x14

    1. 心跳包

各个样本发送的心跳数据和心跳时间均有变化。发送的心跳数据多为"X"、"-"、"0"、"1"、"."几种元素的组合,心跳时间的精确度从一开始的整数变成浮点数,心跳包的格式为四字节标识符+四字节长度+数据,数据在样本中硬编码。其中最新批露的样本连接成功会每隔150.045秒发送心跳包到服务器,见下图:

图 9 心跳包

图 10 心跳包流量

表 4 各版本心跳包数据及时间

编号

数据

时间

样本1

00 00 00 00

00 00 00 01 5d(X)

120秒

样本2

00 00 00 00

00 00 00 01 6c(X)

120秒

样本3

00 00 00 00

00 00 00 01 44(0)

120秒

样本4

00 00 00 0F

00 00 00 02 40 40(--)

152.555秒

样本5

00 00 00 0F

00 00 00 03 40 40 40(---)

153.555秒

样本6

00 00 00 15

00 00 00 02 44 40(1-)

140.550秒

样本7

00 00 00 0F

00 00 00 02 40 40(--)

152.555秒

样本8

00 00 00 15

00 00 00 01 44 (1)

141.650秒

样本9

00 00 00 15

00 00 00 02 41 41(..)

141.650秒

样本10

00 00 00 11

00 00 00 02 41 45(-1)

150.045秒

    1. 控制指令

在2022年批露的样本中可以看到,指令较少,功能不完善,存在较多无功能指令,远控程序还处于研发阶段。相较于2022年的老样本,最新批露的样本中控制指令有所增加,由最初的9个增加到14个,功能较之前更为完善,远控程序开发的已经较为成熟。对各个样本总结后发现使用的控制指令共有四类,见下表。

表 5 四种控制指令

第一种

第二种

第三种

第四种

0 获取信息上传,包括计算机名、用户名、磁盘占用率等

5 发送截屏数据到服务器

7 发送截屏数据到服务器

0 将文件信息发送至服务器

1 远程shell

6 接收文件数据

10 接收文件数据

3 关闭指定文件流

5 关闭文件流

8 从服务器接收信息,寻找指定文件处理后发送至服务器

12 从服务器接收信息,寻找指定文件处理后发送至服务器

4 向指定文件流中写入数据

6 接收文件到文件流打开的文件路径

10 打开指定的URL,并获取文件

14 打开指定的URL,并获取文件

6 打开指定文件流,并向服务器传输数据

8 打开文件,上传数据,单次0x2000字节

11 查找指定目录文件,并进行操作

15 查找指定目录文件,并进行操作

9 发送文件数据到远程服务器,并计算发送进度

11 上传文件数据单次上传0x2000字节及以下

13 搜索指定目录文件,将文件信息发送至服务器

19 搜索指定目录文件,将文件信息发送至服务器

10 申请空间输入输出流

12 搜索指定路径,将信息上传

15 获取信息上传,包括计算机名、用户名、磁盘占用率等

21 获取信息上传,包括计算机名、用户名、磁盘占用率等

11 打开文件,上传数据

15 搜索指定路径,将文件名上传

16 使用powershell执行命令、创建管道获取数据等

22 使用powershell执行命令、创建管道获取数据等

12 打开指定的URL,并获取文件

20 搜索指定目录文件,将文件信息发送至服务器,某些大小格式的文件不支持

20 关闭指定文件流

25 打开指定文件流,并向服务器传输数据

13 查找指定目录文件,并进行操作

21 向指定文件流中写入数据

28 发送文件数据到远程服务器,并计算发送进度

15 搜索指定目录文件,将文件信息发送至服务器

23 打开指定文件流,并向服务器传输数据

30 关闭指定文件流

17 获取信息上传,包括计算机名、用户名、磁盘占用率等

26 发送文件数据到远程服务器,并计算发送进度

31 向指定文件流中写入数据

18 使用powershell执行命令、创建管道获取数据等

26 发送截屏数据到服务器

27 接收文件数据

模拟服务器下发指令lstcts,获取信息包括计算机名、用户名、磁盘占用率等,见下图:

图 11 控制指令流量

图 12 数据解密

  1. 检测

观成瞰云(ENS)-加密威胁智能检测系统能够对表格中列举的所有wmRAT样本进行检出,用最新批露的样本举例,检测结果见下图。

图 13 观成瞰云(ENS)-加密威胁智能检测系统检测结果

  1. 总结

在对蔓灵花的远控程序"wmRAT"多个样本的分析中可以看出该组织不断在对攻击武器做开发使功能逐渐完善,但是样本整体执行逻辑没有变化,通信使用的加密手法比较简单,功能仍然以文件搜索和上传下载等为主。在流量侧,攻击武器使用TCP协议进行通信,自定义加密格式不定,变化灵活,因此这种加密流量检测的难度进一步提高。观成安全团队将对蔓灵花组织的动向做长期跟踪,针对各类使用自定义加密的最新威胁密切跟进,并随时更新方案进行应对。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/277952.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码

文章目录 openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码178.1 前提条件178.2 操作步骤 openGauss学习笔记-178 openGauss 数据库运维-逻辑复制-逻辑解码-使用SQL函数接口进行逻辑解码 openGauss可以通过调用SQL函数,…

GLTF编辑器-位移贴图实现破碎的路面

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 位移贴图是一种可以用于增加模型细节和形状的贴图。它能够在渲染时针…

PCL 空间直角坐标转大地坐标(直接求解法C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 二、代码实现 由于此类坐标系的转换涉及到大坐标,PCL的float类型数据结构,无法保证数据精度,用…

彭涛:2023年终复盘,工作,团队,个人!

眨眼2023即将结束,2024即将开启,每年这个时候,都会简单总结下自己这一年,既是对今年的一个复盘和回顾,也是对新一年的向往和期待。 我的2023年,大概分为 「个人」,「家庭」,「团队」…

Qt篇——QwtPainter::drawPie绘制扇形

QwtPainter::drawPie(QPainter *painter, const QRectF &rect, int startAngle, int angle); 一、参数含义: painter: 重绘函数中的painter对象 rect: 要绘制扇形的圆的外切矩形。 startAngle: 要绘制的扇形的起始角 …

【Unity地形】使用地形工具创建场景环境-Terrain

如上图Unity的地形工具可以让我们实现创建复杂、丰富的3D室外环境。 我们创建地形很简单,在层级面板中右键-3Dobject-Terrain 就可以创建一个默认的地形模型!这个模型是Unity内置的。 接下来的地形编辑功能全部集中在这个地形的组件上 主要功能如下&…

万物简单AIoT物联网平台快速开始

学物联网,来万物简单IoT物联网!! 万物简单AIoT物联网提供一站式的AI物联网的学习平台,以及物联网SaaS私有化部署的解决方案。从终端硬件系统、云平台到APP前端的物联网能力,助力企业和开发者的设备具备1分钟快速上云的…

Matplotlib找不到Times New Roman的解决方案

问题背景 在使用seaborn或者matplotlib进行论文画图的时候,一般都会用Times New Roman这个字体,但是在Linux系统里,经常会遇到以下的问题: findfont: Font family [Times New Roman] not found. Falling back to DejaVu Sans. 也就是说找不…

实战14 权限处理

目录 1、权限处理后端接口 1.1 SpringSecurityConfig 1.2 在控制器中加入权限控制 2、前端页面按钮权限判断 2.1 保存权限字段 2.2 编写按钮权限判断 2.3 引入按钮权限判断脚本 2.4 按钮权限判断脚本使用 3、token过期处理 3.1 编写Store代码 3.2 编写刷新token新代码…

算法设计与分析实验报告-贪心算法

校课程的简单实验报告。 算法设计与分析实验报告-递归与分治策略 算法设计与分析实验报告-动态规划算法 算法设计与分析实验报告-贪心算法 dijkstra迪杰斯特拉算法(邻接表法) 算法设计与分析实验报告-回溯法 算法设计与分析实验报告-分支限界法 …

基于Java车间工时管理系统(源码+部署文档)

博主介绍: ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到 Java项目精品实…

web等保评测需要实机查看的操作系统、服务器、数据库和应用部分

“等保测评”全称是信息安全等级保护测评。是经公安部认证的具有资质的测评机构,依据国家信息安全等级保护规范规定,受有关单位委托,按照有关管理规范和技术标准,对信息系统安全等级保护状况进行检测评估的活动。 本文陆续将遇到的…

Python教程(18)——python文件操作详解

Python文件操作 Python文件操作基础操作使用with语句管理文件处理文件操作的异常处理文件路径 文本格式和二进制格式文本格式 (Text Mode)二进制格式 (Binary Mode)例子说明 文件操作的相关函数 所谓的文件操作是指对计算机中的文件进行读取、写入、修改和删除等操作。简单来说…

安装DataEase(Linux线上安装)修改端口

问题一:端口更改 警告本解决方法仅仅应急,如果找到了更好的方法请通知我,感谢你的理解!!! 为了让mysql与dataease的端口不发生冲突,将 MySQL 外部运行端口参数 ${DE_MYSQL_PORT} 改为新端口&am…

一篇文章掌握 NestJS 所有的生命周期以及生命周期的执行时机

前言 NestJS 是一个用于构建高效、可扩展的 Node.js 服务器端应用程序的框架,它使用 TypeScript 作为开发语言,也支持原生的 JavaScript。在 NestJS 中,生命周期事件是一个重要的概念。在我们构建和管理应用程序时,有时需要在特定…

JUC常用并发工具类

JUC常用并发工具类 1、什么是JUC? JUC 就是 java.util.concurrent 包,这个包俗称 JUC,里面都是解决并发问题的一些东西,该包的位置位于 java 下 面的 rt.jar 包下面。 2、4大常用并发工具类 2.1 CountDownLatch CountDownLatch&#x…

[Angular] 笔记 17:提交表单 - ngSubmit

Submitting Forms (ngSubmit) 表单的一般完整写法: 如果表单验证失败,必须 disable 提交按钮,阻止用户提交不合法的数据。 提交表单后,与表单对应的 json 数据 post 到后端: {"id":1,"name":…

Windows上安装NodeJs

Windows上安装NodeJs 一、操作环境 操作系统: Windows 10 专业版 SDK:NodeJs v16.19.1(安装鸿蒙IDE自动安装的NodeJs) 二、安装过程 2.1下载Node.js安装包 官网下载地址: 下载历史版本安装也可 2.2 双击下载好的安装文件 2.3 打开下载…

从SLSA看软件供应链面临哪些威胁及对应解决方案

引言:软件制品供应链等级SLSA(Supply-chain Levels for Software Artifacts)是由由谷歌发起,基于行业共识建立的一个逐步完善供应链安全的规范。本文基于Google SLSA框架来看软件供应链安全面临的安全风险。 1. 简介 2023 年 4 月…