熊猫烧香病毒分析

样本概况

样本信息

  • 病毒名称:spo0lsv.exe
  • 样本大小:98816 bytes
  • 所属家族:感染性病毒 (Virus)、蠕虫病毒 (Worm)
  • MD5 值:3CE8412544B47D544357C5BE42FBE704
  • SHA1 值:23FC53530BAACCFC4E83E3A74ADB219958B8E665
  • CRC32:AFA1B975
  • 病毒行为:修改 PE 文件,设置文件夹属性,杀掉杀毒软件进程,关闭系统和杀毒软件服务,设置文件属性,在根目录创建自运行文件,修改注册表,修改启动项等

测试环境及工具

  • 测试环境:Windows 7 32 位
  • 工具:PEiD、x64dbg、Process Explorer、PCHunter、火绒剑、Ollydbg、IDA、IDR、010Editor

分析目标

  • 初步分析病毒文件
  • 查看病毒主要行为
  • 详细分析病毒文件
  • 手工查杀病毒
  • 编写查杀工具

具体行为分析

初步分析病毒文件

  • 通常,我们拿到病毒文件的第一件事是查看其文件信息,主要是看它是否加壳。有许多软件能查到壳的信息,这里我选择的是 PEiD v0.95。从下图可以看出,该文件已加壳。壳的信息是 FSG 2.0,这是一个压缩壳。

    在这里插入图片描述

  • 脱壳。这里我们选择“手工”脱壳,使用的是 x64dbg。先用 x64dbg 打开病毒文件(说明:因为当前是 Windows 7 32 位系统,所以安装的是 32 位的 x64dbg,即 x32dbg),然后按 F9,来到壳的入口点。

    在这里插入图片描述

  • 单步几次,先不进入第一个 call,往下翻,找到注释(反汇编窗口的右边)有“LoadLibraryA”和“GetProcAddress”的地方。具体分析见下图。

    在这里插入图片描述

  • 在上图中标注“跳转到真正的入口点”的 jmp 处按 F4,然后单步,即可到达真正的入口点。

    在这里插入图片描述

  • 找到真正的入口点后即可脱壳。这里使用 x64dbg 的插件 Scylla,当然,也可用别的工具。

    在这里插入图片描述

  • 在弹出的 Scylla 对话框中,如图所示的步骤操作即可。(第一步:自动获取 IAT;第二步:获取导入表;第三步:Dump;第四步:修复 IAT)

    在这里插入图片描述

  • 脱壳成功。

    在这里插入图片描述

    在这里插入图片描述

  • 使用 PEiD、Exeinfo PE 等工具查看脱壳后的病毒文件信息。

    在这里插入图片描述

    在这里插入图片描述

  • 使用 LordPE 查看脱壳后的病毒文件信息。

  • 因为这是一个 Delphi 程序,所以还可使用IDR获取敏感字符串信息,导出 map 文件(说明:IDA 加载签名文件后也可导出 map 文件),在之后的详细分析中,可用 Ollydbg 导入这个 map 文件,这样 Ollydbg 也可识别 Delphi 的字符串。

  • 总结:上述步骤是在获取病毒样本之后对其的初步分析,关键在于查壳和脱壳,由于本次分析的病毒文件使用的壳较为简单,故并未使用专业的脱壳软件。还有就是,我们知道了这是一个 Delphi 程序,也就知道了它的调用约定等信息,便能更好地助益我们后面的详细分析。

查看病毒主要行为

  • 这里使用火绒剑这款工具查看病毒的行为。请注意,下述操作须在虚拟机等环境中进行,千万不要在物理机中操作,以免造成不必要的损失。在虚拟机中操作前,务必先保存快照,一来虚拟机以后可能还会用到,此举可避免无谓的重装,二来后面的分析也要回到无毒的环境进行。保存快照后,把病毒文件拖入火绒剑,点击“确定”。这时病毒程序开始运行。

  • 由下图可看出,病毒的行为不少。此时可先过滤一部分动作,每次只选择同一类型的行为,避免杂乱无章和手忙脚乱。接下来,便正式开始分析。

  • 先分析第一个大项 —— “执行监控”。子项有“模块加载”“进程退出”“进程启动”,都是很重要的,所以全选。点击“确定”。

  • 由下图可看出,病毒的这一类型的行为不算太多,我们可逐一查看、分析。

  • 通过上一步,我们可总结出病毒的两种主要行为:一、退出自身进程,创建“spo0lsv.exe”进程;二、取消网络共享。

  • 分析第二个大项 —— “文件监控”。由于子项太多,且大多不需要详细分析,故只选择如下几项。点击“确定”。

  • 由下图可看出,虽然只选择了“文件监控”的几个子项,但病毒的行为依然不少,可见,这个病毒集中的“火力”之一便是文件操作。我们可一一点开这些行为,具体分析。

  • 经过上一步的细致分析,可将熊猫烧香病毒在文件操作方面的行为总结出来:在“C:\Windows\System32\drivers”目录创建“spo0lsv.exe”,设置属性,修改文件;在每个目录创建“Desktop_.ini”,设置隐藏等属性,修改文件;设置每个可执行文件的属性,并修改文件;在 C 盘根目录创建“setup.exe”,设置隐藏等属性,修改文件;在 C 盘根目录创建“autorun.inf”(用于双击磁盘后自动运行指定文件,这里是“setup.exe”),设置隐藏等属性,修改文件。

  • 分析第三个大项 —— “注册表监控”。同样的,我们只需选择“删除注册表项值” “设置注册表项值”“创建注册表键”这三个子项逐一分析即可。点击“确定”。

  • 由下图可看出,熊猫烧香病毒删除了当时各大杀毒软件的开机启动项,这样,病毒就可以肆无忌惮了。往下翻,可看出又重复了上述行为,再看“时间”,可推测使用了定时器,每隔一段时间即重复删除。

  • 由下图可看出,熊猫烧香病毒创建了自身的注册表键。

  • 由下图可看出,熊猫烧香病毒在“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run”中创建了“svcshare”,即设置了位于“C:\Windows\system32\drivers”的“spo0lsv.exe”的开机启动项。往下翻,可看出又重复了上述行为,再看“时间”,可推测使用了定时器,每隔一段时间即重复设置。

  • 由下图可看出,熊猫烧香病毒设置了位于“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL”的“CheckedValue”为 0,实现了隐藏文件的目的,因而我们即使在“文件夹和搜索选项”中设置“显示隐藏的文件、文件夹和驱动器”也不会看到隐藏文件,这就达到了病毒隐藏自身的目的。同样的,往下翻,可看出又重复了上述行为,再看“时间”,可推测使用了定时器,每隔一段时间即重复设置。

  • 经过如上详细分析,可将熊猫烧香病毒在注册表方面的主要行为总结出来:删除各大杀毒软件的开机启动项;创建自身开机启动项;使隐藏文件无法通过普通设置显示,也就隐藏了自身。

  • 分析第四大项 —— “进程监控”。由于每一个操作都可能是重要的行为,为了避免遗漏,这里我们选择全部的子项进行分析。点击“确定”。

  • 经过逐项查看,至此,我们可以将熊猫烧香病毒在进程方面的操作归纳如下:一、枚举进程;二、打开进程;三、创建进程;四、跨进程写内存;五、跨进程恢复线程;六、打开设备;七、查找窗口;八、发送窗口消息。同样的,往下翻,并且看右边的“时间”,可推测使用了定时器,每隔一段时间即重复上述行为。虽然归纳出了这些行为,但仅凭这些仍难分析出更多信息,具体的行为分析留待后面的详细分析。

  • 分析第五大项 —— “网络监控”。同样的,由于每一个操作都可能是重要的行为,为了避免遗漏,这里我们选择全部的子项进行分析。点击“确定”。

  • 通过逐项查看,我们可以知道熊猫烧香病毒在网络方面的操作:一、网络连接,访问139、80、443、445 等端口;二、发送数据包;三、HTTP 请求,访问当时的一些门户网站。上述第一、二个行为的目的是连接局域网里的计算机,向外发送数据包;第三个行为的目的可能是一种试探,推测其思路为:如果能访问这些网站(意味着连接了互联网),即可进行诸如下载木马等恶意行为。

  • 我们还可通过抓包工具“WSExplorer”查看是否发送、接收数据包。由下图可看出,熊猫烧香病毒的确做出了这一行为。也可看出,主要是接收数据包。

  • 分析第六大项 —— “行为监控”。这个项目可以说是对病毒全部行为的汇总,因而我们全选,这也能为我们之前的分析起到查漏补缺的作用。点击“确定”。

  • 由下图可看出(往下翻仍是这些行为,只是路径和文件不同,可见,熊猫烧香病毒感染了所有的文件),该病毒主要的行为在文件操作,包括感染 PE 文件、自我复制、覆写PE 文件等。

  • 经过上面的分析,我们已经大致了解病毒的主要行为,现总结如下:

    • 退出自身进程,创建“spo0lsv.exe”进程。
    • 取消网络共享。
    • 在“C:\Windows\System32\drivers”目录创建“spo0lsv.exe”并启动。
    • 在每个目录创建“Desktop_.ini”,并设置隐藏等属性。
    • 设置每个可执行文件的属性,并修改文件(病毒的自我复制等)。
    • 在C盘根目录创建“setup.exe”和“autorun.inf”,设置隐藏等属性,并启动。
    • 删除各大杀毒软件的开机启动项。
    • 创建自身的开机启动项。
    • 设置注册表,使隐藏文件无法通过普通设置显示。
    • 连接局域网,向外发送数据包;访问门户网站。

详细分析病毒文件

  • 现在开始详细分析,即借助 IDA 和 Ollydbg 两款工具,动静结合地分析熊猫烧香这个病毒。当然,主要用到的是 IDA,只有到了静态分析无法确定时才用到 Ollydbg。

  • 用 IDA 打开病毒文件,先将不重要的部分折叠,结果如下:

  • 一开始是大段的字符串复制,其实是病毒作者与他人的对话,不是重点,故不一一分析。

  • 对话结束之后,会遇到两个解码函数,其后是比较字符串,类似于校验,如果没通过,则退出进程。如下:

  • 接下来是三个 call,经过上下文分析,推测这些可能是关键函数,需要一一详细分析。下面是分析之后得出的结论:

  • 第一个 call 做的事如上所述,现将代码出示,其中的注释即是详细的分析过程:

    • PS:如果在 Ollydbg 中分析,至此就会退出进程,解决方法有两种,一是单步至上面图四的 jz 跳转处时修改 zf 标志位为 1,二是用 Ollydbg 再次打开位于 C:\Windows\System32\drivers 目录的 spo0lsv.exe 文件,此即病毒文件

  • 关于第一个 call 的总结:

    • 复制自身至系统目录并设置隐藏属性,然后运行;
    • 退出自身进程。
  • 接下来分析第二个 call。其先调用三个函数,如下:

  • 先分析第一个函数,其内部调用创建线程的 CreateThread 函数,故我们只需分析其线程回调函数即可。如下:

  • 线程回调函数又调用了一个重要的函数,即遍历驱动器的函数,也有必要分析,如下:

  • 再分析第二个函数,其内部调用 SetTimer 函数,即设置一个定时器,对于这个函数,我们也只需分析其回调函数即可。如下:

  • 最后分析第三个函数。其内部调用 BeginThread 函数,同样的,也只需要分析其回调函数。如下:

  • 至此,外部的第二个 call 分析完毕,现总结如下:

    • 遍历驱动器,感染 EXE、SCR、PIF、COM 等文件;
    • 遍历驱动器,在每个目录写入 Desktop_.ini 文件,写入感染时间,设置隐藏等属性;
    • 遍历驱动器,感染 HTM、HTML、ASP、PHP、JSP、ASPX 等文件;
    • 在驱动器根目录写入 setup.exe 病毒文件和 autorun.inf 自运行文件,并设置隐藏等属性;
    • 创建套接字,感染 139、445 端口。
  • 最后,分析外部的第三个 call。其内部调用六个 SetTimer 函数,即设置六个定时器,同样的,只需要分析其回调函数或创建线程的回调函数即可。

  • 第一个定时器的回调函数如下:

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值