这个照例还是先查壳,VC++6.0的

然后使用IDA静态分析Imports和Exports,对几个关键函数进行简单静态分析


问题1:使用工具Process Explorer监视

根据问题的提示,打开Process Explorer,双击运行程序,发现了这个

在程序运行时,调用了svchost.exe。这个二进制程序是个系统文件,结合IDA静态分析,很有可能对这个程序做了恶意修改

这里是main函数中对svchost.exe程序的寻找

这里是使用了GetSystemDirectory,这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中,包含了所有必要的系统文件。

那么我们在本地搜索一下,svchost.exe在哪里


在system32目录下,正常来说,这个目录下的文件都是用来支持系统运行的,一般都是用来调用而不可能去修改的

从IDA的这个函数分析,这个恶意代码很有可能修改了该函数的某些字段实现恶意功能

这里有好几个需要注意的点:首先,这里的0x5A4D和0x4550都是exe的magic,称为“魔术头”。也就是机器用来识别exe的标记字段。

然后,这里几个API函数都是不怎么”干好事“的

CreateProcess:用来创建一个新的进程和它的主进程,这个新进程运行指定可执行文件。

VitrualAlloc:简单来说就是申请内存空间。

GetThreadContext:读取当前进程的上下文,即获取当前进程所在环境。

ReadProcessMemory:根据进程句柄读入该进程的某个内存空间。

WriteProcesMemory:根据进程句柄写入该进程的某个内存空间。

所以,这里很可能是针对系统的svchost.exe。

这也是恶意代码的一种很常见的方式,因为在system32目录下,想新建一个文件,特别是恶意文件是很难的,很可能权限不够,但是以读取系统文件,以修改系统文件增加恶意功能的方式来提权,相对简单。


问题2:找到内存修改行为

有了猜测,那么我们去分析svchost.exe

首先,使用MD5值来分析,只要二进制文件有变化,那么MD5值一定有变化




上面是0303.exe运行后的,下面是0303.exe运行前的

这感觉不太对啊,为啥这个文件没有啥变化

注意到Process Explorer中有两个svchost.exe


然后再看下面这个呢


那这可能说明了:svchost.exe有多种使用方法吧。0303.exe这个恶意代码的姿势不一样,导致实现了某个恶意功能(yy的)

然后书中给的分析方法是:在Process Explorer中,找到这两个svchost.exe,在Memory中找不同

这就可以发现不同之处了,右边那个有个.log文件,很有可能是对用户操作进行的记录日志,而[SHIFT]、[ENTER]这种,在正常的系统程序中是不会存在的,可以确定这个svchost.exe是被感染了


问题3:感染迹象特征

在每个文本文件的创建,修改等操作时,在文本文件的当前目录下会新生成一个practicalmalwareanalysis.log文件(如果已经存在,就是追加写入模式)


问题4:恶意代码目的

键盘记录器


PLUS

http://blog.csdn.net/shirly_2006/article/details/1563035

在网上搜索了一些svchost.exe的相关病毒分析、杀毒教程之类的文章,上面的链接讲述了挺多svchost.exe的相关技术的

有个svchostviewer的工具,可以查看当前运行的svchost.exe开启的所有服务

还有几种svchost病毒的特征,使用工具Process Explorer(以下对比图,左边都是被病毒感染的,右边是正常系统使用的)

读写的文件数目、字节数目肯定是不同的

更关键的一条是:文件目录不一样!

恶意代码的文件目录会显示成本地的


找到一个工具IceSword(冰刃),功能还挺多的

用来分析这个恶意代码还是挺好的,功能有:进程、内核模块、服务、钩子等~~~


如果说之前的分析是靠猜测的话,那么这个对比图就是更加明显了,运行完恶意代码之后,机器正在运行的进程仅仅多了一个,从数量上很明显。而且通过进程ID344,发现是svchost.exe


对比上述两图,很明显关键的钩子是句柄0x000101e8的KEYBOARD。实现了键盘监听的功能。


其他的参考分析:

https://hunted.codes/writeups/challenges/practical-malware-analysis/practical-malware-analysis-lab-3-3/

https://debug.fail/2015/10/practical-malware-analysis-lab-walkthrough-3-3/

http://blog.csdn.net/isinstance/article/details/77853429