软件安全实验五——实验报告

实验要求

操作实验:熊猫烧香病毒分析。实验内容如下。

  1. 基于虚拟机软件及其快照功能,搭建一个恶意代码分析实验环境。
  2. 分析熊猫烧香病毒的程序结构和入侵过程。

实验过程

一 搭建恶意代码分析实验环境

测试环境:VMWare WorkStation + Windowx XP Home Edition

  1. 通过共享文件夹,将病毒样本zip和所需工具上传到windows xp中,然后禁用共享文件夹。

  2. 关闭虚拟机的网络,防止病毒通过网络传播:

image-20241220150624994
  1. 关闭虚拟机的防火墙;

  2. 创建虚拟机快照,作为还原点:

image-20241220150743736
  1. 解压熊猫烧香.zip,释放病毒,病毒样本:
image-20241220151151877

二 行为分析

运行病毒,进程中出现spo0lsv.ext进程。

image-20241220152350781

提取样本,放入火绒剑进行监控分析。

  1. 发现文件创建、写入、修改、修改权限等操作,创建了大量Desktop_.ini文件:

image-20241220152607275

表现为大量感染系统中的exe文件:

image-20241220153520361

  1. 发现有注册表操作,包括设置启动项、隐藏文件等:

image-20241220152843889

  1. 发现进程操作:

image-20241220153006063

  1. 发现网络操作:

image-20241220153125920

总结:

  1. 文件操作:病毒创建大量 Desktop_.ini 文件,感染系统中的 .exe 文件,导致文件无法正常运行并显示熊猫图标。

  2. 注册表操作:修改注册表设置自启动项,并隐藏恶意文件,确保病毒在每次启动后重新运行。

  3. 进程操作:创建或修改进程,保持病毒在系统中的存在,同时影响其他进程。

  4. 网络操作:病毒与外部服务器通信,可能用于远程控制或数据窃取。

三 代码分析

使用PEID进行查壳,发现程序带PSG 2.0壳。

image-20241220154321515

使用ollydbg进行脱壳,单步跟踪,0x0040D278为程序的原始入口点,在该地址处,右键dump程序。

image-20241220155422697

使用ImportRCE对dump文件进行IAT修复,发现不能完整识别所有的导入函数,观察IAT的起点是0x0041012C

image-20241220155532102

发现模块之间被 7FFFFFFF 填充,修改为00000000,从而清理掉这些无效数据,修复完成。

image-20241220155742962

修复完成后的dump文件用IDA打开

image-20241223163023845

添加签名便于分析,搜索Delphi,找到Delphi6-7的特征库,应用可以识别出很多库函数

image-20241223163045453

image-20241223163101110

使用F5将其转换为伪代码,便于后续分析。

从start处开始,先分析第一个函数sub_405205。

image-20241223163122027

回到OllyDBG,进入该函数:

image-20241223163621592

结合IDA中代码:

image-20241223163650603

在调用sub_405250之后,有LStrCmp字符串比较函数的调用,之后又有判断返回值的代码,可以猜测函数sub_405250应该是解密字符串函数。我们可以在IDA中改一下他的名字:

image-20241223163730004

剩下的sub_40819C、sub_40D18C、sub_40D088三个函数应该是执行恶意代码的函数,最后有一个消息循环,猜测是要等待恶意代码执行完毕以后退出:

image-20241223163751690

1. sub_40819C函数分析

发现是在每一个目录下创建Desktop_.ini文件

WechatIMG327

继续往下走:

WechatIMG328

首先4053AC函数的功能是获取Windows系统目录(System目录)的完整路径名。

WechatIMG329

405FC4函数在IDA中不易分析,回到OllyDBG中,找到具体使用的地方:

发现此是EAX中存储的是病毒程序的名称。

找到调用该函数的位置,进入下一步后,发现返回了1,判断此处功能应该是结束程序名为”spo0lsv.exe”的程序。

继续往下,sub_407B68函数内为写入bat批处理文件的操作以及启动未被感染的程序。

继续分析,这段代码是用于判断当前是否为源病毒程序,如果是则进入判断语句,不是则结束进程。

WechatIMG334

汇总

  • sub_4053AC:获取Windows系统目录(System目录)的完整路径名;
  • sub_405FC4:结束程序名为”spo0lsv.exe”的程序;
  • sub_407B68:写入bat批处理文件的操作以及启动未被感染的程序;

2. sub_40D18C函数分析

发现包含这些函数:

WechatIMG337

首先是40A5B0函数,进入后发现:

WechatIMG338

在进入40A48C函数,根据之前的判断,这里应该是在创建Desktop.ini文件。

WechatIMG340

然后是40C374函数:

WechatIMG341

进入TimerFunc函数中,实际功能就是检查C盘中setup.exe和autorun.inf文件是否存在,若不存在则创建。

WechatIMG342

最后是40BACC函数,进入后再进入sub_40B864函数发现是与网络连接相关的一些函数。

WechatIMG344

汇总

  • sub_40A5B0:创建线程,遍历目录创建Desktop_.ini文件;
  • sub_403C74:设置函数定时器,检查C盘中setup.exe和autorun.inf文件是否存在,如果不存在就创建;
  • sub_40BACC:创建线程,进行网络连接;

3. sub_40D088函数分析

进入后是这个样子:

WechatIMG345

先进入40CEE4函数,发现是添加启动项、修改注册表的操作。

WechatIMG346

进入sub_40D040函数,再进入sub_40CC34,再进入sub_40C9B0,结合网络博客发现这里在访问网站并获取系统目录,应该是从服务器下载恶意代码。

WechatIMG347

再进入40D048函数,发现内部有两个函数,函数sub_40CC34与函数sub_40CDEC:

WechatIMG348

40CC34函数与40D040函数功能相同,也是下载恶意代码,40CDEC函数方面,发现其为执行cmd命令,关闭网络共享。

WechatIMG349

进入sub_407430函数,再进入sub_406E44函数,发现熟悉的McAfree,用于删除杀毒软件启动项、关闭杀毒软件服务的操作:

WechatIMG350

进入sub_40CC4C函数,结合网上博客,这个函数是用于打开解密之后的网页:

WechatIMG351

进入sub_40C728函数,再进入sub_40C5E0函数,结合博客,发现与sub_40D040功能类似,此处函数功能大概也是下载恶意代码。

WechatIMG352

汇总

  • sub_40CEE4:关闭杀软窗口和进程,添加启动项、修改注册表
  • sub_40D040:下载恶意代码
  • sub_40D048:下载恶意代码,执行cmd命令
  • sub_407430:删除杀毒软件启动项,关闭杀软服务
  • sub_40CC4C:打开解密之后的网页
  • sub_40C728:下载恶意代码

参考

5: 熊猫烧香病毒分析

经典病毒分析——熊猫烧香 - 吾爱破解 - 52pojie.cn

熊猫烧香病毒分析