资讯专栏INFORMATION COLUMN

号称病毒之王的“熊猫烧香”详细分析

seanHai / 3144人阅读

摘要:样本概况样本信息基本信息文件大小修改时间年月日病毒行为在系统目录下生成病毒程序并执行修改注册表添加启动项目录下产生文件关闭网络共享存在网络连接有加密的流程传输感染文件测试环境系统环境位位工具查看感染标记动态调试静态调试进程查看

01-样本概况

1.1-样本信息

  • 基本信息

文件: C:/Users/15pb-win7/Desktop/xiongmao.exe大小: 30001 bytes修改时间: 2018年7月14日, 8:40:21MD5: 512301C535C88255C9A252FDF70B7A03SHA1: CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870CRC32: E334747C
  • 病毒行为:

     1.在系统目录下生成病毒程序并执行

     2.修改注册表

     3.添加启动项

     4.目录下产生Desktop_ini文件

     5.关闭网络共享

     6.存在网络连接

     7.有加密的流程传输

     8.感染文件

1.2-测试环境

系统环境:

  • Windows10-64位
  • Windows7-32位

工具:

  • 010Editor:查看感染标记
  • OllyDebug:动态调试
  • IDA:静态调试
  • PCHunter:进程查看及结束
  • 火绒剑:观察病毒行为
  • Hash工具:计算病毒文件哈希值
  • WSExplorer:查看病毒程序网络连接
  • VS 2017:编写专杀工具

1.3-分析目标

  1. 提取病毒样本

  2. 分析病毒行为

  3. 分析病毒代码细节,获取其执行流程

  4. 提取病毒特征、手动查杀及编写专杀工具

02-具体行为分析

2.1-文件操作

病毒创建了大量文件,并且会修改/感染正常的程序

2.2-注册表操作

创建了新的注册表项,并且通过修改注册表,实现病毒的自启动

2.3-进程操作

枚举进程来查看是否有杀毒软件,创建进程来运行自己产生的恶意程序spo、打开设备以便感染U盘等硬件设备

2.4-网络操作

存在大量http请求可以实施DDos攻击,也可以发送数据包,以便上传私密信息到服务器,存在网络连接,以便用户从服务器下载木马等恶意程序

2.5-行为监控

可以修改注册表来实现自启动项,会感染PE文件,进行自我删除和复制

2.6-执行监控

其通过cmd命令删除了网络共享

03-恶意代码分析

3.1-脱壳

是否有壳:PEiD查看xiongmao.exe存在FSG 2.0的壳

x32Debug中打开xiongmao,单步跟踪直到jmp dword ptr [ebx + 0xc],其跳往真实OEP处,利用Scylla插件进行脱壳,最后保存为xiongmao_dump_SCY.exe

PEiD深度扫描xiongmao_dump_SCY.exe显示没壳,再查看其输入表也正常,说明脱壳成功

3.2-整体流程

IDA:Shift+F5 签名窗口中,添加delphi特征库,应用后可识别大量库函数,根据伪代码推测功能

动态调试,看sub_405250功能,call之前,eax中传参是一堆杂乱的中文字符,call之后,将局部变量ebp-0x14中的值赋值给edx,此时是正常的中文,随后进行字符串的比较,因此可判定其为字符串解密函数,暂记做DecodeString,并在IDA中修改(快捷键n)

经过IDA和OD的结合分析,最终可得到整体流程图,如下:

3.3-代码块sub-40819c

IDA:进入819c函数内部,某处出现了样本文件名,应该是敏感部分,要重点关注;此处有两个sub-xxx函数不知用途

IDA:进入sub-4053ac内部,有一个获取系统目录的库函数,因此可初步判定其功能

OD:验证上述推测是否成立,ctrl+g到4053a4处,内部下断运行至此,从堆栈中找到调用位置,取消内部断点调用位置下断重新运行,单步测试;运行后,将局部变量压栈,可见其就是系统目录,再与后面的子目录和文件名拼接,得到最终地址;推测正确,因此IDA中将其命名为GetSysDir以作标示

综上,本函数功能:复制自身xiongmao.exe到系统目录下并重命名为spo0lsv.exe,然后执行

3.4-代码块sub-40d18c

  • 双击进入,内部有三个函数:40a5b0、40c374、40bacc

  • 进入40a5b0:创建线程,其线程回调函数为40a48c

再进入40a48c:while循环执行409448

再进入409448,发现"desktop_.ini"字符串,也有获取本地时间的行为,联想病毒在每个目录下创建ini且内容为日期的行为,推测此处便是代码执行处

进入40c374,设置一个定时器

进入timerfunc定时器回调函数,应该就是创建setup.exe文件

进入40bacc,创建一个线程执行40ba8c

进入40ba8c,后再进入40b864,发现是网络连接相关

综上,根据病毒行为以及代码中出现的敏感字符串、关键函数等,大致可了解sub-40d18c内部有三个函数,功能分别是:新建线程来创建desktop_.ini配置文件、设置计时器来创建setup.exe文件、创建线程进行网络连接

3.5-代码块sub-40d088

进入函数,有6个计时器,分别执行6个函数,依次查看

40cee4,添加启动项、修改注册表

40d040,访问网站并获取系统目录,推测是从服务器下载恶意程序

40d048,内部有两个函数,第一个同40d040,第二个执行cmd命令关闭网络共享

407430,关闭杀毒软件服务、删除杀毒软件启动项(从字符串可见为常见的杀软)

40cc4c,打开URL,访问网站获取内容

  • 40c728,类似40d040,都是下载恶意代码

  • 综上,sub-40d088内部这几个函数分别实现了:添加启动项、修改注册表、下载恶意代码、访问网站获取内容、关闭杀软服务、删除杀软启动项、关闭网络共享

3.6-启动过程分析

ini配置文件的操作:获取当前路径,并将“Desktop_.ini”拼接到当前路径中,同时检查此文件是否存在,若文件存在,则删除

ini配置文件操作完成后,进入新的流程:为了复制病毒信息以感染其他文件,故将病毒文件信息读取到内存中;同时也设置了标记信息

随后跳往4082DB处:进行了标记检查工作,来判断病毒程序是否被多次运行

随后代码中出现“spo0lcv.exe”字符串:找到运行的进程“spo0lsv.exe”并终止;病毒第一次执行时,需要将自身复制一份到系统目录下,并伪装成“spo0lsv.exe”启动;

字符串比较后,若当前病毒文件已经复制到了系统目录下且被伪造成了“spo0lsv.exe”,则会跳转到40845E处:释放之前申请存放病毒文件信息的内存(OD调试时,可手动修改JZ条件,使之完成跳转)

随之跳往 408741:获取标记并进行检查,当标记==1时,会进入 408477来进行进一步检查(此代码块只有被感染的程序才会执行,OD打开被感染文件进行调试

3.7-感染过程分析

内部三个子模块:前二本地感染,第三通过网络

创建感染线程:找到线程回调函数

感染线程的线程回调函数:遍历驱动器盘符的数目,进入到驱动器中,遍历所有可感染文件以进行病毒复制

_FindAndInfectFile:遍历驱动器下的文件信息,将文件与文件夹进行了分类,排除了特殊文件夹;在判断是否为特殊文件夹的过程中,都是以大写形式进行对比的,以防止因大小写不同而造成错误;在这可跳到处理文件的地方

_FindAndInfectFile:感染前的检查工作,ini中保存的时间与刚刚获取的时间进行比较,来判断是否已经被感染

如4中,若当前获取到的是文件时,开始处理文件:对文件进行检查,只要后缀为“GHO”,就判定为ghost备份文件,直接删除,防止用户还原系统(真tm的坏)

一旦删除了系统的备份文件,病毒就开始肆意感染:大致分为两种,一种是本地可执行文件(如exe为后缀的),另一种是Web网页文件(如html为后缀的)

感染exe等本地执行文件,_InfectFile:首先将目标文件读取到内存中并获取文件名及其大小、然后将自身文件复制到目标文件前并追加目标程序的原始文件、最后添加感染标记,结束感染过程

 被感染文件 : 病毒文件 + 原文件 + 感染标识,标识如下

3.8-自我保护行为

  • 若找到标记字符,则会跳转到408477,此代码块只有被感染的程序才会执行,现IDA中打开原病毒静态分析(也可OD中打开被感染程序动态分析

  • 代码段408477:从被感染文件中分离提取出原始文件(由于感染文件时写入了标记信息,根据标记可得到原始文件),执行后,在被感染文件所在目录下释放出其原始文件

 代码段 408584:被感染文件的主要工作是维护进程中伪造的病毒程序spo0lsv. exe,若spo被删除,则会由被感染的程序再次生成(春风吹又生,除非删除所有被感染程序)

04-解决方案

4.1-病毒特征

病毒文件的哈希值如下:

MD5: 512301C535C88255C9A252FDF70B7A03SHA1: CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870CRC32: E334747C

被感染文件中,文件最后有感染表示标识:WhBoy + 原文件名 + exe + + ascii码为1的字符 + 随机数+ ascii码为2的字符

4.2-手工查杀

  1. cmd命令行下taskkill杀掉进程,或者直接利用PCHunter等工具结束进程

  2. 在系统目录下删除病毒文件:C:/WINDOWS/system32/drivers/spo0lsv.exe

  3. 删除启动项:Windows+R,键入msconfig打开服务配置窗口,切换启动窗口,取消启动项,并且记录下注册表位置

4.修改注册表:Windows+R,键入regedit打开注册表窗口,找到相应位置,并删除记录

4.3-专杀工具

效果图

GitHub地址:https://github.com/Ry1ynn/AntiPanda

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/119937.html

相关文章

发表评论

0条评论

最新活动
阅读需要支付1元查看
<