IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Babuk勒索病毒分析 -> 正文阅读

[系统运维]Babuk勒索病毒分析

0x00 前言准备

实验环境:win10

分析工具:
火绒剑
IDA7.5
die

0x01 样本基本信息

md5:e10713a4a5f635767dcd54d609bed977
在这里插入图片描述

0x02 赎金信息

在这里插入图片描述

0x03逆向分析

先用die看一下基本信息
在这里插入图片描述
32位,无壳,可以直接拉进ida看
定位到start函数,程序逻辑非常清楚

命令行参数
在这里插入图片描述
参数可以传三个,分别如注释种所写,如果没有参数,默认是只本地加密。

终止服务
病毒在启动前会检索一系列服务并进行关闭
在这里插入图片描述
重点关注一下有注释的几个API
在这里插入图片描述
检索的服务是明文写在这里的。

终止进程
和服务类似,也有一个终止进程的过程
在这里插入图片描述
要关闭的进程服务也是明文写在这里的
在这里插入图片描述
关闭服务和进程的目的都是保证加密过程防止文件被占用。

删除卷影副本
在这里插入图片描述
首先,它调用Wow64DisableWow64FsRedirection以禁用文件系统重定向,然后再调用ShellExecuteW执行此命令
cmd.exe /c vssadmin.exe delete shadows /all /quiet
删除卷影副本后,Babuk 会检查系统是否在 64 位处理器下运行。如果是,则调用Wow64RevertWow64Fs重定向以再次启用文件系统重定向。

密钥生成
说实话,我密码学这一块真的不是很好,只能大体上看一下加密算法。
这个加密用的椭圆曲线加密算法ECDH,先是生成了四个随机缓冲区。其中两个作为chacha8键,还有两个作为chacha8随机数。
在这里插入图片描述
然后用刚才的随机数对密钥进行一系列加密操作
在这里插入图片描述
然后,它使用本地私钥和作者的硬编码公钥生成共享密钥。

此共享密钥采用 SHA256 哈希算法生成 2 个 ChaCha8 密钥,这些密钥用于稍后加密文件。

为了能够解密文件,Babuk 将本地公钥存储在APPDATA文件夹中的文件ecdh_pub_k.bin中。

由于 ECDH 的机制,勒索软件作者可以使用自己的私钥和受害者的公钥来解密文件,从而生成共享的秘密。这使得受害者无法自行解密,除非他们能够在恶意软件完成加密之前捕获恶意软件中随机生成的私人密钥。

在这里插入图片描述
多线程
在这里插入图片描述
可以看到,启动的线程数是根据驱动器的数量来决定的,其实这是有一定的问题的,在驱动器数量少于处理器数量的情况下(这很有可能),Babuk 不会生成尽可能多的线程进行加密。

由于每个线程负责整个驱动器,这迫使它使用传统的递归方法来遍历自己的文件夹,这导致由于巨大的工作负载而导致更长的加密时间。

每个线程的工作负载根据其加密的驱动器的大小而有所不同,因此平均加密时间将大约接近一个线程加密最大驱动器所需的时间。这是低效的,并且确实违背了使用多线程来加密驱动器的目的。

文件夹遍历
我们跟进到StartAddress里看一看。
在这里插入图片描述
Babuk使用递归方法来遍历和加密文件,使用FindFirstFileW和FindNextFileW调用,它会遍历每个目录以查找文件和子目录。

当遇到目录时,它会再次递归调用main_encrypt函数。但是,Babuk最多只加密16个目录层深,因此它可能不会加密驱动器中的每个文件夹以节省时间。

遇到文件时,它将检查文件名是否为"How To Restore Your Files.txt或者文件扩展名是否为.__NIST_K571__以避免加密赎金记录或加密文件。

杀死文件进程
在这里插入图片描述
Babuk通过调用RmStartSession 、RmRegisterResources和RmGetList来获取使用指定文件的进程列表重新启动管理器来终止任何使用文件的进程。如果进程不是explorer.exe或关键进程,则 Babuk 将调用TerminateProcess来终止它。

文件加密
在加密这里Babuk把文件加密分成两种情况,大文件加密和小文件加密,这是以41943040字节大小划分的。

对于小文件,文件被完全映射,并使用两次chacha8加密。
在这里插入图片描述
对于大文件,将整个文件分成三个相等的区域,对与每个区域只加密前10485760字节。
在这里插入图片描述
远程文件加密
为了加密来自受害计算机的远程驱动器,Babuk 调用WNetGetConnectionW以检索与这些驱动器关联的网络资源的名称,并将其传递给加密线程。
在这里插入图片描述
在对应的参数选择下,Babuk还会加密计算机 LAN 上的网络共享。
在这里插入图片描述
Babuk 调用WNetOpenEnumW和WNetOpenEnumW遍历网络上的远程文件夹,并使用上面提到的类似递归方法加密文件。

至此样本分析完毕。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-26 09:15:07  更:2021-11-26 09:15:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:52:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码