-
-
[原创]一次标准的解码->释放->下载->注入的病毒分析
-
发表于:
2018-8-15 20:36
8384
-
[原创]一次标准的解码->释放->下载->注入的病毒分析
一次标准的解码->释放->下载->注入的病毒分析
我司安全架构师发现一病毒甩给我来分析,架构师点名要我分析,小弟感觉亚历山大甚是惶恐~~
言归正传,这个病毒属于典型的解密资源段payload,释放文件,创建进程,对其他进程进行注入。有一定的学习价值所以前来分享一下。
静态分析:
首先用PEview查看文件的各个段:
可以发现在rsrc资源段有大量编码过的数据,可以想象这应该是一个payload。
IDA载入之后没有什么很明显的恶意软件特征,所以就不贴图了。直接就上OllyDbg进行动态调试。
动态调试:
1. 解密rsrc资源段内容:
其实对于这类在资源段存在编码payload的程序,其主要功能在于payload的解密和释放。所以这里大体调试的思路和方法是:首先在资源段下内存访问断点;一直F9运行中间直到在该程序的代码段停下来,而且会有反复访问的操作,此时就基本到了解密地方;之后的步骤就是释放了,释放时候可能会在程序中多添加一个段,可能就会使用virtualAlloc函数,所以多留心对内存进行分配的函数就很容易找到添加的payload段
2. 为解密后的函数内容分配内存:
多出了0x00020000段:
3. 循环将函数内容写入0x00020000段:
4. 通过push 0x00020000 和return指令跳转到0x00020000payload地址处:
5. 调用0x20600和0x20750函数反复动态加载函数:
6. 创建新的进程:
7. 获取线程信息:
8. 向新建进程中分配空间:
9. 向新建进程内存中写入程序:
创建的进程句柄是0x48。
查看内存中程序的大小用lordPE把程序dump下来:
10. 继续运行线程:
分析dump下来的文件:
由于这个程序需要输入参数运行,分析时间不多就懒得去动态调试它那些参数了就直接IDA静态看一看,其实里面的功能还是比较容易分析出来的。
1. 下载功能:
大体的流程都差不多,从CC服务器下载一个文件,然后运行并删除。
2. 反虚拟机:
通过查看设备信息判断是否是virtualBox,vmware,qemu模拟器等沙箱虚拟机中。
3. 在注册表中添加自启动项:
4. 进行注入:
sub_402060函数内容:
不对teamviewer、自身以及x64的程序进行注入,其他程序统统注入。
除此之外还会有与C&C服务器通信的事件。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课