-
-
[原创]实习生分析GrandCrabV4.0勒索病毒
-
发表于:
2018-7-4 11:48
8507
-
[原创]实习生分析GrandCrabV4.0勒索病毒
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编辑
,原因: