为了分析“熊猫烧香”病毒的行为,我这里使用的是Process Monitor v3.10版。关于这款软件的使用,可参考以下三篇文章:
《文档翻译第001篇:ProcessMonitor帮助文档(Part 1)》
《文档翻译第002篇:ProcessMonitor帮助文档(Part 2)》
《文档翻译第003篇:ProcessMonitor帮助文档(Part 3,附ProcessMonitor的简单演示)》
行为分析的目的,是为了编写出病毒的专杀程序。当然,由于现实环境的种种限制,可能无法发现病毒的所有行为,这些我都会在文章中进行说明。
这里我将病毒和Process Monitor v3.10复制到之前配置好的虚拟机中,并做好备份。然后先打开Process Monitor,在筛选条件中将“熊猫烧香.exe”加入到筛选器的“Process Name”中,然后运行病毒,首先可以查看一下进程树:
图1 查看进程树
在进程树中可以发现,“熊猫烧香.exe”衍生出了“spoclsv.exe”。衍生出的进程又打开了两次“cmd.exe”。第一次运行的命令是“cmd.exe /c net share C$ /del /y”,它的意思是在命令行模式下删除C盘的网络共享,执行完后关闭cmd.exe。因为我的系统只有一个C盘,因此有理由相信,这个病毒应该是会关闭系统中所有的盘的网络共享。第二次运行的命令是“cmd.exe /c net share admin$ /del /y”,这里取消的是系统根目录的共享。那么由此就可以总结出病毒的两点行为:
病毒行为1:病毒本身创建了名为“spoclsv.exe”的进程,该进程文件的路径为“C:\WINDOWS\system32\drivers\spoclsv.exe”。
病毒行为2:在命令行模式下使用net share命令来取消系统中的共享。
图2 “熊猫烧香.exe”对注册表的写入
注册表的这个位置主要用于随机数种子的生成,仅仅依靠这条信息是无法推测病毒的行为的,所以可以认为“熊猫烧香.exe”对于注册表没有什么实质的影响。
图3 “熊猫烧香.exe”创建文件
可见,“熊猫烧香.exe”在“C:\WINDOWS\system32\drivers”中创建了“spoclsv.exe”,其它再无可疑操作,那么可以认为,这个病毒真正的破坏部分是由“spoclsv.exe”实现的,那么接下来的工作就是专门监控这个进程。
图4 监控注册表中的“RegDeleteValue”操作
可见病毒程序将当时几乎所有的安全类工具的自启动项给删除了,就有:
病毒行为3:删除安全类软件在注册表中的启动项。
然后只保留“RegCreateKey”与“RegSetValue”进行分析:图5 创建自启动项
可见,病毒程序为自身创建了自启动项,使得每次启动计算机就会执行自身,则有:
病毒行为4:在注册表“HKCU\Software\Microsoft\Windows\CurrentVersion\Run”中创建“svcshare”,用于在开机时启动位于“C:\WINDOWS\system32\drivers\spoclsv.exe”的病毒程序。
接下来还有:图6 使文件隐藏
对注册表的这个位置进行设置,能够实现文件的隐藏。此处进行设置后,即便在“文件夹选项”中选择“显示所有文件和文件夹”,也无法显示隐藏文件,则有:
病毒行为5:修改注册表,使得隐藏文件无法通过普通的设置进行显示,该位置为:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL,病毒将CheckedValue的键值设置为了0。
至此,注册表部分就基本分析完毕了。
图7 监控文件操作
在图中可以看到,病毒文件在“C:\WINDOWS\system32\drivers”中创建了“spoclsv.exe”这个文件,在C盘根目录下创建了“setup.exe”与“autorun.inf”,并且在一些目录中创建了“Desktop_.ini”这个文件。由于创建这些文件之后就对注册表的SHOWALL项进行了设置,使得隐藏文件无法显示,那么有理由相信,所创建出来的这些文件的属性都是“隐藏”的,于是有:
病毒行为6:将自身拷贝到根目录,并命名为“setup.exe”,同时创建“autorun.inf”用于病毒的启动,这两个文件的属性都是“隐藏”。
病毒行为7:在一些目录中创建名为“Desktop_.ini”的隐藏文件。
图8 监控网络操作
从监控结果可以看到,病毒会向“124.16.31.148”发送并接收信息,并不断尝试连接“10.0.2.X”即局域网中的其它计算机,于是有:
病毒行为8:向外发包,连接局域网中其他机器。
至此,我们已总结出病毒的8点行为,在分析的过程中,我基本上是一语带过,主要是因为病毒比较简单,加上它在Process Monitor面前也是无所遁形。但是请大家注意,以上8点不代表就是病毒的所有行为,因为更加详细的结论是要通过逆向分析才能得出的。而通过上述的分析结果,我们就可以着手专杀工具的编写了,这将会在下一篇文章中详述。