0x00 前言准备
病毒类别:GlobeImposter勒索病毒
实验环境:win10
分析工具:火绒剑
IDA
x32dbg
die
我们之前分析过了一个Globe家族的勒索病毒,最近又遇到一个,也感觉之前那个分析的不够仔细,今天我们重新看看这个家族的勒索病毒。
0x01 样本基本信息
病毒样本可从微步云沙箱里获取
0x02 虚拟机尝试运行
1、首先虚拟机打个快照,方便我们运行木马
2、网络环境一定要注意断网,虚拟机卸载虚拟网卡即可
尝试运行病毒文件
发现文件已经被加密了
作者留下的解密信息
0x03 行为分析
用火绒剑对病毒文件进行监控,我改名成了tttt
可以看到抓到了很多动作,我们看看有什么危险行为
添加自启动项
写入文件
自身文件写入系统
对文件进行加密相关操作
数据量太大,我们只能大致看一下,接下来我们用ida和dbg详细的逆向分析一下。
0x04 逆向分析
首先用die查壳,并查看基本信息
VC2013写的,32位的,没壳,我们用ida打开
start函数:
跟进9c6b
首先调用了GetModuleFileNameW,获取文件加载路径
然后调用两次8b19,这里静态跟过去代码很乱,可以尝试用动态调试
可以看到解密出了一个snake4444,这个就是加密文件的后缀,第二次解密时HOW TO···就是我们看到的那个解密信息文本,那8b19应该是个解密函数。
这一块是与堆栈有关的操作,可以不重点看。
看下面GetEnvironmentVariableW,这个API的作用是一个从调用该函数的进程的环境变量中返回指定的变量名值的函数,传参如下:
可以看到这里的目的主要是尝试获取LOCALAPPDATA,如果LOCALAPPDATA不存在则获取APPDATA环境变量,如果获取失败则退出进程,如果成功,则调用PathAddBackslashW,作用是在字符串的末尾添加反斜杠,以为路径创建正确的语法。
这里重视CopyFileW,如果找到LOCALAPPDATA,那么把文件拷贝过去,我们动态运行到这里,看看localappdata路径会不会有文件拷贝过来
我们看到121.exe已经复制过来了,接下来会进入9624函数
这里都是与注册表有关的函数,看一下subkey的值
这个函数是用来添加自启动项的
接着向下看,和上面一样的一个判断逻辑,我们直接动态运行观察对应文件夹
下面是一个循环,循环次数由v7,v8共同决定,v8由9B4B决定,参数v6是我们刚才public下文件的路径,跟进这个函数看看
这里都是于文件操作有关的函数,我们看一下,if后是GetLastError的分支,所以我们直接看else里面的代码。观察到由WriteFile函数,但前面的代码看不出什么,我们转到动态调试,看看能不能找到什么线索,主要是观察A116那个函数。
创建了一个文件
观察一下A116传入的参数,其中nullsub_1值得我们注意,其实我们在最开始就看到他了
只不过我们看不太出这是干什么,就先没管它,但它现在又用了,我们来看一下。我们先看一下它传入参数的时候是什么
很乱,不知道是啥,还在最开始就生成了,那我们可以想到是一种标识,也就是生成用户ID的,所以A116这个函数把用户ID,public路径名、加密后缀、勒索提示文件名都传进来了,我们进去看看
注意RsaGenKey,看来这里是用来进行生成rsa密钥对的
返回的值为v9,v9于9FDE有关,跟过去看看
果然,这里是rsa加密,传入的参数是我们的用户ID
这里小结一下9B4B在这个函数,经过我们的分析,发现这个函数的功能是在public文件夹下写一个文件,内容是经过rsa加密的用户ID。
我们接着向下看。
与堆栈有关的函数先不看,直接到99A3
这里是遍历磁盘的操作,然后根据遍历结果创建一个线程,我们跟到StartAddress里去看
很长的一个循环,甚至我都没截全。根据关键API来看,这里应该是在遍历文件了,根据分支来看,加密函数应该是8D8B,跟进去看也很长,但我们还是能发现蛛丝马迹,我们看到了9FDE,如果你之前改过名你就会发现,这是rsa加密函数
我们知道了这是加密函数,我们就进入线程在这里下断点,看看是不是在对文件进行加密
观察堆栈情况
多运行几次,在观察桌面,发现你桌面上的文件已经一个个被加密了。
这样我们分析完了99A3这个函数,是用来创建线程加密文件的,我们回到最开始接着看下一个9449
很方便观察,这是创建一个bat文件,我们可以动调跟到这看看路径(这其中我们也可以观察到,文件一直在被加密,这边也建议虚拟机里文件少一点,这动调加密时间太长了。。。我恰个饭回来断下了)
得到文件路径,我们去看看
文件已经创建还没有写入数据
这俩函数应该就是干完善bat的活,9305里有CreateProcessW,所以应该是启动bat,我们动调一下8919看看有没有向bat里写数据
执行完后大小发生变化,正如我们所想。但我们还不能打开看,显示有进程占用,接着往下看9509,就是return的那个函数
还在对bat进行一些操作,shellExecuteExW执行了一个删除操作,把自身删除了,可以看一下,此时桌面上没有病毒程序了,在往后程序就退出了,这个勒索病毒也执行完了。
我们现在可以查看一下bat文件
可以看一下,这个bat的功能是删除卷影副本,清除远程登入日志。
程序退出,我们对这个病毒的分析也结束了。
0x05 总结
最后总结一下这个病毒的行为:
1、将自身拷贝到LOCALAPPDATA路径
2、将自身加入自启动项
3、解密生成勒索的后缀和用户ID,用RSA加密后放到public文件夹下
4、开始遍历用户的磁盘,对除自身以外所有文件进行加密,并且生成勒索提示的信息
5、生成bat文件,删除卷影副本,清除登陆日志。
6、删除自身,程序退出。