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

时间:2024-05-18 20:03:21

一、样本简介

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

二、现象描述

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

三、样本信息

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

四、样本分析

1)、用IDA打开样本,发现输入表为空的。发现大量乱码字符。估计样本动态解密被加密的函数名,然后用GetProcAddress获取函数地址。先写个脚本解密所有函数名,脚本链接:https://blog.****.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写入文件中。