熊猫烧香病毒分析

环境:VMware WindowsXP;OD;IDA 6.8(32bit);熊猫烧香样本

先来看看大名鼎鼎的熊猫烧香长什么样子[fig:Panda1_PNG]

Panda<span
data-label="fig:Panda1_PNG"></span>{width=”80.00000%”}

先保存下虚拟机环境,创建一个快照。

然后拖入IDA中看看。

IDA警告<span
data-label="fig:Panda2_PNG"></span>{width=”80.00000%”}

觉得应该是有壳。放入PEiD中扫扫,果然。

Panda的壳<span
data-label="fig:Panda3_PNG"></span>{width=”80.00000%”}

是一个压缩变形壳FSG 2.0 ->
bart/xt。查了下,不是很强的壳,试试手动脱壳。

脱FSG 2.0 -> bart/xt

拖入OD,显示入口点警告

Panda的壳2<span
data-label="fig:Panda4_PNG"></span>{width=”80.00000%”}

查了下,可用ESP定律法脱壳。

这里先用脱壳软件UnFSG 2.0脱壳。

初步分析

把脱好壳的程序拖入IDA,也同时用OD载入,这样可达到事半功倍的效果。

Panda OEP处代码<span
data-label="fig:Panda5_PNG"></span>{width=”80.00000%”}

Panda 代码片段分析之校验部分<span
data-label="fig:Panda6_PNG"></span>{width=”80.00000%”}

这段代码是程序的校验分析,其中包含了作者以及为作者提供帮助的相关人员的信息。验证成功后,会进入病毒启动部分,根据上图可知在标号loc_40D5FD。

Panda 代码片段分析之病毒验证和启动<span
data-label="fig:Panda7_PNG"></span>{width=”80.00000%”}

这段代码再次验证程序是否为病毒程序,若通过验证,则启动病毒程序,通过三个函数(这三个函数名是手动重命名的):CreateAndRunPanda;InfectOtherFile、VirusProtect这三个函数完成病毒的运行、感染以及病毒自身的保护,可以说是该病毒的主要功能模块。

分析CreateAndRunPanda

Panda CreateAndRunPanda片段1<span
data-label="fig:Panda8_PNG"></span>{width=”80.00000%”}

Panda CreateAndRunPanda片段2<span
data-label="fig:Panda9_PNG"></span>{width=”80.00000%”}

上述代码主要获取当前路径,并将“Desktop_.ini”拼接到当前路径中,同时检查此文件是否存在,如果文件存在,则将其删除。之后将病毒文件信息读取到内存,接着进行了标记检查工作,以判断病毒程序是否被多次运行,同时设置相关的标记信息。

Panda CreateAndRunPanda片段3<span
data-label="fig:Panda10_PNG"></span>{width=”80.00000%”}

Panda CreateAndRunPanda片段4<span
data-label="fig:Panda11_PNG"></span>{width=”80.00000%”}

上述代码的目的只有一个:找到进程中运行的“spcolsv.exe”并将其终止,在系统目录中删除“spcolsv.exe”,将病毒自身伪造成“spcolsv.exe”并启动,这是病毒第一次运行时需要执行的。

运行测试

Panda 运行后的情况<span
data-label="fig:Panda12_PNG"></span>{width=”80.00000%”}

运行后因为各种原因,反正没有感染其他文件。这里暂且放下,毕竟年代久远,变数太多。

InInfectOtherFile

这里我们继续分析InfectOtherFile函数。

Panda 的三种感染方式<span
data-label="fig:Panda13_PNG"></span>{width=”80.00000%”}

如图[fig:Panda13_PNG],此病毒通过3种方式进行感染,前两种是在本地进行病毒的感染,第三种则需要网络的支持。