熊猫烧香病毒分析及思维导图
熊猫烧香病毒分析及思维导图
0x00 基本介绍
熊猫烧香是一个感染性的蠕虫病毒,它能感染系统中的 exe ,com ,pif,src,html,asp 等文件,它还能中止大量的反病毒软件进程并且会删除扩展名为 gho 的文件,该文件是一系统备份工具 GHOST 的备份文件,使用户的系统备份文件丢失,被感染的用户系统中所有的.exe可执行文件图标全部被改成熊猫烧香的图标。
分析一个病毒有许多的步骤,本文仅局限于逆向分析层面,如查壳,行为分析,运行效果分析等未在本文展开,文末会放上个人认为比较好的分析文章以供学习。
0x01 环境及工具
分析环境:VMware Workstation Pro 15 + Win7 x86
工具:IDA Pro 7.0 & OD
0x02 Delphi的特性
1.函数用寄存器传参
2.【字符串地址 - 0x04】为字符串长度
0x03 逆向分析
1. 字符串比较
以“xboy”和“whboy”为key 对字符串进行解密,并与程序内原有字符串进行比较,比较成功进入三大核心模块
2. CreateAndRunPanda模块
2.1 删除Desktop_.ini文件
2.2 对文件本体进行判断
2.3 如果为原始程序,则继续执行
先判断进程内是否存在spcolsv.exe,存在就结束进程。
把病毒源程序复制到C:\Windows\System32\drivers\spcolsv.exe,然后启动spcolsv.exe(伪装),关闭自身源程序。
伪装程序和原本的panda.exe 内容是一模一样的,唯一不同就是在此前判断是否为spcolsv.exe程序的地方。
2.4 如果本体为spcolsv.exe(伪装程序) 则跳转至loc_4085BA,释放之前申请存放的病毒文件信息的内存。
2.5 被感染后的程序末尾有五个字节都是Whboy且末尾是数字,通过文件中感染标记来区分,目前运行的是病毒本体还是被感染的文件如果是被感染文件会跳转至loc_4085D3,判断spclosv.exe是否存在,如果不存在从被感染的文件分裂出病毒程序重新执行。
3. InfectOtherFile模块
3.1 调用三个功能函数,三个函数大致的功能是感染本地文件,创建autorun.inf和setup.exe,利用139和445端口局域网传播。
3.2 创建新线程通过查找到的盘符,遍历盘符中的各种文件并进行感染,同时规避掉一些系核心目录
3.3 sub_4094A4函数判断了是否为文件程序,诺为程序则跳转至感染区块
感染区块先删除GHO文件,断了被感染者备份的路。
判断文件后缀,诺为 EXE,RCS,FIP,MOC文件则执行一般感染函数
诺文件后缀为html,asp等网页文件格式进行网页感染函数,网页感染函数只是在网页文件尾部写入“”
3.4 诺为文件夹目录,则先规避掉系统核心目录,在目录下写入隐藏的Desktop_.ini文件,并判断
在c:\test.txt中写入感染信息
3.5 感染完文件后,代码会执行到设置计时器函数,这里定时调用TimerFunc函数、在这个函数中,会生成自启动autorun.inf以及病毒复制体setup.exe,工作原理与此前分析的生成伪装体和生成Desktop_.ini类似。
3.6 局域网传播函数,先是创建线程回调函数,进入sub_40BCC8->sub_40BAA0 函数,进入此函数就有点类似网络编程了,先初始化套接字,创建套接字,尝试连接,关闭套接字。
最后如果尝试连接端口成功则把病毒拷贝到网络文件夹
4. VirusProtectSelf模块
4.1 四个时钟回调函数
4.2 第一个回调函数(sub_40CD30)
通过发送窗口关闭消息关闭反病毒软件和任务管理器,同时通过注册表设置开机自启动和文件隐藏。
4.3 第二个回调函数(sub_40CE8C)
定期从 http://wangma.9966.org/down.txt 读取源码并下载文件并执行
4.4 第三个回调函数(sub_40CE94)
创建俩个线程,第一个线程和第二个回调线程(sub_40CE8C)执行内容一致
第二个线程删除网络共享文件,并且设置用户文件隐藏共享。
4.5 第四个回调函数(sub_407540)
删除服务、删除安全软件相关启动项
!
0x04 总结
1. 特征地址及特征字符
http://wangma.9966.org/down.txt
WhBoy, 武*汉*男*生*感*染*下*载*者*