Incaseformat蠕虫病毒分析

01背景

1月13日, incaseformat病毒在全网集中爆发,中毒用户C盘以外所有文件被删除。

该病毒最早可以追溯到2009年,该病毒会在2010年4月1日(愚人节)触发删除文件逻辑;而此次爆发的病毒是经过篡改得到的变种,最早可以追溯到2014年。而实际上火绒、360等主流安全防护软件均能查杀这两个变种病毒,中毒用户多是未安装防护软件或是对该病毒添加了信任。
在这里插入图片描述

02样本概况

样本名称:tsay.exe 、ttry.exe
严重程度:高危
行为签名:设置注册表实现自启动、将自身拷贝到其他目录下、搜索并加载模块资源
是否加壳:未加壳
测试环境:win7专业版64位
工具:PEid、IDA、RegShot、DeDe

03行为分析

原exe程序图标是文件夹图标,实际上是一个可执行文件,让用户误以为是文件夹而去双击打开。
在这里插入图片描述
直接双击执行exe会不停地报错弹框,因为在当前用户权限下无法修改注册表项,当在任务管理器关闭进程后就会提示以管理员权限启动。
在这里插入图片描述

以管理员权限运行后,用户看不到任何界面变化,在任务管理器里该进程也是一闪即逝,但是在C:\Windows目录下可以找到一个tsay.exe,此时病毒并不会执行。当电脑重启后,tsay.exe自启动复制一个副本C:\Windows\ttry.exe并执行,隐藏扩展名且不显示隐藏的文件。
在这里插入图片描述在这里插入图片描述

此时文件还不会被删除,样本只在特定时间条件下遍历其他盘符并删除文件,最后在根目录留下一个incaseformat.log的空文件。
在这里插入图片描述

04详细分析

用PEid,确认该程序是Delphi编译的程序,未加壳。通过节查看器也可以发现CODE段,确定是Delphi编译的程序。
在这里插入图片描述在这里插入图片描述

使用regshot工具对比执行原exe前后注册表变化,发现给系统目录下的tsay.exe注册自启动项。
在这里插入图片描述

重启电脑后自启动副本ttry.exe,通过修改注册表来隐藏文件后缀、不显示隐藏文件。
删除checkedvalue
在这里插入图片描述

修改checkedvalue为0
在这里插入图片描述

修改hidden值为2,hidefileext为1
在这里插入图片描述

IDA静态分析exe,但IDA对于Delphi程序的反编译可读性相对较差,函数和字符串信息可能识别错误,所以函数窗口会有很多无法识别的函数,这里我用DeDe先找到功能函数,包括一个formcreate和四个定时器触发函数。
在这里插入图片描述

在IDA中找到这五个函数,需要注意的是,Delphi程序的每个动作,其实都是通过CALL实现的,也就是调用WINDOWS的API函数,或者调用DELPHI自己封装好的函数,或者调用自己程序的内部函数,所以主要分析CALL。(DeDe对Delphi的反编译效果更好,但是我的DeDe反编译窗口弹不出来,就只好用IDA了)
在这里插入图片描述

Formcreate:

该函数主要功能可以分为三部分,第一部分比较简单,主要是对函数的调用以实现检查文件路径的目的,这部分中涉及的字符串类型多是“/”或者“: /”。
在这里插入图片描述

第二部分首先判断C:\windows\tsay.exe是否存在,存在则执行跳转第三部分44F16F,不存在则调用CopyFileA复制当前文件至C:\windows\tsay.exe。
在这里插入图片描述在这里插入图片描述

第三部分是修改注册表,SetRootKey作用是设置进行注册表操作的根键,这里传入edx的80000002h值就是对应的跟键值,而_str_SOFTWARE_Micros对应的就是具体修改的值,是将msfsa = C:\windows\tsay.exe写入注册表HKEY_LOCAL_MACHINE/SOFTWARE\Microsoft\Win-dows\CurrentVersion\RunOnce,以实现下一次的开机自启,这与之前发现的注册表变化一致。
在这里插入图片描述
在这里插入图片描述

SetRootKey参数与根键的对应关系如下:
在这里插入图片描述

然后是一个跳转判断,如果是C:\windows\tsay.exe跳转至44F28E,如果是C:\windows\ttry.exe跳转至44F2F4。
在这里插入图片描述在这里插入图片描述

44F28E会复制到C:\windows\ttry.exe,然后启动ttry.exe,Formcreate函数主要功能到此结束。
在这里插入图片描述

Timer1timer:

这个函数只发现一个对盘符的扫描,跳转44E5C8,可以发现对bl的一个赋值,查询ASCII表可以发现43h是C。
在这里插入图片描述

44E694跳转是一个循环,对ebx+1,即下一个盘符,然后判断是否在58h内,58h刚好是字母Z的后一个。
在这里插入图片描述

推测判断,这个函数应该是判断有哪些盘符存在,以便之后进行删除。
Timer2timer:
对日月年有一个时间设置,然后是对年月日的一个判断,年份大于2009、月份大于3、日为1或10或21或29时,跳转44EF31,否则跳转44EF5E。
在这里插入图片描述在这里插入图片描述

44EF31处开始,调用删除函数(44EC70)。在此之前ebx应该还停留在盘符判断时的5B,在第一次调用44EC70前有一次dec ebx,然后是自身的重复调用也就是遍历磁盘,对除C盘文件外的所有文件进行删除操作。
在这里插入图片描述

44EC70中有一个拼接路径,其实就是对文件夹内的东西递归删除。按照时间逻辑13号这个病毒应该不会发作,但制作者设置Sysutils::DateTimeToTimeStamp变量错误,导致时间戳换算结果错误。
在这里插入图片描述

在这里插入图片描述

Timer3timer:

这个函数也是修改注册表,可以看到除了增加键值,还包括对已有值得修改,和对键的删除,目的是隐藏文件后缀、不显示隐藏文件。
在这里插入图片描述

Timer4timer:

删除完一个盘符后,会在磁盘根目录下会留有incaseformat.log文件,将盘符与incaseformat.log字符串拼接,调用TFileStream函数向拼接好的路径进行写操作创建文件。
在这里插入图片描述

05解决方案

由于该病毒只有在Windows平台下执行时会触发删除文件行为,重启会导致病毒在Windows平台下自启动。因此:
1、在设备被感染的第一时间,切忌重启,并立即删除病毒程序;
2、注意全盘杀毒,修复注册表;
3、禁止U盘自启动;
4、如若文件已经删除,立刻切断电源,使用数据恢复软件进行数据恢复。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值