首页
社区
课程
招聘
[原创]实习生分析GrandCrabV4.0勒索病毒
发表于: 2018-7-4 11:48 8507

[原创]实习生分析GrandCrabV4.0勒索病毒

2018-7-4 11:48
8507

GrandCrab4.0样本粗分析

今天得到一个GrandCrab4.0的样本,作为一个小实习生尝试着学习分析了一下。我司大佬有在公众号发文:预警:GandCrabV4.0勒索病毒来袭 与大佬相比我只分析出了一丝皮毛,其中对程序的去封装,解密等操作还是很不熟练还要继续学习。


GrandCrab4.0属于勒索病毒,所以通常不会常驻系统进行持久攻击,一般就是one-shot,运行起来,要快速且致命。所以分析起来主要就是那么几个函数Findfirstfile,FindNextfile,WriteFile和CreateFile等对文件操作函数,以及CreatThread等创建多线程加速文件加密。

这篇文章主要使用定位关键函数的方法对勒索软件进行的分析,适合像我这种新手参考学习,大牛就请绕道啦~

在病毒被执行之前,我特意在C盘目录先创建了一个名为AA的文件夹,这样能够快速使程序运行到我所期待被加密的目录下,被加密前是这样的:


首先静态分析下样本,看样子该样本没有壳:


但实际上程序里面有很多的层对代码的封装和混淆:


在import表中,并没有发现我很很感兴趣的FindNextFile,FineFirstFile等函数,再观察textString也没有发现任何能够引起注意的字符串,可能是有多层的封装以及代码混淆。

有过分析这种感染性病毒的同学可能知道,通常代码会被混淆核心代码会被多层封装,由于小生能力有限,对于去封装加密还在摸索阶段,想要看到更深层请移步到公众平台发的文章。

而且可能会创建多线程进行加密,所以首先要在option处设置一个在生成新线程时候添加断点:

然后进入到程序中。

在本体中没有与加密文件相关的操作,更多的就是load一些很常规的dll,然后查询一下系统的信息:


然后在load函数时候设置断点:



此时就很明了,程序在循环加载dll文件并且循环加载一些我们很关心的函数。

去掉这里的断点继续往后走,回到主线程上,此时在查看调用函数列表:



就能够发现一些我们所期待的函数:CreatThread,CreatFile,WriteFile,MoveFile,OpenProcess,ShellExecute等函数。在函数设置好断点后,继续运行程序,程序在C:\programdata文件夹下创建一个lock文件:


然后继续运行程序,程序在创建一个线程:

通过栈中数据,可知调用线程所创建的函数在00401870处:



然后继续运行程序,因为设置了在生成新线程时的断点,所以会在线程执行的入口停住并生成新的线程:





[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-2-2 15:38 被kanxue编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 192
活跃值: (94)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
样本发出来给我们调调情啊。或许还会有不一样的收获。邮箱:599922@163.com
2018-7-4 13:51
0
雪    币: 7
活跃值: (240)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
3
加油,情况和你类似,共勉...
2018-7-5 15:28
0
雪    币: 1563
活跃值: (272)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
4
某字哮天 加油,情况和你类似,共勉...
2018-7-5 16:32
0
雪    币: 2250
活跃值: (180)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
楼主OD用的很熟练啊,最好是动态静态都调试一边看看~
2018-7-5 16:42
0
雪    币: 1563
活跃值: (272)
能力值: ( LV7,RANK:105 )
在线值:
发帖
回帖
粉丝
6
岁月别催 楼主OD用的很熟练啊,最好是动态静态都调试一边看看~
是的,应该是这样的,但是真的是能力限制了想象力,这个病毒加了混淆代码和几层封装,所以有没能dump下来整个核心部分的代码。
2018-7-5 20:21
0
雪    币: 8387
活跃值: (4961)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
学习了   
2018-7-6 00:39
0
雪    币: 608
活跃值: (648)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
GrandCrab...这个东西如果没记错的话,脱壳以后会得到两个DLL,一个加密的一个通信的。。。
没必要花时间在处理混淆上,直接OD开内存窗口,一直F8到出现第一个RWX内存区块,切换过去在内存区块上放一个硬件断点就行了。。。
2018-7-7 16:24
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
发一下样本  
2018-8-17 12:48
0
游客
登录 | 注册 方可回帖
返回
//