《软件安全》上机实验五
第五次上机作业:课本342页第13题
一、实验内容
操作实验:熊猫烧香病毒分析。实验内容如下。 1)基于虚拟机软件及其快照功能,搭建一个恶意代码分析实验环境。 2)分析熊猫烧香病毒的程序结构和人侵过程。 完成实验报告。
二、实验环境
- Windows XP
三、实验原理
四、实验步骤
1.搭建虚拟机环境
搭建虚拟机环境并将熊猫烧香文件压缩包复制到XP中,解压压缩包,并将文件后缀改为.exe
测试病毒之前,为虚拟机拍摄了一张快照,并命名为“感染病毒前”
2.运行病毒
双击panda.exe,看他对计算机会产生什么影响(由于刚才做了一次尝试,双击玩panda.exe之后任务管理器打不开了,这里接住了PCHunter工具)
步骤1:双击panda.exe
双击后并没有特殊的弹窗或文本什么的,接下来尝试打开任务管理器、注册表等都会闪退,通过PCHunter发现,有一个名为spoclsv.exe的进程正在运行中,这就是熊猫烧香。
在 PCHunter中发现启动项 sycshare,其启动路径为C:\WINDOWS\system32\drivers\spoclsv.exe
在C:\WINDOWS\system32\drivers文件路径下发现了spoclsv.xe,病毒将他自己复制到了系统目录下,他可以借助系统命令自启动,这样计算机就会一直受到这个病毒的影响。
查看注册表,发现病毒将自己也注册进了注册表
病毒还创建了很多文件,如下图红色所示
3.分析病毒程序结构和入侵过程
步骤1:使用PEiD程序打开病毒程序
PEiD显示病毒程序无壳,且是使用Delphi编写的
步骤2:拦截病毒核心执行步骤
从运行病毒时看到的病毒行为,我们可以分析出病毒的核心执行操作为复制和自启动,通过查阅相关资料,发现核心API为CopyFileA(自我复制)、RegSetValueExA(写注册表值的关键函数) 、CreateFileA(传播制造病毒)。
(1)使用Ollydbg打开病毒源程序
(2)查找关键执行路径,按F2打断点
定位自我复制函数
定位写注册表函数
定位传播制造病毒函数
(3)动态调试,F9执行
首先走到CreateFileA函数,在Windows中理解为其首先要读取病毒程序,使用create函数进行读取,右下角堆栈信息可以看到路劲就是我在桌面上放置的exe文件
继续执行,发现下一步停在函数CopyFileA断点处,可以看到病毒要把自己从
| 源路径:0012FB48 009B0290 | ExistingFileName = “C:\Documents and Settings\Administrator\桌面\panda.exe.exe” |
复制到
新路径:NewFileName = “C:\WINDOWS\system32\drivers\spoclsv.exe”
仔细观察发现:病毒将自己取名为spoclsv.exe,一位内Windows 系统里有一个合法的打印机服务进程叫spoolsv.exe,病毒改动了一个字母,使得普通用户在任务管理器里很难一眼分辨出来。
之后继续执行,调试程序自动退出了,说明它没有往下执行到写入注册表那一步,大概率是因为熊猫烧香病毒的金蟾脱壳逻辑,当他复制完成之后会启动那个写进系统文件的程序,而kill自身(即我在Ollydbg中打开的这个panda.exe)
现在我们用Ollydbg去打开spoolsv.exe
重新打断点:RegSetValueExA和CreateFileA
F9开始执行,会发现程序走到了RegSetValueExA的断点,观察堆栈信息:
hKey = 1D4:句柄,即程序的通行证
CALL to RegSetValueExA:
含义:调用写注册表值的 API。
分析:这是恶意代码实现“持久化”的标准手段。
ValueName = “svcshare”:
含义:这是病毒在注册表里给自己起的“名字”。
分析:正常系统里并没有 svcshare 这个启动项。病毒起这个名字同样是为了混淆视听,让用户以为是某种共享服务 (Service Share)。
重点:在手动查杀时,这就是我们要删除的那个“键”。
Buffer = 009B05B0 (指向的内容):
虽然这里只显示了地址,但结合下面的 BufSize,我们可以确认这里存的就是病毒路径。
BufSize = 28 (40.):
含义:写入数据的长度是 40 字节。
数学验证:字符串 C:\WINDOWS\system32\drivers\spoclsv.exe的长度正好是 39 个字符,加上 1 个结束符(Null byte),正好是 40 字节。
继续向下执行,会发现程序会持续调用几次CreateFileA,观察堆栈信息,其中两次最重要,一是将自己创建到C:\setup.exe,并且创建/覆盖C:\autorun.inf,这样就会造成病毒开机自启。
以上就是熊猫烧香病毒的入侵步骤了。

















