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. VS生成dll和lib库文件
  2. 全景照片不怕歪!Facebook 用神经网络矫正扭曲的地平线
  3. DCMTK:演示状态查看器-后台打印程序
  4. 【GISER Painter】矢量切片(Vector tile)
  5. Jython安装配置教程(2.7.2)
  6. RUNOOB python练习题6 斐波那契数列
  7. 知道一个数组某个index对应的值 不知道下标的情况下删除该值
  8. 数学系离散数学的几大核心领域
  9. JAVA并发编程实践笔记
  10. 一句话总结.Net下struct和class内存分配方面的区别
  11. mysql中有time吗_mysql中 datatime与timestamp的区别说明
  12. 200 个工具分析机器学习十年:前途未卜、工程师是核心!
  13. 合成孔径成像算法与实现_(转)解读:为什么热成像测体温有时会显示35度以下?...
  14. python可以在windows运行吗_在Windows中,如何运行这个python脚本呢?
  15. TCP四次握手连接释放
  16. linux 进程和线程或线程和线程之间通过管道通信(pipe)
  17. 《Java从入门到放弃》框架入门篇:SpringBoot+mybatis搭建三层架构项目
  18. 笔记 c语言99乘法表
  19. 移动接入身份认证技术
  20. 计算机类的竞赛一般多会报,2017自主招生报考条件建议65问,涵盖所有问题!...

热门文章

  1. 新浪 SAE 真心坑比。。。
  2. ChatGPT体验:https://m.aiask.chat/
  3. MinGw/gcc在Windows下编译时出现permission denied问题解决方法分享
  4. matlab中permute,matlab的reshape函数,shiftdim函数和permute函数
  5. Typescript 中 ?问号的几种不同用法
  6. 新西兰转基因奶牛,奶水质量高
  7. 数据的万有引力-帆软数智大会
  8. UI一揽子计划 6 (UIControl、UISegmentedControl、UIImageView插入数组图片、UISlider)
  9. insert语句详解
  10. PHP原生对接QQ互联/实现QQ登录,SDK2.1版本/超级详细!