病毒分析五:勒索病毒分析

一、样本简介

样本是52论坛找到的
样本链接: https://pan.baidu.com/s/1yRlNwHKSa9F-nHhUiO0BCA 提取码: p498

二、现象描述

点开样本后,会弹出一个文本,里面有一串数字,这串数字是加密和解密的关键。然后电脑CPU会飙升到100%,是因为病毒创建了50个加密线程加密文本。

三、样本信息

MD5值:abca8f0299f6b59111436948e98bdb64
SHA1
值:42db06832b7d0afd7b4648fef0e4eece41c804ee
CRC32校验码: 34d1d386

四、样本分析

1)、用IDA打开样本,发现输入表为空的。发现大量乱码字符。估计样本动态解密被加密的函数名,然后用GetProcAddress获取函数地址。先写个脚本解密所有函数名,脚本链接:https://blog.csdn.net/liuhaidon1992/article/details/103386284
2)、样本解密完所有函数后,通过GetLocaleInfoA获取当前计算机所属国家/地区。对以下四个地区直接结束进程,不加密

3)、删除卷影关闭自动修复

4)、创建名为 YWgnI24wSXPdcEmXd 的互斥变量

5)、创建50个加密线程A用来加密文件

再创建一个线程B,用来创建几个文件

6)、线程B行为如下
收集当前电脑的信息

计算以下关键数据

具体计算方式如下:

通过函数QueryPerformanceCounter 获取时间并保存

然后经过以下计算,循环计算数据

关键计算如下

计算完所有数据,将数据组合起来,每一段数据中间加0x57用以隔开,最后加一个0x00

最后保存这些数据和之前收集到的电脑信息到 temp000000.txt,并打开

创建勒索文件 _RESTORE_FILES_.txt

7)、加密线程A会一直等消息,直到B线程执行完成后,才会开始遍历磁盘,执行加密算法。
具体加密行为如下
1.先更改文件名,在后面加后缀“.id_3458260825_.WECANHELP”

2.将线程B计算得到的偏移94处的前8个字节数据与明文前8个字节相XOR,结果覆盖前8个字节。

3. 连续进行三次des加密,密钥在地址0x411238处

重复第二步和第三步,不过第二步XOR的数据,变为第9到第16字节的数据与第1到8字节的数据,结果覆盖第9到第16字节的数据,之后的计算,就这样每8个字节为一组,分别与前8字节进行XOR运算。

之后经过函数0x40a464处理,此函数主要分为三步

第一步:

第二步:

第三步:

至此加密完成,再调用WriteFile写入文件中。