病毒分析二:勒索病毒分析

一、样本简介
样本是吾爱破解论坛找到的,原网址:https://www.52pojie.cn/thread-1035897-1-1.html,
样本链接: https://pan.baidu.com/s/1gQ0f3SH2yqeJzJW7U-Fg5A 提取码: tid2
样本ESET检测为Win32/Kryptik.GUIH 特洛伊木马的变种。此类型的病毒会加密文件然后勒索用户。

二、现象描述

双击病毒文件后,会在后台运行一个进程,此进程会先解密原有的二进制数据,然后将二进制数据重新拷贝到一个新的临时文件中,自动运行新生成的文件。新的文件会遍历磁盘,将所有程序进行AES加密(会排除部分类型的文件,和部分特定名的文件)。加密完成后的文件类型是.litar文件。加密完成后会在文件夹下生成一个_readme.txt文件,文件里是勒索信息。

三、样本信息
MD5值:adfacb09ceb60e6410e014275145b5a9
SHA1值:eef83497e8aa02d644b7d071be81a678e1611aa6 
CRC325BA85BCD

四、测试环境及工具
环境:Windows 7 64 
工具:火绒剑,ODIDAexeinfope,UPX Unpacker

五、样本行为分析

1)先查壳,是UPX壳

用工具UPX Unpacker脱壳后,先用IDA分析,发现了一段代码解析和执行shellcode

2)用OD跟,这段shellcode主要是解密和拷贝覆盖所有区段数据

完成之后,创建新的进程,结束当前进程

3)在新进程里执行加密的操作

新进程开始创建互斥体

从C盘开始遍历所有文件夹

排除以下文件格式(.regtrans-ms、.lnk、.bat、.blf、.dll、.DLL、.ini、.sys)

排除以下文件(ntuser.pol、ntuser.dat.LOG2、ntuser.dat.LOG1、ntuser.dat)

加密文件分为二步
第一步:从第6个字节到最后一个字节,这一段数据执行加密函数,并将加密后的数据覆盖原来的字节(小于等于5字节的文件直接改后缀名,不执行其他操作)
第二步:在最后追加写入一些数据

下面详细分析这两步

第一步:
生成密钥
先生成25个字节的字符串,其中前5个字节是读取文件的前5字节,后面的20个字节是固定的F8FDD41823F97A6B619BFE3C095A8CC4

将25个字节进行如下计算

计算完后取出数据得到一个长度为32字节长度的字符串,再调用下面的函数进行字符串拼接处理

处理完后得到一个长度为64字节的字符串。再经过AES算法,加密64字节的明文。
将得到的64字节的密文覆盖原来的。文本以64字节为单位循环加密。

加密完成后在最后加入.litar后缀。

至此加密完成。

下面第二步,追加数据
追加数据第一部分数据

追加第二部分数据

追加的数据都是在解密原文件时候得到的

勒索文件_readme

readme里的personal ID没用,因为在AES加密前的密钥是由文件的前5个字节加固定字符串计算得到的。所以密钥每个文件都是固定的,得到密钥后,根据AES解密算法很容易还原原文件。