海莲花活跃木马KSRAT加密通信分析

news/2024/10/17 15:28:17/

1.概述

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

图 2‑2 解密后的参数信息

3.通信分析

3.1心跳包

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

图 3‑1 KSRAT心跳包

图 3‑2 心跳包数据结构

图 3‑3 解密后的心跳包

3.2控制指令包

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

3.3数据回传包

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

玖鼎软件科技-加密威胁智能检测系统能够对海莲花KSRAT进行有效检出。

加密威胁智能检测系统检测结果

5.总结

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


http://www.ppmy.cn/news/1514822.html

相关文章

Hooks 「 useImperativeHandle 」子组件向父组件暴露方法

封装公共的组件提供操作方法。 子组件 import React, { useEffect, useRef, useState, useImperativeHandle } from reactconst PublicOffice ({ PublicOfficeRef }) > {const pathList useRef([{ file: , name: , year: 2022 }])// 向父组件暴露的方法useImperativeHan…

K8S故障排查可视化指南 —— 筑梦之路

在线查看 中文版:http://114.132.181.71:8080/book/71 英文版:http://114.132.181.71:8080/book/70 A visual guide on troubleshooting Kubernetes deployments

Oracle 同义词SYNONYM 的使用

Oracle同义词是数据库中的一种特性,它允许用户为数据库对象(如表、视图、序列、过程、函数等)创建一个别名。这个别名可以简化SQL语句的编写,提高数据库对象的可访问性,并且可以在多用户协同开发环境中隐藏对象名称及其…

鸿蒙Harmony编程开发:服务端证书锁定防范中间人攻击示例

1. TLS通讯中间人攻击及防范简介 TLS安全通讯的基础是基于对操作系统或者浏览器根证书的信任,如果CA证书签发机构被入侵,或者设备内置证书被篡改,都会导致TLS握手环节面临中间人攻击的风险。其实,这种风险被善意利用的情况还是很…

中心极限定理

中心极限定理(Central Limit Theorem, CLT)是统计学中的一个重要定理,它描述了在某些条件下,大量独立随机变量的平均值的分布特性。简单来说,中心极限定理告诉我们:无论原始数据的分布是什么样的&#xff0…

python绘制爱心代码

效果展示 完整代码 Python中绘制爱心的代码可以通过多种方式实现,高级的爱心代码通常指的是使用较复杂的算法或者图形库来生成更加精致的爱心图形。下面是一个使用Python的Turtle模块来绘制爱心的示例代码: import turtledef draw_love():turtle.speed…

漏洞挖掘 | 记一次src挖掘-小程序敏感信息泄露

闲言 就现在的一个web漏洞挖掘强度还是非常高的,所以我们不妨把我们的眼光投向一个之前可能未曾涉及到的区域———小程序 是的微信小程序,这玩意的防范能力和过滤能力其实对比web方向是要弱小很多的 进入正题 以下就是我的一个小程序漏洞挖掘的小实例…

微信小程序用 pinia数据化存储信息

import { defineStore } from pinia import { ref } from vue import type {LoginResult} from /types/member //定义 Store export const useMemberStore defineStore( member, () > { // 会员信息 const profile ref<LoginResult>() //保存会员信息&#xff0c…