恶意代码防范实验-Lab04.exe分析

实验目的

分析含有恶意代码的程序Lab04.exe

使用软件

  • PEiD
  • Ollydbg
  • process monitor
  • 7-Zip
  • WinHex

使用所给文件完成以下问题

  1. 这些文件何时编译的?
  2. 这两个文件是否有迹象被加壳或混淆?证据何在?
  3. 是否有导入函数?功能?
  4. 是否有任何其他文件或基于主机的迹象,让你可以再受感染系统上查找?
  5. 是否有关于网络的恶意代码感染迹象?

1、当你运行该文件时,会发生何种现象?

当运行这个程序之后,鼠标会变成小沙漏,并出现短暂的黑框框,表示程序在运行,并且可能调用了系统的命令行程序cmd.exe

恶意代码防范实验-Lab04.exe分析_第1张图片

然后什么都没有了,再看源程序,发现原来的程序文件已经不见了,说明源程序要不就是被隐藏了,要不就是被删除了。

恶意代码防范实验-Lab04.exe分析_第2张图片

恶意代码防范实验-Lab04.exe分析_第3张图片

我们打开任务管理器,观察运行的进程,并没有发现什么驻留的恶意进程,猜测这个程序不会驻留在内存中。

恶意代码防范实验-Lab04.exe分析_第4张图片

2、何种原因造成动态分析无法有效实施?

我们用几个工具对程序进行静态代码的分析和动态调用的分析,分别是老师给的PEidOllydbg,还有根据参考windows程序逆向工具汇总找到的进程行为监视工具process monitor

PEid可以看到这个程序调用了很多系统动态库,大致可以分为这几类:

  1. 文件创建、删除;
  2. 调用其他程序;
  3. socket通信;
  4. 修改注册表。

恶意代码防范实验-Lab04.exe分析_第5张图片

使用Ollydbg进行动态运行分析,可以找到很多的switch语句和各种一两个字母的字符串,大概可以判断这个程序有很多判断分支。在经过老师提供的参考资料提醒之后,我明白了这其实是很多的命令行参数,这个程序在不同的参数下运行不同部分的代码。

恶意代码防范实验-Lab04.exe分析_第6张图片

使用7-zip把程序解压成各个数据段,用winhex软件偶然得发现在数据段里面有一些存储的可读字符串,我在这里找到了前面提到的命令行黑框框出现的原因,这个程序调用了系统的CMD.exe,并用了一个命令来实现文件的删除。

这里写图片描述

除此之外还发现了这个程序有HTTP连接,连接到了一个网站的80端口,使用的是GET方法。而且应该还有一些下载、上传、休眠的操作。但是我之前并没有发现驻留进程的现象,说明可能这些功能是需要命令行参数的。

这里写图片描述

恶意代码防范实验-Lab04.exe分析_第7张图片

这里写图片描述

然后我们可以在后面找到相应的可能是上传的文件格式和命令行参数的字符串。

这里写图片描述

然后我再用Process Monitor监视一下这个程序对文件系统和注册表到底干了什么。监视完之后发现log信息比我们想象中的要多很多,而且大部分都是不可读的,进行了大量的文件操作和注册表操作,还有调用CMD程序的痕迹,但是并没有看到有socket调用的痕迹。

恶意代码防范实验-Lab04.exe分析_第8张图片

所以我认为,没有办法正确的动态分析这个程序的原因是因为:一、这个程序有很多命令行参数,没有使用这些参数的时候这个程序的很多其他特性都不会显露出来;二、这个程序在没有命令行参数的情况下会自动把自己删除进行保护,这也让分析加大了一定难度,因为文件的运行到一半就没有了。三、这个程序并不是自己实现删除的,而是利用了系统的CMD程序的命令来完成的,这样子在dbg里面是没有办法检测到删文件的这个行为的。

3、运行该程序运行的其他途径。

从前面的分析中,我已经了解到这个程序会调用命令行程序而且也是有办法在命令行中带参数的运行的。所以我这部分就要来试一下那些参数的使用。

经过测试之后发现无论我用什么样的参数,这个程序都执行默认的命令。并没有找到socket通信调用的痕迹,所以我猜测这个程序除了有参数之外可能还要各种参数互相配合使用。

实验环境

操作系统:Windows XP Professional SP2

虚拟机:Parallels Desktop

参考文档

  1. 北京交通大学《恶意代码防范》课程实验文档
  2. MSDN
  3. windows程序逆向工具汇总

你可能感兴趣的:(information,Security)