首页 > 编程知识 正文

什么是病毒(埃博拉病毒)

时间:2023-05-03 12:55:16 阅读:70530 作者:512

0x00 前言准备

病毒类别:Thallium

实验环境:win10

分析工具:火绒剑

IDA

x32dbg

die

procmon

在网上看到这样一个病毒样本,以新冠疫情为诱饵针对韩国的攻击,原文件是一个doc

大概这样诱导用户点击,鉴于我的虚拟机没有装读文档类的软件,而且宏代码只是下载了一个文件,我们不去分析宏代码,直接分析下载的文件。

 

 

0x01 样本基本信息

doc样本信息:

下载的payload基本信息:

病毒样本从微步云获取

 

 

0x02 行为分析

我们把获取到的payload后缀改成exe,打开火绒剑和procmon监视行为

1、将自身拷贝到系统文件夹下

2、网络请求行为

 

 

0x03 逆向分析

首先第一步是查壳

没壳,32位,所以我们直接拉进rrdmy

这是一个MFC写的程序,如果我们直接从winmain来看的话会看到一堆看不懂的函数(也可能是我没分析过MFC程序的原因吧)

一堆Afx开头的函数,是MFC的特征

我们去看看别的函数,有没有什么切入点。

我们仔细观察会发现,我们在一开始运行程序的时候,cmd弹窗是隔了一会才弹出来的,想到应该是sleep或者大循环,果然,我们找到了如下代码:

我们注意一下第一个循环,是一个很大的循环,就是我们有延时的原因。

循环结束之后,先用VirtualProtect函数更改0x422548到0x42A548的内存属性为0x40,也就是可读可写可执行,完事之后调用401070,这块不能反汇编,我们看看汇编代码

不断地在jmp,看来这里是做了反调试,我们一点点的来看汇编代码。

首先注意这里

把422548地址传给eax,这个地址是我们刚才更改内存属性的地址

往下看,这里是把刚才的地址内容与4330c0的内容不断地在异或,看来这是一个解密函数

下面还在解密,第一次异或之后进行一个not运算,再与4330c1进行异或

最后把解密之后的结果放回原位

会进行77E6h次这样的解密,这样解密之后,我们观察下面EnumChildWindows里EnumFunc的地址

就是在这个解密的范围之内的,所以我们可以动调跟过去看看解密之后在干什么。用x32dbg在427068处下断点跟过来。

我们简单的跟一跟看看能发现什么。

发现明显停顿

果然,和之前一样的循环

注意eax,发现奇怪的字符串,猜测是解密字符串

注意运行到这里的时候,有弹出了cmd进程框,可能是把我们的进程重新启动了一次。

这一段观察寄存器可以知道是在动态加载API

这里我卡了好长时间,因为一直没找到解密之后的程序放在了哪里。后来通过定位重启进程那一块,终于找到了解密之后的程序哈哈哈

然后通NtResumeThread、ZwSetContexThread进行傀儡进程注入

整体看起来这也是一个加载器,我们dump下俩这个程序,去分析解密之后的那个程序。

用rrdmy打开这个程序,我们发现字符串都很奇怪,然后发现401900是个解密函数

看一下交叉引用,很多地方都调用了这个解密函数

其中这个地方很值得我们注意

动调我们跟过来,看看解密之后的字符串是什么

注意eax,这就是我们揭秘之后的字符串,可以看到,这是一个杀软的名称,往后看几个,解密出来的都是杀软的名称,所以猜想这应该是在判断程序有没有杀软。

我们看一下后面的程序

如果没有10和11对应的杀软norton和sophos,那么进行下面的程序(咱也不知道为啥这么怕这俩杀软)

下面的程序是在创建一个文件,我们在行为分析的时候发现了他在系统文件夹下创建文件,动调跟过去看看是不是一样的。

对应的参数果然是一样的,接着向下看。

往下跟发现了cmd的行为,看看这里执行了什么cmd的命令

是加到启动项的cmd,哦吼,发现了新的行为,有趣。

还剩最后一个大块401b40没分析,这里有很长的代码,慢慢来看。

上来也是很多的字符串解密,我们来动调看看解密之后是什么字符串,有没有什么有用的信息

出现了!目标IP,尝试这访问了一下,进不去,看来应该是挂掉了。我们再看看他会返回什么给IP(可以留意一下中间解密出来的信息,有id,vs和版本号等等,也挺有趣的)

我们看到,这里有id,机器信息之类的一些东西,全部返回给了目标IP,然后下面就是一个用真循环,应该是等返回IP发命令,没什么好看的了,也可以看看401B40里解密的字符串,是一些关于post头的,大体上这个病毒分析完了。

 

 

0x04 总结

最后我们总结一下这个病毒运行的整体流程:

1、以doc文档的形式传播,执行宏代码后下载后续payload

2、payload解密程序段,创建傀儡进程运行最终的shellcode

3、在系统文件夹创建自身文件

4、加入自启动

5、获取机器信息发送给对应IP

over

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。