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遍历网络上的远程文件夹,并使用上面提到的类似递归方法加密文件。

至此样本分析完毕。

Babuk勒索病毒分析相关推荐

  1. WannaCry勒索病毒分析 **下**

    WannaCry勒索病毒分析 下 在WannaCry.exe的分析实战 上 里面我已经拿到了WannaCry.exe在资源文件中的PE文件,并且给它提了个名WannaCry_PE.exe文件.但在Wa ...

  2. WannaCry勒索病毒分析过程**中**

    WannaCry勒索病毒分析 中 为了分析WannaCry.exe有着什么样的行为,以及它是如何释放WannaCry_PE.exe程序的,在IDA中打开WannaCry.exe 我们可以发现它的头是W ...

  3. 病毒分析之撒旦(Satan)勒索病毒分析解密(AES256 ECB算法)

    病毒分析之撒旦(Satan)勒索病毒分析解密(AES256 ECB算法) 0x0病毒概况 撒旦勒索病毒主要是针对企业服务器用户进行感染加密其服务器上的文件并勒索用户的一种病毒. 撒旦病毒通过大量漏洞利 ...

  4. WannaCry勒索病毒分析过程**上**

    WannaCry勒索如何分析实战 上 我的第一篇博客文章 作为一名大四的网络工程应届毕业生,发自内心的感谢网上的每一位博主,感谢网上的每一位大佬愿意分享自己的经验.我才可以在网上学到如此多的知识.我在 ...

  5. WannaCry勒索病毒分析过程**中**(注)

    WannaCry勒索病毒分析 中(注) 我犯了一个很大的错误,就是在做分析的时候没有确定函数的作用,在分析过程中有捉不到重点的毛病. 在WannaCry.exe的分析中,它在判断打开它的URL后,如果 ...

  6. [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及蠕虫解析

    您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列.因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全.逆向分 ...

  7. BadRabbit勒索病毒分析

    目录 0x00 简介 0x01 样本概况 特征信息 0x02 样本行为 病毒危害 创建恶意文件 加密文件 注册表 端口通信 修改MBR 0x03 详细分析 0x00 简介 勒索病毒"Bad ...

  8. Android锁屏勒索病毒分析(1)BWM在线

    1.样本概况 1.1 基本信息 样本名称: 刷赞. 所属家族: 锁屏勒索病毒(a.rogue.SimpleLocker.a) MD5值: 7626090b69cd1e2e5671a022712808e ...

  9. 流行勒索病毒分析总结

    一.概述 信息安全 (Information Security) ,意为保护信息及信息系统不受侵害.主要保护计算机硬件.软件.数据不因偶然的或恶意的原因而遭到破坏.更改.显露.从层面的概念来看,计算机 ...

最新文章

  1. error:socket failed: EPERM (Operation not permitted)
  2. Java网络编程从入门到精通(1):Internet地址概述
  3. 【计算机网络】网络安全 : 报文鉴别 ( 密码散列函数 | 报文摘要算法 MD5 | 安全散列算法 SHA-1 | MAC 报文鉴别码 )
  4. 276. Paint Fence
  5. k8s ConfigMap使用示例:以volume或变量形式挂载到pod中
  6. python 模拟鼠标键盘_python之模拟鼠标键盘动作
  7. POJ - 2248 Addition Chains(dfs+迭代加深)
  8. linux增加 inode空间,linux 增加inode 的方法
  9. atoi,itoa,strcpy, strcmp,strcpy, strcpy_s, memc...
  10. 计算机中内存存储器最小单位,计算机中存储容量的最小单位和最基本单位是什么?...
  11. 思科网络学习笔记 | 路由概念
  12. 常见笔顺错误的字_容易出错的汉字|汉字中哪些字笔顺容易错
  13. 熊克斐:技术夜未眠 从码畜到CTO
  14. 霹雳吧啦Wz语义分割学习笔记P4
  15. 算法竞赛入门经典(第二版)_1入门
  16. EasyDemo*CSS尺寸与框模型(六七)
  17. Android 自定义二维码
  18. 没有网络电脑计算机还能用吗,电脑连不上公用网络怎么办
  19. 宜家新型智能灯泡被指易遭黑客入侵
  20. 网件交换机基本配置命令合集

热门文章

  1. OnlineJudge平台(负载均衡)
  2. Virtual Judge 注册
  3. creo文件如何检入服务器,CREO模型树配置的保存与检索
  4. Java中关键字throw和throws的区别
  5. 网易云信短信验证php,网易云 短信验证码+验证+tp5
  6. 了解一下什么是奶水供需平衡,哺乳期,奶水“没”了必是真的没了
  7. 【Tesseract-OCR】Tesseract训练中文字体识别
  8. python如何创建空集合_python 集合
  9. UI一揽子计划 24 (MVC、通知、)
  10. 2023年网络与信息安全国际会议(NISecurity 2023)