【病毒分析】DevicData勒索病毒分析

1.背景

1.1来源

近期,Solar团队收到某医疗单位的援助请求,该公司的计算机受到了某勒索病毒的侵害,所有的文件被加密并且添加了.DevicData-P-470b1abd后缀,我司人员现场取证进行排查并提取加密器,本文是对于加密器的分析。

2.恶意文件基础信息

2.1 文件基础信息

大小DevicData.exe(160256 bytes)
操作系统Windows
架构Amd64
类型exe
字节序Little Endian
SHA25679a0a6b7760be083c17e496d3a9dc6f7a113c9d8034fed1afe1e2cac2e82363d

2.2 勒索信

Recover files!!!.txt
YOUR FILES ARE ENCRYPTED !!!

TO DECRYPT, FOLLOW THE INSTRUCTIONS:

To recover data you need decrypt tool.

To get the decrypt tool you should:

1.In the letter include your personal ID! Send me this ID in your first email to me!
2.We can give you free test for decrypt few files (NOT VALUE) and assign the price for decryption all files!
3.After we send you instruction how to pay for decrypt tool and after payment you will receive a decryption tool! 
4.We can decrypt few files in quality the evidence that we have the decoder.
5.Your key is only kept for seven days beyond which it will never be decrypted!
6.Do not rename, do not use third-party software or the data will be permanently damaged!
7.Do not run any programs after the computer is encrypted. It may cause program damage!


CONTACT US: 

ID:

3.恶意文件分析

3.1威胁分析

病毒家族DevicData
首次出现时间/捕获分析时间2024/01/15 || 2024/03/28
威胁类型勒索软件,加密病毒
勒索软件地区国外
加密文件扩展名.DevicData-P-470b1abd
勒索信文件名Recover files!!!.txt
有无免费解密器?
联系邮箱DevicData@tutanota.com
感染症状无法打开存储在计算机上的文件,以前功能的文件现在具有不同的扩展名(.DevicData-P-470b1abd)。会生成勒索信(Recover files!!!.txt)。
感染方式受感染的电子邮件附件(宏)、恶意广告、漏洞利用、恶意链接?
受灾影响除了c:\Windows目录,所有exe和dll,powershell程序文件,勒索病毒配置文件之外的所有文件均被使用多种模式加密.

3.2加密前后对比

加密后

文件1

图片

图片

文件2

图片

图片

解密后

文件1

图片

文件2

图片

 

4.逆向分析

4.1 混淆去除

将程序拖入de4dot即可基本解混淆.剩下的代码不影响分析。

4.2 感染共享文件夹

遍历ip列表,找到存在的共享分区,在分区上运行加密。

图片

图片

判断是否为合法共享分区。

图片

获取本地分区列表,排除掉系统分区之后,找到存在的合法分区进行加密.。

图片

 

4.3 创建工作线程

枚举分区并创建工作线程。

图片

4.4 读取配置文件

String_0为勒索信的内容。

图片

String_1为随机字符串。publickey为rsa的公匙,key为aes的密钥;String4为随机id;String2为文件加密后的后缀名的前半部分,即”Devicdata”字符串;Byte_0为使用aes加密经过rsa加密后的id字符串和密码的拼接(中间分号隔开).这个变量占512字节,因为每个被加密文件的开头在解密器中都会往后移动512bytes。猜测这个变量是本来要传给黑客的,但这是demo病毒,省去了与黑客的网络交互.或者是要事先传一个文件给黑客,才能进一步解密出受害者的setting文件,进行解密。加载完毕,删除配置文件。

4.5 递归加密

从每一个分区的根目录开始递归,如果目录名为windows文件夹则不进入,否则进入。List里面存着powershell文件的路径,也会排除。

图片

获得文件列表,使用冒泡排序将文件列表以修改时间升序排序。

图片

拼接后缀名,用于后面判断,加密后写入的文件也是这个后缀.开头为原后缀名,接上DevicData,接上一个-P-,再接上id.截取最前一个后缀名(文件原后缀名),先排除exe,dll,加密后文件以及勒索信,再进入判断是否为特殊后缀(大小写不敏感),是则采用一些模式解密(method_7),否则采用另一些模式解密(method_8).模式在下文说明。

特殊后缀:
".IB",".GDB",".FDB",".MDB",".ACCDB",".ACCDR",".ACCDE",".DAT",".DB",".BAK",".MDF",".NDF",".LDF",".DB2",".DBF",".ORA",".SQL",".CSV",".DMP",".MYD",".MYI",".FRM",".EDB",".GDB",".STM",".NS",".DB3",".WDB",".RAR",".ZIP",".7Z",".TAR",".VMDK",".VMEM",".AVHD",".AHD",".VHDX",".VHD",".AVHDX"

powershell目录名:

图片

如果目录为空,则进入递归.num2置1则不为空,进入加密。

图片

写入勒索信,内容来自配置文件。

4.6 加密算法

采用aes256 ecb加密文件和配置文件,采用rsa加密受害者的文件key。

4.7 加密模式分类

概览:

图片

 

从上到下分别为X,Y,Z,A,B,C,D。

树状图:

图片

根函数:

先分为两大类,分别是为特定后缀名和其他文件。

图片

 

4.8 Method8函数

大于20mb的进入AESWriteByteToOldFile,小于的进入AESModelBWriteFile。

图片

4.9 AESWriteByteToOldFile函数

大于50mb的进入AESWriteByteToOldFile_FB,否则进入AESWriteByteToOldFile_FC。

图片

4.10 AESModelBWriteFile函数

写入512字节的字符串(加密后的密码,上文提到过).再单纯的写入加密后的文件数据。

图片

4.11 AESWriteByteToOldFile_FB函数

每1mb一组,当组数为10的倍数的时候,加密;其余交换一些bytes(不加密).交换伪代码如下:

Swap(19930,3550);
Swap(1220,6500);
Swap(19430,7500);
Swap(19701,5023);
Swap(197101,297101);

图片

4.12 AESWriteByteToOldFile_FC函数

当组数小于25的时候,每1mb加密;大于25的时候,组数每逢10的倍数加密,其余操作同AESWriteByteToOldFile_FB的交换方式。

图片

4.13 Method7函数

若文件名不为Recover files!!!.txt且不为只读,则加密,大小分为1gb以上和以下,大于1gb进入DESWriteByteToOldFile_F方法,小于则进入DESModelBWriteFile。

图片

4.14 AESWriteByteToOldFile_F函数

大于10gb进入AESWriteByteToOldFile_FD,小于则进入AESWriteByteToOldFile_FA。

图片

4.15 AESWriteByteToOldFile_FD函数

如果大于5gb,则大于5gb的部分每隔5mb加密1mb,小于部分1mb大小的块加密;如果小于5gb,则全部1mb分块加密。

图片

4.16 AESWriteByteToOldFile_FA函数

单纯地把文件分割成每1mb一段并加密写入。

图片

5.病毒分析概览

加密器读取配置文件中的文件后缀等信息,生成随机密钥,接着遍历ip,感染可访问的共享文件夹,然后每个分区创建一个工作线程,具有选择性地递归遍历目录,选择指定类型的文件,根据文件后缀,大小使用5种不同模式加密,将加密后的随机密钥和加密数据写入文件,最后删除原文件。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL高级详解

文章目录 约束概述分类主键约束概述特点定义及删除主键自增 唯一约束作用语法 非空约束作用语法 面试题:非空唯一约束与主键约束有什么区别默认值约束作用语法 总结 表关系及外键约束表关系概述分类一对多关系表设计外键字段设计原则 多对多关系表设定设计原则 一对…

Linux下网络编程基础知识--协议

网络基础 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 协议 一组规则, 数据传输和数据的解释的规则。 比如说依次发送文件的文件名, 文件的大小, 以及实际的文件, 这样规定发送一个文件的顺序以及发送的每一个部分的格式等可以算是一种协议 型协议 …

探索ChatGPT-Plus:AI 助手全套开源解决方案

探索ChatGPT-Plus:AI 助手全套开源解决方案 ChatGPT-plus是一种新型的对话生成模型,它是在OpenAI的ChatGPT基础上进行了改进和优化的版本。ChatGPT-plus的出现引起了广泛关注,因为它在对话生成方面展现出了更加出色的表现和能力。在本文中&am…

【C++第三阶段】stackqueue容器

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 stack容器queue容器 stack容器 是什么?功能是什么?常用接口是什么?局限性有哪些?优势又有哪些? 栈容器,先进…

智能驾驶“血拼”端到端,元戎启行准备好了吗?

智能驾驶从规则驱动转向数据驱动,正在引导行业进入新的竞争区间。 在之前的中国电动汽车百人会论坛(2024) 上,比亚迪董事长兼总裁王传福认为,新能源汽车渗透率在未来3个月将超过50%。自动驾驶公司元戎启行CEO周光指出,在上半场的…

Python实现BOA蝴蝶优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

社交网络的未来图景:探索Facebook的发展趋势

随着科技的不断进步和社会的快速变迁,社交网络作为连接人与人之间的重要纽带,扮演着日益重要的角色。而在众多社交网络中,Facebook作为老牌巨头,一直在探索着新的发展路径,引领着社交网络的未来图景。本文将深入探索Fa…

跟着Carl大佬学leetcode之27 移除元素

来点强调,刷题是按照代码随想录的顺序进行的,链接如下https://www.programmercarl.com/本系列是记录一些刷题心得和学习过程,就看到题目自己先上手试试,然后看程序员Carl大佬的解释,自己再敲一遍修修补补,练…

数组与伪数组的区别

大家都知道,在js中使用 document.querySelectorAll(选择器)获取到的为该选择器能选择到的所有元素组成的伪数组,所谓伪数组,就是外表和数组一样,能够使用索引遍历,但本质是对象。 数组与伪数组之间的区别&…

C语言面试题之合法二叉搜索树

合法二叉搜索树 实例要求 实现一个函数,检查一棵二叉树是否为二叉搜索树; 示例 1: 输入:2/ \1 3 输出: true 示例 2: 输入:5/ \1 4/ \3 6 输出: false 解释: 输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 …

测试开发是“懂测试的开发”还是“懂开发的测试”?

这是个很有意思的话题,我一开始画了这么一张图: 就我自身的工作而言,用着开发的技术,做着开发差不多的工作。归为开发一类并无不妥! 后来,我细细琢磨了一下,改为了下图。 其实答案也非常明显&a…

动态调整学习率方法(仅供自己学习)

目录 一、StepLR 二、MultiStepLR 三、ExponentialLR 四、CosineAnnealingLR 五、ReduceLRonPlateau 六、LambdaLR 小结:学习率调整​​​​​​​ 一、StepLR optimizer torch.optim.SGD(model.parameters(), lrlearn_rate) scheduler torch.optim.lr_sch…

Linux目录结构知识

一、认识Linux目录 1) Linux目录结构知识 1) win: 目录顶点是盘符 C/D/E 。所有的目录结构都在不同的盘符下面,不同的盘之间不能沟通的。 2) Linux: 目录顶点是 / ,称为根。所有的目录结构都在根下面,他的目录之间都…

Day37:LeedCode 738.单调递增的数字 968.监控二叉树 蓝桥杯 翻转

738. 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xff0c;且数字呈 单调递增 。 示例 1: 输入: n 10 输出: 9 思路: 假设这个数是98,…

MuJoCo 入门教程(八)Model仓库

系列文章目录 前言 一、MuJoCo 动物园 一个物理仿真器的好坏取决于它所仿真的模型&#xff0c;而在像 MuJoCo 这样功能强大、建模选项众多的仿真器中&#xff0c;很容易创建出行为与预期不符的 "坏 "模型。MuJoCo Menagerie 的目标是为社区提供一个设计精良、开箱即用…

WinRAR再爆0 day漏洞,0 day漏洞该如何有效预防

WinRAR再爆0 day漏洞&#xff0c;已被利用超过4个月。 Winrar是一款免费的主流压缩文件解压软件&#xff0c;支持绝大部分压缩文件格式的解压&#xff0c;全球用户量超过5亿。Group-IB研究人员在分析DarkMe恶意软件时发现WinRAR在处理ZIP文件格式时的一个漏洞&#xff0c;漏洞…

内存管理机制SLAB

1. 为什么需要内存分配管理&#xff1f;为什么需要SLAB&#xff1f; 在学习c语言时&#xff0c;我们常常会使用到malloc()去申请一块内存空间&#xff0c;用于存放我们的数据&#xff0c;这是代码层面的语言 如果我们想要关心malloc这个命令向系统发出后&#xff0c;系统会做什…

javaee前后端交互

1.选择Java Enterprise创建项目 2.勾选Web Profile 3.项目名称 4.创建包和类 5.继承HttpServlet并重写方法doGet和doPost 6.在web.xml里添加代码 7.点击Add Configuration,进去后点击加号 8.选择选项 9.调整如图&#xff0c;后选择Deployment进入 10.点击加号选择第一个 11.…

【InternLM 实战营第二期笔记】使用茴香豆搭建你的RAG智能助理

RAG RAG是什么 RAG&#xff08;Retrieval Augmented Generation&#xff09;技术&#xff0c;通过检索与用户输入相关的信息片段&#xff0c;并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可能遇到的挑战, 如幻觉、知识过时和缺乏透明、可追…

【vue】v-bind动态属性绑定

v-bind 简写:value <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><styl…