写在前面:
这个病毒作者已经公开了私钥,解密工具也制作出来了,我就当是学习逆向对整个病毒进行分析一下。
虚拟机环境:win10x64 网络状态:飞行模式(因为不知道会不会内网感染)
病毒样本放在百度网盘了,在后面有下载链接。
勒索复现:
下载之后有三个文件,一开始我以为运行exe就会完蛋,但是想的太简单了。
更具火绒发的报告,程序传输途径可以是某西下载园,所以exe需要放在C:ProgramData目录下,然后还是不行,调用的的dll也要放到C:ProgramData下,因为调用的是硬编码,应该是编程的时候放在项目文件下调用的,然后运行还是没啥动静,那个you文件是虚拟保护过的,没啥变化,最后根据收集到的信息,才知道you文件需要放到C:UsersPublic,下才可以。
第一次运行exe会在C:UsersPublic生成一个fm文件:
里面记录了第一次运行的时间:
然后第二次运行,病毒就开始工作了,表现就是虚拟机的文件全部被加密了,包括文档和压缩包,后缀多一个.WannaRen:
用二进制编辑器打开,文件头尾都有特殊关键字:
桌面有勒索信和图:
打开欣赏一下:
(英文很有百度翻译的味道)
到这里整个复现就完成了,还是折腾了一点时间。
逆向分析
首先康康这个exe,很干净:
就一个导入结构,调用lib文件。
动态调试一下:
RVA1272检查路径是否在指定路径下:
然后调用这个DLL之后,就退出了程序,他用的是硬编码,编程的时候dll应该是和程序放在同一个目录下:
然后就退出程序了,连createfile都没调用,看来fm文件是在这个dll里面创建。
od载入这个病毒wwlib.dll:
如果第一次动态调试的话,应该停在下面位置:
单步几下看看,程序被vmp过,而且没找到中心调度(可能有我没看到),也没找到跳转表,估计是保护全开了,程序大小也着实很大:
run跟踪也没什么看的,可读性很低:
另辟其他路,之前运行的时候有创建fm这个文件,那就对CreateFileA,CreatFileW, readfile都下断点,调用这些win api是需要出虚拟机的:
然后运行,有点收获,create文件,读写权限:
之后又是读取此文件,不知道干什么。
继续f9肯定会在readfile断下:
数据窗口跟随buffer,运行到ret,说明之前的create函数就是写入时间的:
再f9 程序退出。
在之前提到,第一次运行是在public文件下创建fm文件,然后第二次才是加密,就是对这块逆向分析得到的结果,ctrl f2一下,程序停在莫名其妙的地方:
不用管他,应该是哪个api函数的断点,两次f9到入口处。
然后第一个问题出现了,程序调用依旧读取两次fm就退出了,这块浪费了时间,不知道什么操作,在第一次createfile 这个fm文件的时候,跑到文件夹删除这个fm文件,就
可以了。
此时删除:
然后开始读取这个you文件:
这个就是加密文件,读取之后,开始read:
然后buffer跟随,运行到ret,可以看到这个buffer就是you这个加密文件的数据:
再f9跑飞,重新来一遍对这个位置下硬件访问断点:
f9到一个位置:
简单分析一下这块代码,992位置读取加密的数据,下面开始调用解密函数,jmp这个不要去跟踪,因为也是一个解密操作,但是没有用函数封装,跟着容易跑没了。
解密之后保存到ebx指定的位置,数据窗口中跟到:
对9C0位置下断点,f9运行到,可以取消之前下的硬件断点,不然手抖一下就要重来,下面这张截图的地址和上面不一样就是因为手抖:
MZ,,DOS stub 安逸,dum出来:
程序还不能直接改成exe,因偏移地址在028处,用二进制编辑器删掉前面的东西:
保存好,修改成exe后缀,就出现了一个真正病毒程序:
这是一个易语言写的程序:
现在没什么保护措施了,静态分析一下,框架不适合start开始分析,从加密位置找找:
Big_Number应该是RSA的p,q和e,xfer没看到调用的函数,crc32_table可以找到加密函数。
对这块分析,就是常规看exe程序,我放到我课程报告里面了。
对这个病毒的解密工具各家也都有了:http://bbs.huorong.cn/thread-68373-1-1.html
链接:https://pan.baidu.com/s/1xW88VoHPdw3nQutzG6utag
提取码:vzu3
复制这段内容后打开百度网盘手机App,操作更方便哦