XDSpy APT组织近期针对俄罗斯国防部的攻击活动分析

news2024/12/24 2:19:43

概述

XDSpy是ESET于2020年首次披露的APT组织,该组织最早活跃于2011年,主要针对东欧和塞尔维亚地区的政府、军队、外交部及私人公司进行窃密活动。2020年9月,该组织在攻击活动中使用Covid-19主题诱饵下发恶意Windows脚本文件(WSF)。

时隔两年,安恒猎影实验室再次捕获到该组织利用WSF文件针对俄罗斯国防部的攻击活动。活动包含如下特点:

1、此次攻击活动只针对特定用户名用户,非目标用户不会触发恶意代码执行;

2、样本中用于执行恶意行为的Windows API函数、DLL库、字符串等均被加密,且样本包含较为完整的反沙箱、反虚拟机、反杀软检测;

3、后续负载为模块化恶意软件,主要功能为执行C2回传的其他恶意组件。

样本信息

本次捕获样本信息如下

文件名

|

哈希

—|—

Povestka_26-09-2022.zip

|

f7d77a54311e1ec7ecaffe2e2a9b4a20

Povestka_26-09-2022.wsf

|

ee4cf132ed46f221d04d8c1150c41b5a

运行后将释放伪装俄罗斯联邦国防部来源的传票文件。

1668148175_636debcf491839bd110a7.png!small

样本分析

1 初始阶段Povestka_26-09-2022.wsf分析

样本运行后,首先尝试启动Internet Explorer并访问hxxp://best-
downloader[.]com/Povestka_26-09-2022.pdf,展示诱饵文件以迷惑用户。

诱饵文件打开如下,其伪造俄罗斯联邦国防部来源以攻击相关目标。

恶意脚本中采用的字符串加密方式为:与指定字符串异或并转换成为对应的hex值。其中包含有大量的无效字符串以及无效函数调用。

接着脚本将获取本机用户名信息,并与预期攻击目标的用户名进行比对,若比对失败,则退出恶意脚本执行。可见该组织攻击范围极小,针对性较高。

获取C:\Program Files\以及C:\Program Files (x86)\目录下文件夹,检查是否存在Symantec、Norton
Security或Bitdefender反病毒软件。

虚拟机环境检测:

若以上环境检测均通过,则解密后续负载AnalysisLinkManager.exe到本地%Temp%目录。

最后通过ShellWindows启动 CLSID: 9BA05972-F6A8-11CF-A442-00A0C90A8F39

2 后续负载AnalysisLinkManager.exe分析

恶意负载运行后,首先通过注册表HARDWARE\DESCRIPTION\System\BIOS查询SystemProductName

遍历C:\Program Files\以及C:\Program Files
(x86)\目录,并在之后的新线程中检查是否存在Kaspersky、ESET以及Avast反病毒软件。

判断当前文件运行路径是否在%Temp%目录中,若为%Temp%目录启动,则新建线程执行后续恶意操作。

获取计算机名、用户名、时区信息以及内置的恶意软件版本号进行拼接。

检测与VirtualBox关联的文件目录C:\Windows\DataManagerVBox\、管道信息\\.\pipe\VBoxTrayIPC等、BIOS固件信息,以判断恶意文件是否运行在VirtualBox、VMware或其他运行SeaBIOS的虚拟机。

与恶意脚本功能相似的是,后续恶意负载同样会判断目标用户名是否为John/WALKER/george/Frank/shelly/Harry
Johnson,若非目标用户,则退出恶意负载执行。

若以上环境检测均通过,则在注册表HKEY_CURRENT_USER\Environment中添加环境变量UserInitMprLogonScript

新线程中,恶意负载将目标主机的操作系统版本、内部版本号、操作系统架构、恶意软件版本、主机名、用户名以";"符拼接,与字符串“nirgrun895tg9nsvjnwiv12309ASHDbibvenibowrvREXVYBUNIiugycm898y42irwubuv94nabdRDU”进行异或,再进行Base64编码,将其中“+/=”符号分别替换为“%2B%2F%3D”,最后作为参数之一&sfin=的值以GET方式向C2发送请求。

查找本机%AppData%\AppInfoData\路径下是否存在配置文件2486348821LKolkijhkUIO.zxtu,若存在,则读取配置文件数据,以字符串“OP789hqedoevrn68f34byicw@#njsunodejwdn023ejcwfedwf3t5hbcuibwegv”作为密钥,使用RC4算法进行解密。

本机若不存在指定配置文件,则使用硬编码的C2地址进行通信。

其中配置文件的文件名2486348821LKolkijhkUIO的后半部分LKolkijhkUIO则为硬编码字符,前半部分2486348821则由v25286(恶意软件版本号)+
89ceb3a8c98a(代理ID)+ hiuhgnywervg9837kjfbhnwuier(硬编码字符)经如下算法加密生成。

代理ID同样基于本机收集到的信息进行生成:

恶意负载在向C2发送请求时将传递以下3个参数:

● &sfin={主机信息} //WEdDXEVDXgACA0BcT1xGRFJYTD4%2Ffx8GdnwAGBgWWiE3JV4JDlk%3D

● &sduyviop={请求ID} //qXrcDNbACRG3

● hr&u={代理ID} //89ceb3a8c98a

作为响应,服务器将返回以下9种指令:

● rstpg:遍历由plug指令加载的库地址,并调用每个库的第二个导出函数。疑似为卸载插件指令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vkb3smqX-1676552381617)(null)]

● watgh[ber:休眠1500毫秒(通过调用CreateEventW + WaitForSingleObject)

●56uhj544getr:内部计数器 +100

●r4g3rf:休眠1500毫秒(通过调用CreateSemaphoreW+WaitForSingleObject)

●bwtp:在内存中解密并执行后续

●sysinfo:收集系统信息,除前所述外还包括:Program Files和Program Files (x86)
的完整目录列表、驱动器信息、当前C2、代理 ID

●ccsv:更新C2和使用的协议(http/https)的信息并将其保存到文件中

●plug:新建线程,通过RC4算法解密并执行后续负载(插件)

●gfdfgdfgsfuilkyuj:获取用户名

关联分析

在对持续跟踪的APT组织攻击手法进行排查后我们发现,此次捕获的攻击样本在如下方面与XDspy组织有较多重合:

01 均收集C:\Program Files以及C:\Program Files (x86)目录下的文件夹信息

02 均具有较强的针对性,即针对特定用户名目标进行攻击

03 相同的资源访问方式,均通过InternetExplorer.Appplication对象的Navigate方法

04 对杀软、虚拟机的检测

05 最后均通过ShellWindows启动后续负载

根据样本特征,我们在视野范围内关联到XDSpy组织在2022年4-10月期间投放的其他攻击样本如下:

文件名

|

Hash

|

诱饵文件地址

—|—|—

Частичная мобилизация Последняя повестка!.msg

|

0bb5983192375432403c74cf2d68ee67

|

hxxps://download24center.com/Povestka_26-09-2022/download/ksdjgvncl/GFF5gR6cZVAQ9HaX

Pismo_07.06.2022.zip

|

8e2571822b8bbb28bd926d72d889f924

|

Pismo_07.06.2022.wsf

|

aaeadb015d6cc2688c4ee4e4c472841d

|

hxxps://dropbox.com/Pismo_07.06.2022

Skan0002766.zip

|

244526e6744f0264d3ecef773b8e8c31

|

Skan0002766.wsf

|

8a837f66fb894e8d55da15c41d632fa5

|

hxxps://downloading24.com/Skan0002766.jpg

Skan00754.wsf

|

fe114059c46b03e758f3e295b0ac996e

|

hxxp://easy-download24.com/Skan00754.jpg

Povestka_26-09-2022.zip

|

8f2cf86cd56b903ad6398514bf59be11

|

Povestka_26-09-2022.wsf

|

544952335a9c7f3598b05f2e4c936b2a

|

hxxp://download24center.com/Povestka_26-09-2022.pdf

Infografika_spisok.zip

|

7e1e5cd5d01a773f2d677f3d30b7485a

|

Infografika_spisok.wsf

|

3794ff8ea5c943e01b27309598932d5a

|

hxxps://mchs.gov.ru/podderzhka_info

Postanovlenye_223.zip

|

9bf2c36129cd5405e7e4e1c967757d7d

|

Postanovlenye_223.wsf

|

84fdd60714840cf06b742464167a1a2f

|

hxxps://gpk.gov.by/ukaz/postanovlenye_223

后续恶意负载分为3种变体,可根据文件名划分为Management Data
Processing.exe、OptimizationInputDiagnosis.exe以及AnalysisLinkManager.exe。其中文件名为AnalysisLinkManager.exe的恶意负载流量特征如下图,且域名大多由3个英文单词组成。

基于关联到的样本信息,我们发现该组织于2022年4月下旬在俄罗斯联邦民防、紧急情况和救灾部以及白俄罗斯国家边境委员会的官方网站托管诱饵文件,相关部门疑似遭到入侵。

2022年10月,该组织使用仿冒俄罗斯联邦国防部的钓鱼邮件对未服兵役人员发送的法院传票信息,邮件中包含两个指向同一恶意负载的下载链接。

最后

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【扫下方二维码】免费领取:

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

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

相关文章

高通平台开发系列讲解(Sensor篇)IAM20680驱动程序的使用

文章目录 一、相关编译宏二、设备树配置三、打开iio自动挂载脚本四、模块加载验证沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍 IAM20680 驱动程序。 一、相关编译宏 目录:arch/arm/configs CONFIG_IIO_BUFFER=y CONFIG_IIO_KFIFO_BUF=y CONFIG_II…

Highcharts.Chart

Highcharts 是一个使用javascript 脚本来生成图表的工具,和jfreechart 作用类似,都用来生成各种图表,并支持图片的导出和打印。 从官网 www.highcharts.com 上下载的压缩表中的example中有各种图表的例子。 要编写生成图表的例子建议从 文…

生成小分子力场TOP

生成小分子力场TOP ATB网站 生成基于Amber力场适配gromacs格式TOP文件, 对于使用GaussView 计算resp电荷可以参考: https://blog.csdn.net/weixin_42486623/article/details/129055384 下面我们使用上面是生成的mol2文件来生成基于Amber的力场&#x…

Linux网络编程 | 彻底搞懂零拷贝(zero-copy)技术

传统文件传输的问题 在网络编程中,如果我们想要提供文件传输的功能,最简单的方法就是用read将数据从磁盘上的文件中读取出来,再将其用write写入到socket中,通过网络协议发送给客户端。 ssize_t read(int fd, void *buf, size_t …

JVM05 方法区

Person:存放在元空间,也可以说方法区 person:存放在Java栈的局部变量表中 new Person():存放在Java堆中 1.方法区的理解 方法区主要存放的是 Class,而堆中主要存放的是 实例化的对象 方法区(Method Area…

ubuntu清理挖矿病毒

0 序言 我之前搭建的hadoop用于测试,直接使用了8088和9870端口,没有放入docker,从而没有端口映射。于是,就被不法之徒盯上了,hadoop被提交了很多job,使得系统被感染了挖矿病毒,在前几天阿里云站…

企业实施了IM移动平台后,可以在上面做什么?

企业实施了IM移动平台后,可以有很多服务场景,其中员工服务平台是一个很好的场景组合。企业固然是以赢利为目的的组织,然而,在一个企业中同样需要有人文关怀的氛围。这种人文关怀,说到底,就是一种以员工为本…

阿里巴巴主流数据库连接池Druid入门

一.数据库连接池的必要性 (一).传统数据库连接模式的的步骤 1.在主程序中创建连接 2.进行sql操作 3.关闭数据库连接 (二).传统数据库连接模式存在的问题 1.浪费时间:每次连接时都要验证登录和将conn加载到内存, 2.不能大规…

使用ThreadLocal实现当前登录信息的存取

有志者,事竟成 文章持续更新,可以关注【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。 文章目录一、使用…

【多线程与高并发】- 线程基础与状态

线程基础与状态 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 一个有梦有戏的人 怒放吧德德 🌝分享学习心得,欢迎指正,大…

漏洞深度分析|CVE-2023-25141 sling-org-apache-sling-jcr-base存在JNDI注入漏洞

项目介绍 Apache Sling提供对可插入资源提供程序的支持。虽然这允许将自定义数据提供程序非常灵活和高效地集成到Sling中,但这种集成是在Sling的资源 API 级别上完成的。可能依赖于能够将资源适配到JCR节点并继续使用JCR API的遗留代码将不适用于此类资源提供者。 …

微信小程序自动化测试最佳实践(附 Python 源码)

目录:导读 小程序运行环境 微信小程序技术架构 使用 Chrome 调试小程序 小程序的性能测试 微信小程序的自动化测试​编辑 源码-微信小程序自动化测试 Python 版代码示例 小程序自动化测试需要跨过的几个坎 写在最后 随着微信小程序的功能和生态日益完善&…

“一号文件”聚焦三农,VR全景助农发展数字化

一号文件为何如此聚焦三农?因为三农是拼经济的基础,也是筑牢底盘的基本保证。现如今,农业基础还不稳固,而且城乡区域发展和居民收入差距依旧较大,为了解决城乡发展不平衡、农村发展不充分等矛盾,发展数字化…

Fuzz概述

文章目录AFL一些概念插桩与覆盖率边和块覆盖率afl自实现劫持汇编器clang内置覆盖率反馈与引导变异遗传算法fork server机制AFL调试准备AFL一些概念 插桩与覆盖率 边和块 首先,要明白边和块的定义 正方形的就是块,箭头表示边,边表示程序执行…

java有关类的初始化的分析

什么是类? 类是具有相同状态和相同行为的一组对象的集合 什么是对象? 万事万物皆为对象,可以理解为具体的个体就是对象 什么是面向对象的编程? 就是只在乎结果而不在乎过程,怎么理解这句话?举个例子&#x…

彻底废了,去干了两年外包...

先说一下自己的情况。大专生,17年通过校招进入湖南某软件公司,干了接近2年的点点点,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了五年的功能测试…

MacOS Ventura 13.2.1 (22D68) 正式版带 OC 0.8.9 and winPE 双分区原版黑苹果镜像

2 月 14 日消息,苹果今日向 Mac 电脑用户推送了 macOS 13.2.1 更新(内部版本号:22D68),本次距离上次发布隔了 21 天,以修复Bug和安全更新为主。 镜像下载: 微信公众号: MacOS Vent…

docker 查看和分析镜像内文件

docker inspect docker inspect node:alpine查看元数据信息,一共有三层 "RootFS": {"Type": "layers","Layers": ["sha256:8c6806a0692459f603d074b4a7bdd38915650f1563f4ec728dad229475a52090","sha256:…

Python学习-----函数4.0(递归函数习题)

目录 递归算法 1.进制数转换 2.阶乘递归 3.递归获取两个数之间最小公倍数 4.递归获取两个数字之间最大公约数 5.斐波那契数列 5.递归求得数列的最值 6.倒序输出 7.递归二分法查找 递归算法 递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过…

部署JDK+tomcat上线jspgou项目

系列文章目录 文章目录系列文章目录一、前言二、Tomcat部署1、Tomcat Http Server2、安装MySQL3、部署jspgou(电子商城)一、前言 什么是JAVA虚拟机 所谓虚拟机,就是一台虚拟的计算机。他是一款软件,用来执行一系列虚拟计算机指令…