透视俄乌网络战之一:数据擦除软件
数据擦除破坏
- 1. WhisperGate
- 2. HermeticWiper
- 3. IsaacWiper
- 4. WhisperKill
- 5. CaddyWiper
- 6. DoubleZero
- 7. AcidRain
- 8. RURansom
数据是政府、社会和企业组织运行的关键要素。数据擦除软件可以在不留任何痕迹的情况下擦除数据并阻止操作系统恢复摧,达到摧毁或目标系统和数据的目的,具有致命的破坏性。
俄乌冲突中,各方势力通过数据擦除恶意软件破坏关键信息基础设施计算机的数据,达到深度致瘫的效果,同时窃取重要敏感信息。
俄乌军事冲突中数据擦除软件
名称 | 发现时间 | 发现者 | 攻击对象 |
---|---|---|---|
WhisperGate | 1月13日 | 微软公司 | 乌克兰 |
HermeticWiper | 2月23日 | 网络安全公司 ESET | 乌克兰 |
IsaacWiper | 2 月 24日 | 网络安全公司 ESET | 乌克兰 |
WhisperKill | 2月 23日 | 乌克兰国家特殊通信和信息保护局 | 乌克兰 |
CaddyWiper | 3月14日 | 网络安全公司 ESET | 乌克兰 |
DoubleZero | 3月17日 | 乌克兰计算机应急响应小组 | 乌克兰 |
AcidRain | 3月31日 | 美国网络安全公司SentinelLabs | 乌克兰 |
RuRansom | 3月9日 | 美国网络安全公司Trend Micro | 俄罗斯 |
1. WhisperGate
(1)WhisperGate简介
WhisperGate是一个冒充勒索软件的威胁性 MBR(主引导记录)擦除器,该恶意软件能够完全破坏受感染的机器,使其无法启动。
(2)WhisperGate分析
第一阶段
WhisperGate 恶意软件以名为“stage1.exe”的文件的形式放置在 C:\PerfLogs、C:\ProgramData、C:\ 和 C:\temp
目录之一中的受感染系统上。
为了转移人们对其真正目的的注意力,WhisperGate 采用了勒索软件威胁中通常观察到的几个特征。它提供了一张赎金票据,声称攻击者希望获得 10,000 美元的比特币。这笔钱应该转移到提供的加密钱包地址。该说明提到,受害者可以通过提供的 Tox ID for Tox(一种加密的消息传递协议)与黑客联系。但是,当受感染的机器关闭时,WhisperGate 会覆盖其 MBR 记录,这是硬盘驱动器中用于正确加载操作系统的部分。
WhisperGate 通过破坏 MBR,使系统变砖,并且无法恢复其上的任何数据。勒索软件部分只是用来掩盖攻击者的真实意图。
第二阶段
在攻击的第二阶段,名为“stage2.exe”的文件充当下载程序,从 Discord 频道获取文件损坏程序。下载链接被硬编码到下载器本身。执行有效负载后,它会扫描系统上的特定目录以查找与 180 多个不同扩展名列表匹配的文件。所有目标文件的内容将被固定数量的 0xCC
字节覆盖。为操作设置的总文件大小为 1MB。加扰文件后,破坏者将通过添加随机的四字节扩展名来更改其原始名称。
2. HermeticWiper
(1)HermeticWiper简介
HermeticWiper,因其数字证书是盗取自一家名为Hermetica Digital Ltd的公司。该擦除器的显著特点是能够绕过Windows的安全功能,,部署后不仅会破坏本地数据,还会破坏 Windows PC 的主引导记录 (MBR),从而阻止计算机在强制重新启动后引导至操作系统。
网络安全专家认为该软件至少具备以下功能:
- 快速擦除数据文件,并且不可恢复;
- 快速擦除NTFS、FAT分区数据;
- 完全擦除整个磁盘或单独的分区;
- 快速清除系统或者引导区;
- 支持清除VMware、Virtual Box等虚拟机数据。
(2)HermeticWiper分析
HermeticWiper是一个32位Windows可执行文件,其图标类似于一个礼物。
- 程序大小:117000 bytes
- MD5:3F4A16B29F2F0532B7CE3E7656799125
- SHA1:61B25D11392172E587D8DA3045812A66C3385451
程序运行后首先提升SeBackupPrivilege权限:
然后获取主机处理器的位数,从PE资源段中释放对应的驱动文件:
以服务的方式加载驱动,并更改活跃状态的系统vss服务启动类型SERVICE_DISABLED从而禁用vss服务:
在c:/windows/system32/driver目录下释放四个字母命名的驱动程序xrdr.sys并加载驱动;
创建多个线程并使用长时间的sleep来绕过沙箱的监控时间
HermeticWiper,exe进程占用了较高的CPU使用率,并向驱动发送IOCTL控制码。随着恶意软件的执行,会发现一些应用程序将无法正常工作,这是因为某些文件(包括系统DLL)已被随机数据覆盖。
系统重启后,Windows操作系统将无法正常工作:
3. IsaacWiper
IsaacWiper存在于没有Authenticode签名的Windows DLL或EXE中,执行时会枚举所有物理和逻辑驱动器和卷标,用随机数据覆盖每个磁盘前0x10000字节,并擦除磁盘上的文件数据。
该工具还会将不能访问的文件重命名为临时名称,然后擦拭新重命名的文件。IsaacWiper创建了一个日志文件C:\ProgramData\log.txt.其中保存了破坏活动的进度。
4. WhisperKill
乌克兰国家特殊通信和信息保护局发现了另外一种恶意擦除软件WhisperKill,该机构表示它重复使用了80%日的Encrpt3d勒索软件代码(又名WhiteBlackCrypt勒索软件),并试图伪装成勒索软件攻击来隐藏其攻击方式和目的,分散调查人员对攻击者的注意力。
5. CaddyWiper
(1)CaddyWiperr简介
CaddyWiper专门设计用于通过擦除用户数据、程序、硬盘驱动器以及在某些情况下分区信息来破坏目标系统。
3 月 15 日,网络安全公司ESET 发布了一个Twitter 帖子,记录了名为 CaddyWiper 的恶意软件,该恶意软件是在将其部署到目标网络的同一天编译的。
(2)CaddyWiperr分析
CaddyWiperr文件擦除算法由两个阶段组成:第一阶段覆盖文件,另一个阶段破坏物理磁盘布局和分区表。
对于文件销毁,它在获得 SeTakeOwnershipPrivilege
后通过修改文件的ACL条目来获得文件的所有权。然后,找到的文件将简单地用零覆盖。
大于 10,485,760 字节 ( 0xA00000 ) 的文件将简单地用零覆盖前 10,485,760 字节。
然后清除器将移动到系统上的下一个驱动器,从“D”驱动器开始。它将递归地获得驱动器上文件的权限并用零覆盖它们。这是按字母顺序(通过“Z:\”)为接下来的 23 个驱动器完成的。
第二阶段,擦除器尝试将系统上编号为 9 的所有物理驱动器的驱动器布局设置为 0。这将擦除有关物理驱动器分区的所有扩展信息,包括 MBR、GPT 和分区条目。
擦除器使用归零缓冲区递归执行 IOCTL_DISK_SET_DRIVE_LAYOUT_EX
请求,破坏文件的开头和分区表是其他擦除器上常见的技术,它在防止文件恢复方面非常有效。
6. DoubleZero
DoubleZero是一种用C语言开发的恶意破坏程序,攻击者使用该软件发起鱼叉式网络钓鱼攻击,目前该活动已被跟踪为UAC-0088。DoubleZero擦除文件使用两种方法破坏文件:用4096字节的零块覆盖其内容或使用API调用NtFileOpen、NtFsControlFile。恶意软件会在关闭受感染的系统之前删除以下Windows注册表HKCU、HKU、HKLM、HKLM\BCD。
7. AcidRain
(1) AcidRain简介
美国网络安全公司SentinelLabs于3月31日发布题为《AcidRain | A Modem Wiper Rains Down on Europe》的报告。报告称,美国卫星通信提供商Viasat于2月底遭受的网络攻击可能源于名为“酸雨”的恶意擦除软件。
SentinelLabs表示,“酸雨”可能是专门为针对乌克兰的行动而开发的,用于破坏调制解调器和路由器;该软件通过使用KA-SAT管理机制被部署在调制解调器和路由器上,随后会对设备文件系统进行深度擦除,完成擦除后会重新启动设备导致设备无法启用;“酸雨”功能相对简单,并且会进行暴力尝试,这意味着攻击者可能不熟悉目标固件的详情,或希望该工具保持通用性和复用性;“酸雨”和恶意软件VPNFilter存在相似之处,后者被认为与俄罗斯黑客组织“奇幻熊”和“沙虫”存在关联。
(2) AcidRain分析
该软件于3月15日,由一名意大利用户以“ukrop”为名将“酸雨”上传到VirusTotal后。研究人员称,“ukrop”可能是“乌克兰行动”(Ukraine operation)的缩写。
SentinelOne认为,“威胁行为者在供应链攻击中使用KA-SAT管理机制来推动为调制解调器和路由器设计的擦除软件。这种设备的擦除软件会覆盖调制解调器闪存中的关键数据,使其无法操作并需要重新刷新或更换。”
被部署后,“酸雨”会遍览受感染的路由器或调制解调器的整个文件系统。它还使用所有可能的设备标识符擦除闪存、SD/MMC卡和可以找到的任何虚拟块设备。为了破坏受感染设备上的数据,“酸雨”使用最多0x40000字节的数据覆盖文件内容,或使用MEMGETINFO、MEMUNLOCK、MEMERASE和MEMWRITEOOB输入/输出控制(IOCTL)系统调用。在数据擦除过程完成后,该恶意软件会重新启动设备,使其无法使用。
8. RURansom
(1)RURansom简介
RURansom是针对俄罗斯进行的数据擦除软件,该软件使用.NET编写,以蠕虫病毒的形式传播,并且会在目标机器上对文件进行不可逆的加密,从而造成数据擦除。同时在一些版本的代码当中会检查当前IP是否处于俄罗斯,从而进行攻击。
(2)RURansom分析
地理位置识别
恶意软件 RURansom 追踪受害者设备的 IP 位置,并且只有在检测到属于俄罗斯的 IP 时才会执行。为了识别 IP 地址,这个恶意软件使用了两个 api,分别是https://api.ipify.org 和https://ip-api.com,这两个接口都在其代码中硬编码。
权限提升
在识别出设备的地理位置之后,恶意软件会进一步检查被感染机器中的 Administrator 权限。
如果恶意软件没有管理员特权,它会尝试使用下面的 PowerShell 命令在升级模式下执行自身。
cmd.exe /c powershell stART-PRoceSS Assembly.GetExecutingAssembly().Location -veRB rUnAS
连接驱动器的发现
RURansom 恶意软件扫描受害者系统中的驱动器,包括可移动驱动器和连接到受害者机器的网络驱动器。
加密和删除
在扫描驱动器之后,恶意软件会对受害者电脑中已识别目录和子目录中的所有文件进行加密。为了防止从备份文件中恢复已加密的数据,恶意软件还会删除被感染的电脑中的 .bak 文件。
该恶意软件使用AES-CBC 加密算法来加密受害者机器中的文件
文件加密使用随机生成的 AES 密钥。密钥是使用诸如 FullScaleCyberInvasion、 RU_Ransom 和2022这样的硬编码字符串以及受害者的机器名和用户名计算出来的。
勒索信
RURansom 恶意软件置入了一个名为Полномасштабное_кибервторжение.txt(Full-blown_cyber-invasion.txt)的勒索信文件。该说明是用俄文写的,放在文件加密的所有目录中。
传播机制
该恶意软件将自身重命名为Россия-Украина_Война-Обновление.doc.exe (Russia-Ukraine_War-Update.doc.exe) ,并传播到所有连接的系统。
相关文章:

透视俄乌网络战之一:数据擦除软件
数据擦除破坏 1. WhisperGate2. HermeticWiper3. IsaacWiper4. WhisperKill5. CaddyWiper6. DoubleZero7. AcidRain8. RURansom 数据是政府、社会和企业组织运行的关键要素。数据擦除软件可以在不留任何痕迹的情况下擦除数据并阻止操作系统恢复摧,达到摧毁或目标系统…...

微服务中间件--Nacos
Nacos 1. Nacos入门a.服务注册到Nacosb.Nacos服务分级存储模型c.NacosRule负载均衡d.服务实例的权重设置e.环境隔离 - namespacef.Nacos和Eureka的对比 2. Nacos配置管理a.统一配置管理b.配置热更新c.多环境配置共享 1. Nacos入门 Nacos是阿里巴巴的产品,现在是Spr…...
驱动开发点亮led灯
头文件 #ifndef __HEAD_H__ #define __HEAD_H__#define PHY_LED_MODER 0X50006000 #define PHY_LED_ODR 0X50006014 #define PHY_LED_RCC 0X50000A28 #define PHY_LED_FMODER 0X50007000 #define PHY_LED_FODR 0X50007014#endif驱动代码 #include <linux/init.h> #incl…...

回归预测 | MATLAB实现IPSO-SVM改进粒子群优化算法优化支持向量机多输入单输出回归预测(多指标,多图)
回归预测 | MATLAB实现IPSO-SVM改进粒子群优化算法优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现IPSO-SVM改进粒子群优化算法优化支持向量机多输入单输出回归预测(多指标,多图…...

数学建模之“TOPSIS数学模型”原理和代码详解
一、简介 TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)是一种多准则决策分析方法,用于解决多个候选方案之间的排序和选择问题。它基于一种数学模型,通过比较每个候选方案与理想解和负理想解之间的相…...

threejs使用gui改变相机的参数
调节相机远近角度 定义相机的配置: const cameraConfg reactive({ fov: 45 }) gui中加入调节fov的方法 const gui new dat.GUI();const cameraFolder gui.addFolder("相机属性设置");cameraFolder.add(cameraConfg, "fov", 0, 100).name(…...

计算机竞赛 图像识别-人脸识别与疲劳检测 - python opencv
文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是…...

PHP8的字符串操作3-PHP8知识详解
今天继续分享字符串的操作,前面说到了字符串的去除空格和特殊字符,获取字符串的长度,截取字符串、检索字符串。 今天继续分享字符串的其他操作。如:替换字符串、分割和合成字符串。 5、替换字符串 替换字符串就是对指定字符串中…...

Unity VR:XR Interaction Toolkit 输入系统(Input System):获取手柄的输入
文章目录 📕教程说明📕Input System 和 XR Input Subsystem(推荐 Input System)📕Input Action Asset⭐Actions Maps⭐Actions⭐Action Properties🔍Action Type (Value, Button, Pass through) ⭐Binding …...

智慧工地一体化云平台源码:监管端、工地端、危大工程、智慧大屏、物联网、塔机、吊钩、升降机
智慧工地解决方案依托计算机技术、物联网、云计算、大数据、人工智能、VR&AR等技术相结合,为工程项目管理提供先进技术手段,构建工地现场智能监控和控制体系,弥补传统方法在监管中的缺陷,最终实现项目对人、机、料、法、环的全…...
C# 表达式体方法 C#算阶乘
//表达式体方法private int Add(int a, int b) > a b;[Fact]public void Test(){var result1 Factorial(1);//1var result2 Factorial(2);//2var result3 Factorial(3);//6var result4 Factorial(4);//24var result5 Factorial(5);//120var result6 Add(100, 200);//…...

互联网发展历程:保护与隔离,防火墙的安全壁垒
互联网的快速发展,不仅带来了便利和连接,也引发了越来越多的安全威胁。在数字时代,保护数据和网络安全变得尤为重要。然而,在早期的网络中,安全问题常常让人担忧。 安全问题的困扰:网络威胁日益增加 随着互…...

基于IMX6ULLmini的linux裸机开发系列七:中断处理流程
中断上下文 cpu通过内核寄存器来运行指令并进行数据的读写处理的,它在进入中断前一个时刻的具体值,称为中断上下文 中断上下文是指CPU在进入中断之前保存的寄存器状态和其他相关信息。当CPU接收到中断请求时,它会保存当前正在执行的指令的状…...

Postman软件基本用法:浏览器复制请求信息并导入到软件从而测试、发送请求
本文介绍在浏览器中,获取网页中的某一个请求信息,并将其导入到Postman软件,并进行API请求测试的方法。 Postman是一款流行的API开发和测试工具,它提供了一个用户友好的界面,用于创建、测试、调试和文档化API。本文就介…...
react go实现用户历史登录列表页面
refer: http://ip-api.com/ 1.首先需要创建一个保存用户历史的登录的表,然后连接go 2.在用户登录的时候,获取用户的IP IP位置,在后端直接处理数据即可(不需要在前端传递数据) (1)增加路由&am…...

如何做好服务性能测试
一、什么是性能测试 新功能上线或切换底层数据库或扩容调优,根据实际业务场景的需要,做必要的性能压测,收集性能数据,作为上线的基准报告。 性能测试一般分一下几个阶段: 1. 性能测试 并发量小(jmeter 并…...

速通蓝桥杯嵌入式省一教程:(五)用按键和屏幕实现嵌入式交互系统
一个完整的嵌入式系统,包括任务执行部分和人机交互部分。在前四节中,我们已经讲解了LED、LCD和按键,用这三者就能够实现一个人机交互系统,也即搭建整个嵌入式系统的框架。在后续,只要将各个功能加入到这个交互系统中&a…...

虚拟拍摄,如何用stable diffusion制作自己的形象照?
最近收到了某活动的嘉宾邀请,我将分享: 主题:生成式人工智能的创新实践 简要描述:从品牌营销、智能体、数字内容创作、下一代社区范式等方面,分享LLM与图像等生成式模型的落地应用与实践经验。 领域/研究方向ÿ…...

开启AI创新之旅!“华为云杯”2023人工智能应用创新大赛等你来挑战
简介 近年来,人工智能技术的发展如日中天,深刻地改变着我们的生活方式和产业格局。 为了培养AI人才,持续赋能AI企业,推进国家新一代人工智能开放创新平台建设,打造更加完善的AI技术创新生态,华为…...

npm和node版本升级教程
cmd中查看本地安装的node版本 node -v //查询node的位置 where node2.官网下载所需要的node版本,安装在刚查出来的文件夹下,即覆盖掉原来的版本 3.查看node版本是否已经更新 4.查看npm版本是否和node版本相匹配 cnpm install -g npm...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...