观成科技:蔓灵花组织加密通信研究分析总结

1.概述

蔓灵花,又名"Bitter",常对南亚周边及孟加拉湾海域的相关国家发起网络攻击,主要针对巴基斯坦和中国两国。其攻击目标主要包括政府部门、核工业、能源、国防、军工、船舶工业、航空工业以及海运等行业,其主要意图是窃取敏感资料。

迄今为止,蔓灵花组织使用的攻击武器呈现出开源化、组件化和重复使用的趋势,在通信上多使用HTTP和TCP协议,数据传输仍然采用简单的加密算法,如移位加密和XOR加密等。观成安全研究团队对其近两年使用频率最高的5款工具的各个版本进行了详细分析,包括xorRAT、sessionRAT、plaintextRAT、wmRAT和文件窃密组件,梳理样本通信的流量特征,进行了对检测方案的探索和总结。

2.流量特征分析

2.1 xorRAT

2.1.1 加密算法

xorRAT与wmRAT在通信上存在共性,均使用自定义TCP加密协议进行通信,通信端口采用随机大端口和80端口。样本使用逐字节XOR对数据进行加密,目前发现使用过的通信加密密钥有0xf6、0x9d、0xca,其中最常使用的加密密钥为0xca。

2.1.1 数据格式

数据格式为2字节的数据长度,后面拼接加密后(Unicode格式转化+XOR加密)的数据。见下图。

图 1 数据格式

2.1.3 上线包

xorRAT各版本样本的上线包数据均包含计算机名、用户名、操作系统版本、MAC地址和程序版本等信息。

图 2 上线包数据

对上线包数据进行解密,数据多包含DESKTOP、Admin、Windows等常见字符。见下图。

图 3 数据解密

2.1.4 心跳包

xorRAT各版本样本发送的心跳数据均为样本硬编码数据,为单字节的22或1。心跳包间隔时间区间为61-91秒。见下图。

图 4 心跳时间间隔、

图 5 心跳包流量

2.1.5 控制指令

各个版本的样本在控制指令上存在一些变化,但是差异不大,共包含10余种控制指令,包括敏感信息获取,文件传输,执行cmd指令等。服务器下发控制指令的数据格式均没有变化,下图以指令18为例。

模拟服务器下发指令18(获取磁盘信息),获取磁盘名称、卷标、类型等信息。

图 6 控制指令流量

图 7 数据解密

2.2 sessionRAT

2.2.1 加密算法

sessionRAT各版本样本均使用TCP协议传输数据,其通信流程具有一定的特殊性:sessionRAT是由服务器先下发控制指令,通信流程包括三步:①样本运行后,会主动向C2服务端发起TCP请求;TCP连接建立成功后,C2服务端会率先向客户端下发指令;客户端接收指令执行后会将执行结果发送到服务端。并且该攻击武器在通信中会对部分通信数据进行加密,加密方式较老版本的样本发生了变化,从多字节XOR更改为了移位算法,下面我们将用密钥0x67的样本作为例子进行说明。

2.2.2 数据格式

从2019到2024年,通信格式均未曾发生改变,其中通信的上下行数据格式有略微差异,见下图。

上行数据其中前5个字节为会话标识数据,样本会将5字节数据解密后在响应包中发送给服务端;6-7字节TCP载荷大小,表示整个C2下发指令包的长度;8-9字节为控制指令,样本会根据指令执行命令;10-11字节为后续传输数据的载荷大小;11字节为后续传输数据,样本会将该部分数据解密,并在执行控制指令时使用。

图 8 上行数据格式

下行数据其中前5个字节为会话标识数据,该数据根据C2下发指令包中的会话表示数据解密得到,并作为明文放在客户端响应包中;6-7字节为控制指令,该指令和C2下发指令包中的控制指令相同,在客户端响应包中传输时会经过加密;7字节后的数据为加密后的传输数据,该部分数据内容为控制指令执行后的返回结果。

图 9 下行数据格式

2.2.3 控制指令

sessionRAT各版本样本均支持多种远程控制功能,其中包括获取主机信息、获取文件目录、文件的读写功能、利用匿名管道实现shell等。

样本的C2服务器会先下发控制指令5026,客户端接收该指令会上传填充数据,见下图。

图 10 控制指令5026流量

收到客户端回传的数据后,样本的C2服务器会再次下发控制指令5000,客户端接收该指令会上传系统信息,见下图。

图 11 控制指令流量

图 12 数据解密

2.3 plaintextRAT

最早出现于2021年,于2023年12月开始活跃。与xorRAT功能一致,是明文版本的xorRAT。

2.3.1 上线包

各版本样本的上线包同样包含计算机名、用户名、操作系统版本、MAC地址和程序版本等信息。

图 13上线包流量

2.3.2 心跳包

心跳包由4字节的长度和1字节的样本硬编码数据构成。

图 14 心跳包流量

2.4 窃密木马

该攻击武器是一种窃密木马,该木马会窃取文件信息,获取文件路径。其url参数部分携带计算机名、MachineGuid、时间戳等内容。相关示例流量如下。

图 15 窃密木马流量

2.5 wmRAT

具体分析请查看历史文章《蔓灵花组织wmRAT攻击武器对比分析》,与之前相比,最新发现该武器的使用了新的加密密钥为0x16。需要注意的是,目前观察到加密密钥的使用呈逐渐增大的趋势。

3. 检测方案

总结蔓灵花组织使用的5种攻击武器的流量特征后,我们综合利用规则检测、行为检测和人工智能检测等手段,针对Bitter攻击武器的流量达到有效检出的效果。

3.1 规则检测

首先,我们采用基于规则的检测方法 ,在面对简单的明文通信和已知密钥加密的工具时,对其流量中的关键字符串,比如url、固定密钥加密的16进制字符进行匹配。在面对较为复杂的攻击武器通信加密的流量时,针对已知密钥的情况,可以利用已掌握的密钥规律进行解密尝试。通过成功解密的流量,我们可以进行第二轮的关键字符串匹配,例如识别上线包中常见的字符串及其连接符。通过规则匹配的手段检测出明文通信的工具;对加密工具的检测做初步的筛选工作,为后续的检测奠定了基础。

3.2 行为检测

对于未知密钥的加密流量,我们可以通过统计流量数据在时间、空间上的分布情况,对蔓灵花组织的每款工具制定行为模型,例如统计流量中的心跳时间间隔,载荷的数据格式,以及流量中上下行数据的关系,来判断是否符合蔓灵花组织某一攻击武器的流量通信行为特征。

4. 检测结果

观成瞰云(ENS)-加密威胁智能检测系统能够对以上所有攻击武器进行检出,用sessionRAT举例,检测结果见下图。

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

5. 总结

我们致力于捕捉蔓灵花组织使用过的攻击武器各版本之间的共性特征,综合规则检测、行为检测技术手段,以此为基础总结出一套高效的检测方案。面对APT组织通信流量的隐蔽、定制和多样性,我们将不断深入探索APT组织流量检测领域,并扩大研究范围至更多APT组织。我们计划持续深入研究APT组织的攻击行为模式,利用行为检测和规则检测提升系统的检测能力,及时发现并应对新型威胁。

6. 参考样本hash

2eca2f7a1fb4654dd73bf4a999ce155b2303e47340b26a49623f5b32948060c3

579f0eb06da53adf551da7b5dfd45ae73e1a74185a7f74e42952cc3c2c66d487

7bda85911c5d2d51655f20d0362d87d114465974852dd1add423dfd2cef3fc53

32005ebee5daadaa5ea96ae9891632b68184c29e92908080dcfcef7f3c0c4f83

cce9aa67c53f7152e2963b5ae4b13136b56187c6db0d49f0cf6b27fea78c17cf

813c67414723ea162e789b1fc4b269839351863050f27a2f906426dac3a86f39

552ec2ce24113e3f46b4e0cf6bc91eea483ad2eaf351eb92ee77f882b96d4006

dfea2ff5d91e4097d9cfd4676d3e9544a1e230c69ad02b6b4d778dd93d83ec66

14e43110cc3c40bf56d95df0079cc744055b1568dbceac05b50a2c0159bef872

fc9f84bad598c057b595efbca7ae0ae9a1678de7f2185275953424b3ec47a00e

132098213b5923463611e6fc77bfce0cfad3d727566ce0e87e9723456c698ae6

b7a9407b47baf7442e0baf94a3b4cc8b7420cb01364fc8e6a3c622b7ae39301f

caf871247b7256945598816e9c5461d64b6bdb68a15ff9f8742ca31dc00865f8

5ab76cf85ade810b7ae449e3dff8a19a018174ced45d37062c86568d9b7633f9

2b25469b0e23fc024f5ca147948292cd4175a18625cb8a5b67ab04300082866f

66a73b1b3b51a1c6a56db2d20cff9af3d1362b989989b5d9543d2e9b92ac9a3d

c24efc7c4dafd4f0b39e7ae7e84627fbd0fb766019b820cb11edbb8dda54de66

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端每日一题 2:DNS 解析过程

本文首发于公众号:腐烂的橘子 本文梗概: DNS 是什么,有什么作用一条 DNS 记录是什么样的DNS 域名解析原理DNS 服务器如何抵御攻击 DNS 是什么,有什么作用 DNS(Domain Name System)是一种应用层协议&…

使用和配置:超秀的 MySQL 客户端工具 MyCli

1.安装一个更人性化的一个mysql客户端、终端: sudo apt install mycli 登录方式 mycli -uroot password 2. 功能:界面更好看,且支持自动补全,按tab可以补全 3.mycli使用帮助说明文档 mycli --help用法: mycli [OPTIONS] [DATABASE]例如:…

西门子程序专业备份软件BUDdy for S7和使用说明

西门子程序专业备份软件BUDdy for S7和使用说明

虹科Pico汽车示波器 | 免拆诊断案例 | 2006 款林肯领航员车发动机怠速抖动

故障现象 一辆2006款林肯领航员车,搭载5.4 L发动机,累计行驶里程约为26万km。该车因发动机怠速抖动故障进厂维修,维修人员更换了火花塞、点火线圈及凸轮轴位置传感器,清洗了积炭和喷油器,故障依旧,于是向笔…

SpringBoot学习之Redis下载安装启动【Windows版本】(三十六)

一、下载Redis for Windows Redis 官方网站没有提供 Windows 版的安装包,但可以通过 GitHub 来下载安装包,下载地址:https://github.com/tporadowski/redis/releases 1、网站提供了安装包和免安装版本,这里我们直接选择下面的免安装版本 2、下载后的压缩包解压以后,如下…

C#基础之结构体

结构体 文章目录 1、概念2、基本语法3、示例4、结构体的使用5、访问修饰符6、结构体的构造函数思考1 描述矩形信息思考2 职业名字释放了技能思考3 小怪兽思考4 多个小怪兽思考5 奥特曼打小怪兽 1、概念 结构体是一种一定义变量类型 它是数据和函数的集合,可以在结…

Entity Framework6 Oracle 官网开发说明

Entity Framework, LINQ and Model-First for the Oracle Database

揭秘被忽视的商业模式:全民拼购助力客户实现日销千万的惊人业绩

今天,我想和大家分享一个颇具潜力的模式与玩法,尽管它在外界看来可能略显陈旧。这个模式曾被忽视,但我的一位客户却巧妙运用,实现了惊人的业绩——日销售额接近五千万,日订单量高达300万单。 值得注意的是,…

将文件导入数据库

#include <stdio.h> #include <sqlite3.h> #include <string.h> int main(int argc, const char *argv[]) { //打开数据库 sqlite3 *db NULL; if(sqlite3_open("./dict.db",&db) ! SQLITE_OK){ printf("sqlite…

Java 提取HTML文件中的文本内容

从 HTML 文件中提取文本内容是数据抓取中的一个常见任务&#xff0c;你可以将提取的文本信息用于编制报告、进行数据分析或其他处理。本文分享如何使用免费 Java API 从HTML 文件中提取文本内容。 安装免费Java库&#xff1a; 要通过Java提取HTML文本&#xff0c;需要用到Free…

QT——简易计算器(从0开始)

目录 一、题目描述&#xff1a; 二、创建工程&#xff1a; 1. ​编辑 2. 3. 4. 默认 5. 6. 7. 8. 默认 9. 创建完成 三、UI界面设计&#xff1a; 1. 添加按钮 1. 2. 按钮界面 3. 按钮绑定快捷键 2. 文本框添加 1. 文本框字体 2. 默认文本 3. 文本对齐方式…

Linux多线程(二) 线程同步 信号量互斥锁读写锁条件变量

多个进程同时访问某些资源时&#xff0c;必须考虑同步问题&#xff0c;以确保任一时刻只有一个进程可以拥有对资源的独占式访问。通常&#xff0c;程序对关键资源的访问代码只是很短的一段&#xff0c;我们称这段代码为关键代码段或者临界区&#xff0c;对进程同步&#xff0c;…

机器人系统开发ros2-基础实践01-学会自定义一个机器人动作aciton实体类

您之前在了解操作教程中了解了action 。与其他通信类型及其各自的接口&#xff08;主题/消息和服务/srv&#xff09;一样&#xff0c;您也可以在包中自定义操作。本教程向您展示如何定义和构建可与您将在下一个教程中编写的action服务器和action 客户端一起使用的操作。 需要理…

UE5 GAS开发P41-43 永久效果,去除永久效果,伤害区域,EnumClass,开始重叠与结束重叠事件

这一部分学习了怎么创建一个伤害性的地形(火焰地形,毒沼泽等都可以用这个方式创建) AuraEffectActor.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "GameplayEffect.h&q…

软件测试(Web自动化测试)(二)

一.Selenium WebDriver的基本应用 &#xff08;一&#xff09;安装浏览器驱动 1.关闭浏览器的自动更新功能 以Windows7&#xff08;64位&#xff09;操作系统为例&#xff0c;讲解如何关闭Chrome浏览器的自动更新。首先按下快捷键“WinR”&#xff0c;打开运行对话框&#x…

【c++】深入剖析与动手实践:C++中Stack与Queue的艺术

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章我们来到STL新的内容&#xff0c;stack和queue 目录 1. stack的介绍与使用函数介绍例题一&#xff1a;最小栈例题二&#xff1a;栈的压入、弹出队列栈的模…

Adobe Photoshop CC 2017无法打开解决方案

Adobe Photoshop CC 2017双击无反应&#xff0c;右键以管理员身份运行也没有反应 解决方案&#xff1a; 事件查看器中查看应用程序的事件 如果找到程序报错事件&#xff0c;网上下载ZXPSignLib-minimal.dll文件替换错误模块路径位置的该文件即可 ZXPSignLib-minimal.dll下载地…

树莓派驱动开发----spi flash设备w25q64开发

这期使用的是spi驱动开发框架&#xff0c;其实spi和iic合起来有一个 Regmap 子系统&#xff0c;下回讲这个&#xff01;&#xff01; 使用方法 &#xff1a;./w25q64App /dev/w25q64-device <cmd> <address> <cnt> <data> ... 可读写擦&#xff0…

大模型_alpaca-lora微调及推理部署

文章目录 lora是什么重要相关参数LoRA 的优势 微调部署下载项目切换到项目目录下切换conda环境模型下载微调数据集下载 启动微调失败1原因分析 失败2修改前修改后 推理部署 lora是什么 重要相关参数 lora_rank(int,optional): LoRA 微调中的秩大小。lora_alpha(float,optional…

【嵌入式AI开发】轻量级卷积神经网络MobileNetV2详解

前言:MobileNetV2网络先升维后降维,在降维时使用线性激活函数,带残差的Inverted bottleck模块,防止ReLU信息丢失。在图像分类、目标检测、语义分割等任务上实现了网络轻量化、速度和准确度的权衡。 回顾MobileNetV1的理论和MobileNetV2项目实战可查阅如下链接: 【嵌入式AI…