观成科技:海莲花活跃木马KSRAT加密通信分析

概述

自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执行过程

  1. 图 2‑2 解密后的参数信息
  2. 3.通信分析

心跳包

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

图 3‑1 KSRAT心跳包

图 3‑2 心跳包数据结构

图 3‑3 解密后的心跳包

控制指令包

当攻击者想要对受害机进行操作时,会通过心跳包的响应体向样本下发控制指令。控制指令按照加密方式可以分为两种,一种使用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”

数据回传包

回传给服务器的数据也使用了两种方式进行加密。接收到控制指令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.产品检测

观成瞰云(ENS)-加密威胁智能检测系统能够对海莲花KSRAT进行有效检出。

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

5.总结

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

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

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

相关文章

DC系列靶场---DC 7靶场的渗透测试

DC-7渗透测试 信息收集 地址探测 使用arpscan对目标地址进行探测 arp-scan -l I eth0 得到目标主机IP地址为172.30.1.132 扫描端口 使用nmap对目标主机做端口扫描 nmap -sS -sV -T4 -p- -O 172.30.1.132 扫描到目标主机开启了80端口、22端口。 -sS Nmap的SYN扫描&…

mapbox-gl 实现房间面生成墙(借助jsts)

文章目录 一、前言 一、前言 当我们从室外放大到室内展示室内图层时,我们可能只有房间面的数据,这时要展示房间墙数据,就需要借助工具对房间面进行缓冲,但是数据变动时,我们还要再次进行一下缓冲区生成操作。下面是借…

Copy as cURL 字段含义

当前端在开发过程中,遇到接口错误反馈给后端人员时,一般在此接口处右键复制为cURL。 格式如下: curl https://xxx.xxx.cn/xxx/xxx/management/record/list \-H accept: application/json, text/plain, */* \-H accept-language: zh-CN,zh;q0…

1.4 C 程序的编译过程与 CLion 调试技巧

目录 1 程序的编译过程 1.1 编写源代码 1.2 预处理(Preprocessing) 1.3 编译(Compilation) 1.4 汇编(Assembly) 1.5 链接(Linking) 1.6 执行 2 编译过程的输入输出文件概览 …

谷粒商城实战笔记-140-商城业务-nginx-搭建域名访问环境二(负载均衡到网关)

文章目录 一,通过域名访问商城架构设计1,为什么nginx要将请求转发给网关2,架构设计 二,配置1,nginx配置1.1 nginx.conf1.2 gulimall.conf1.3 配置原理 2,网关配置 三,记录2个问题1,网…

【C++】初识面向对象:类与对象详解

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C相关特性 本章将介绍C中一个重要的概念——类。通过类,我们可以类中定义成员变量和成员函数,实现模块化封装,从而构建更加抽象和复杂的工程。 &…

基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 MSER 4.2 HOG特征提取 4.3 SVM 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2017b 3.部分核心程序 (完整版代码包含中…

CMU15445 (Fall 2023) Project 1 - Buffer Pool 思路分享

文章目录 写在前面Task 1 - LRU-K Replacement PolicyTask 2 - Disk SchedulerTask 3 - Buffer Pool ManagerNewPageFetchPageUnpinPageDeletePageFlushPage 写在最后 写在前面 操作系统为应用程序提供了默认的缓存机制,DBMS作为应用程序,为什么不使用默…

LSLM论文

解决的问题 现在的语音模型(SLM)增强了语音对话的能力,但都局限于回合制对话,在实时对话的情境下与用户交互的能力有所欠缺,例如:当生成的对话不满意时被打断。所以,这篇论文在实时的的语音语言…

ShardingSphere自定义分布式主键生成策略、自定义分片规则

文章目录 主键生成策略源码KeyGenerateAlgorithm源码入口实现扩展 自定义分布式主键生成策略 分片算法ShardingAlgorithm实现扩展 自定义分片算法踩的坑 主键生成策略源码 开发者手册 KeyGenerateAlgorithm 全限定类名org.apache.shardingsphere.sharding.spi.KeyGenerateAl…

QT界面设计开发(Visual Studio 2019)—学习记录一

一、控件升级 简要介绍: 简单来说,控件提升就是将一个基础控件(Base Widget)转换为一个更特定、更复杂的自定义控件(Custom Widget)。这样做的目的是为了在设计界面时能够使用更多高级功能,而不…

环境搭建:全面详尽的 MongoDB Shell MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主)

环境搭建:全面详尽的 MongoDB Shell & MongoDB Server介绍、安装、验证与配置指南(以 Windows 系统为主) MongoDB 是一个基于文档的 NoSQL 数据库,以其高性能、灵活性和可扩展性而受到广泛欢迎。本文将带您完成 MongoDB 的安装…

bpmn简单使用(制作流程图)

1、先下载依赖,下面是我下载的版本 "bpmn-io/properties-panel": "^3.23.0", "bpmn-js": "^17.9.1", "bpmn-js-properties-panel": "^5.6.1", "camunda-bpmn-moddle": "^7.0.1",…

CTFHUB-web-RCE-eval执行

开启题目 查看源码发现直接用蚁剑连接就可以,连接之后发现成功了

计算机网络408考研 2020

2020 湖科大教书匠的个人空间-湖科大教书匠个人主页-哔哩哔哩视频 计算机网络408考研 历年真题解析(有字幕无背景音乐版)_哔哩哔哩_bilibili 计算机网络408考研2020年真题解析_哔哩哔哩_bilibili 1 2 3 41 11 1

乡村振兴农村煤改气建设规划设计方案

1. 方案目标与背景 《乡村振兴农村煤改气建设规划设计方案》旨在响应国家乡村振兴战略,通过建设规划推动农村能源结构转型,减少燃煤造成的环境污染,促进农村可持续发展。 2. 农村能源消耗现状 根据2006至2007年的全国性调研,农…

从一个服务预热不生效问题谈微服务无损上线

作者:凡问、启淮 前言 本文基于阿里云技术服务团队和产研团队,在解决易易互联使用 MSE(微服务引擎)产品无损上线功能所遇到问题的过程总结而成。本文将从问题和解决方法谈起,再介绍相关原理,后进一步拓展…

4.11.seq2seq 序列到序列学习

序列到序列学习(seq2seq) ​ 使用两个循环神经网络的编码器和解码器&#xff0c;应用于序列到薛烈类的学习任务。 ​ ​ 在图中&#xff0c;特定的"<eos>"表示序列结束词元。一旦输出序列生成此词元&#xff0c;模型就会停止预测。在循环神经网络解码器的初…

JS+CSS案例:可适应上下布局和左右布局的菜单(含二级菜单)

今天,我给大家分享一个原创的CSS菜单,整个菜单全由CSS写成,仅在切换布局时使用JS。合不合意,先看看效果图。 本例图片 接下来,我来详细给大家分享它的制作方法。 文件夹结构 因为涉及到了样式表切换,所以,你需要借鉴一下我的文件夹结构。 CSS文件夹: reset.css 用于…

维吉尼亚密码加解密实现(python)

维吉尼亚密码 原理 维吉尼亚密码&#xff08;Vigenere&#xff09;是使用一系列凯撒密码组成密码字母表的加密算法&#xff0c;属于多表密码的一种简单形式。 下面给出一个例子 明文&#xff1a;come greatwall 密钥&#xff1a;crypto首先&#xff0c;对密钥进行填充使其长…