【病毒分析】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种不同模式加密,将加密后的随机密钥和加密数据写入文件,最后删除原文件。

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

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

相关文章

1.Godot引擎|场景|节点|GDS|介绍

Godot介绍 Godot是一款游戏引擎 可以通过在steam商城免费下载 初学者和编程基础稍差的推荐学习使用GDScript,和python有些相似 Godot节点 Godot的开发思想——围绕节点 节点的特征与优势 最常用基本的开发组件大部分都具有具体的功能,如图片&#xf…

ubuntu 应用程序设置 开机自启动

1. 通过.desktop方式 autostart 中.desktop 配置文件 1.1 用户级自启动 登录后才可以启动服务。 可视化配置:在ubuntu自带的可视化程序来配置,就是StartupApplications,它在启动台中可以找到。 在ubuntu下目录是 ~/.config/autostart 添…

大数据架构的演变与多种大数据架构类型说明——解读大数据架构(一)

文章目录 前言数据架构的演变关系型数仓数据湖现代数仓数据网络数据湖仓数据网格 前言 在搭建和使用大数据组件前,预先投入时间设计和构建正确的数据架构绝对至关重要。如果在前期没有设计正确的数据架构就开始实施方案,在后期想更改架构设计是十分困难…

12-pyspark的RDD算子注意事项总结

目录 相近算子异同总结相近变换算子异同foreach和foreachPartitionfold和reducecoalesce和repatition 相近动作算子异同cache和persist 算子注意事项需要注意的变换算子需要注意的动作算子 PySpark实战笔记系列第三篇 10-用PySpark建立第一个Spark RDD(PySpark实战笔记系列第…

Android性能优化RecyclerView预加载LayoutManager的getExtraLayoutSpace,Kotlin

Android性能优化RecyclerView预加载LayoutManager的getExtraLayoutSpace,Kotlin RecyclerView默认只加载当前屏幕肉眼可见区域的有限item数量,有些场景下,需要在屏幕外不可见的区域多加载一批item出来,这有时候被称之为“预加载”…

2024考研调剂须知

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项,系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…

前端服务请求跨域被拦截,Java后端Springboot服务解决办法

跨域问题 跨域前端遇到的问题: Access to XMLHttpRequest at ‘http://www.xxx.xxxx/api/x/d/xc’ from origin ‘http://127.0.0.1:3000’ has been blocked by cors policy: No ‘Access-Contorl-Allow-Origin’ header is present on the requested resource. …

IDE Eval Reset —— idea 重置试用期插件安装

idea 重置试用期插件安装 一、在线安装: 1、打开IntelliJ IDEA 2、file—> setting —> plugins 添加三方插件库 点击后,跳出弹框点击号,添加图中的网址 https://plugins.zhile.io3、搜索 IDE Eval Reset ,安装插件 4…

Excel·VBA二维数组S形排列

与之前的文章《ExcelVBA螺旋数组函数》将一维数组转为二维螺旋数组 本文将数组转为S形排列的二维数组,类似考场座位S形顺序 Function S形排列(ByVal arr, ByVal num_rows&, ByVal num_cols&, Optional ByVal mode$ "row")将数组arr转为num_rows…

OpenHarmony开发案例:【分布式计算器】

介绍 本示例使用分布式能力实现了一个简单的计算器应用,可以进行简单的数值计算,支持远程拉起另一个设备的计算器应用,两个计算器应用进行协同计算。 远程拉起:通过StartAbility实现远端应用的拉起。 协同计算:通过…

ios包上架系列 一、打包机Flutter项目环境配置

打包的时候一定要断开网络,上线包名只能在打包机配置 1、Xcode 需要从其它电脑空投 版本号:14.3.1 升级到Xcode14.3后发现,从这个版本开始,苹果从Xcode中移除了ARC相关的库,会导致fluter项目下的原生工程使用Xcode编译原生代码没 有问题, 但是flutter项…

springboot上传模块到私服,再用pom引用下来

有时候要做一个公司的公共服务模块。不能说大家都直接把代码粘贴进去,因为会需要维护很多份;这样就剩下两个方式了。 方式一:自己独立部署一个公共服务的服务,全公司都调用,通过http、rpc或者grpc的方式,这…

如何安装PyFluent

0.什么是PyFluent? 官方介绍如下: PyFluent 是 PyAnsys 生态系统的一部分, 允许您在所选的 Python 环境中结合使用 Fluent 与其他 PyAnsys 库和外部 Python 库一起使用。 PyFluent 实现了客户端-服务器体系结构。它使用谷歌遥控器 过程调用或 gRPC 接…

基于GSP工具箱的NILM算法matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于GSP工具箱的NILM算法matlab仿真。GSP是图形信号处理的缩写,GSP非常适合对未知数据进行分类,尤其是当训练数据非常短时。GSPBox的基本理论是谱图论和…

构建强大的物联网平台系统架构:关键步骤与最佳实践

随着物联网(IoT)技术的快速发展和广泛应用,越来越多的企业开始意识到搭建一个强大而可靠的物联网平台系统架构的重要性。一个完善的物联网平台可以帮助企业高效地管理和监控各种连接设备,并实现数据的收集、处理和分析。在本文中&…

npm i -g nodemon 遇到的下载卡住及运行权限问题解决记录

一、下载nodemon原因 nodemon作用:用node环境运行js文件时可以实时刷新运行出结果 (即修改js代码后不需再手动重新运行js文件) 二、下载卡住 reify:semver:timing reifyNode:node_modules/nodemon Completed 卡住位置:reify:semver: timing reifyNode…

【muzzik 分享】3D模型平面切割

# 前言 一年一度的征稿到了,倒腾点存货,3D平面切割通常用于一些解压游戏里,例如水果忍者,切菜这些,今天我就给大家讲讲怎么实现3D切割以及其原理,帮助大家更理解3D中的 Mesh(网格),以及UV贴图和…

2024年免费试用云服务器一览表

随着云计算技术的不断发展和普及,越来越多的企业和个人开始寻求通过云服务器来满足其数据存储、应用部署等需求。而免费试用云服务器则成为了一个吸引用户的重要手段,本文将为大家分享2024年免费试用云服务器一览表,帮助大家更好地选择合适的…

Spring Boot 框架集成Knife4j

本次示例使用 Spring Boot 作为脚手架来快速集成 Knife4j,Spring Boot 版本2.3.5.RELEASE,Knife4j 版本2.0.7&#xff0c;完整代码可以去参考 knife4j-spring-boot-fast-demo pom.xml 完整文件代码如下 <?xml version"1.0" encoding"UTF-8"?> &l…

https加载http不安全脚本提示解决方案

大家好&#xff0c;我是咕噜铁蛋。今天&#xff0c;我想和大家探讨一个很常见但又很容易被忽视的问题——https加载http不安全脚本提示。相信很多网站开发者和维护者在日常工作中都遇到过这样的问题&#xff0c;那么我们应该如何解决这个问题呢&#xff1f;下面&#xff0c;我将…