实验环境:win7 x64
样本信息:(微步获取)
分析工具:火绒,x64dbg,IDA
一:在虚拟机中运行一下,看一下病毒的运行效果
启动前:(笔者创建了一个txt文件进行测试)
启动后:(文件都被加密了)
病毒作者留下的联系信息:
二:分析一下病毒文件的行为(使用火绒来监控病毒行为)
一大堆事件信息,头皮发麻:
三:静态分析前置操作
查一下壳:没发现壳的信息,程序是用C++13编写的
字符串中发现了加密算法:发现在两个函数中引用,推测应该就是加密函数了
只有一个区块,推测应该是做了一些处理:
查看导入表发现调用了一些敏感函数如文件遍历的相关函数,及在注册表等操作的相关函数
四:分析
mian函数中只调用了一个函数
我们跟进去看一看(push一堆值,调用了这个函数,这是一个关键函数,从后面分析来看,这是个解密函数,本文以下简称为解密函数)
跟进408B19函数,里面有点乱,我们动态分析一下,调试分析了一下发现一大堆的数据
继续动态调试,来到409CE7处,该处调用了GetModuleFileName函数来获取文件:
本机文件的具体地址:0040CAB8:&L"C:\Users\test\Desktop\a.exe"
接着又调用了解密函数
解密的结果为.Snake4444,这是加密文件的后缀
我们还看见了HOW…..这是作者留下的解密信息文件,推测后续操作应该是解密相关信息并写入文件
接着向下看,来到了4088F4函数,这是一个获取相关硬件信息的函数,留着给后面加密函数使用
继续向下看,我们发现了这个函数,该函数的功能是获取系统环境变量,同时如果第一次获取不成功的话就在获取一次,两次都不成功就退出,主要是获取LOCALAPPDATA或APPDATA环境变量
获取成功的话就在字符串末尾添加反斜杠
接着获取到文件名,最后将自身拷贝到local目录下
接着进行注册表操作
接下来是文件的相关操作,我们进入函数分析一下
进入以后首先看到的是创建文件,写入了一个文件,文件推测为公钥
继续跟着流程走,走到了我们的加密函数了,生成RSA密钥对
接着走,发现了遍历磁盘的操作
同时根据遍历的结果来创建线程,推测接下来应该是进行加密操作了,动次动态调试后可以确定4099A3就是加密函数
接下来我们分析一下409449这个函数
这个函数的主要功能是创建一个BAT文件,推测这个.bat的文件应该是做一些清理工作
在X64中下断409449函数动态调试发现实在这个目录下创建文件
tmp85c2.tmp.bat的文件内容
调用CMD命令删除病毒文件
总结:以前总是喜欢静态分析,但这个病毒的一些函数只看静态的话有些看不懂,还是要多多练习一下动态调试的能力