首页
论坛
专栏
课程

[病毒木马] [原创]恶意代码分析实战第13章Lab13-02.exe分析

2019-2-20 14:07 1435

[病毒木马] [原创]恶意代码分析实战第13章Lab13-02.exe分析

2019-2-20 14:07
1435

结合恶意代码分析实战实验课后题,分析样本Lab13-02.exe

1.样本信息

病毒名称:Lab13-02.exe

MD5: B65C4D7CBC4069DDBFF665370201E588

SHA1: 0184ACEB64037DCDADDE0A5975041304C92119A8

CRC32: 45409D1C

2.测试环境及工具

2.1 测试环境

Windows 7 32位操作系统

2.2 测试工具

查壳工具:PEID

监测工具:火绒剑、PCHunter

调试工具:OD、IDApro

3.行为分析

将病毒样本拖入火绒剑中,可以看到恶意程序在一定时间间隔内不停创建文件。

 

图3-1 恶意程序行为分析

在当前文件夹下查看,可以看到恶意程序在不停生成文件。

 

图3-2 恶意程序生成文件

4.恶意代码分析

4.1 病毒查壳

   使用PEID进行查壳,如图4-1病毒并没有加壳,是一个VC 6.0的程序

 

图4-1 病毒查壳

4.2 恶意程序的代码分析

将程序载入IDAPro中,找到main函数,如图4-2,主函数很简单,只调用了一个函数,在这里我将它命名为KeyFun。

 

图4-2 main函数

进入KeyFun函数,可以看到三个未命名函数(已经)和几个API函数,下面主要分析这三个函数。

 

图4-3 KeyFun函数

进入sub_401070函数,里面有相当多的API函数,查了一下,这些函数可能与屏幕截取有关。

 

图4-4 sub_401070函数

所以将sub_401070函数重命名为Screen,大概进入这三个函数,第二个函数是异或加密函数,第三个函数是创建并写入文件函数,将他们全部重命名,如图4-4

 

图4-5 主体函数重命名

根据KeyFun函数,分析GetTickCount在这里的作用,经过分析可以得知这两条语句的作用是利用GetTickCount获取操作系统启动经过的毫秒数拼接成文件名作为下个函数CreateAndWriteFile的参数。

 

图4-6 生成文件名

进入Encode函数,除了一个内存初始化函数还有如图4-6 sub_401739函数

 

图4-7 sub_401739函数

再进入sub_4012DD函数,同样是一大串的加密

 

图4-8 sub_4012DD函数

这里的异或加密算法很复杂,暂时不去分析,我们先去看一下CreateAndWriteFile函数。

 

图4-9 CreateAndWriteFile函数

这个函数很简单,创建文件并将缓冲区的内容写入到文件当中。

分析到这里,我们大概已经知道这个恶意程序的行为:

定时截取屏幕内容,将内容数据存入一个缓冲区,将缓冲区中的数据加密并写入文件之中。

根据猜想,生成的文件可能是图片格式,我们将生成的文件后缀改为png,由于文件已经加密无法打开。

 

图4-10 加密后图片

为了验证猜想,我在这里利用一个取巧的办法,程序有加密函数,那么我们便不让加密函数执行,直接在函数头返回。

 

图4-11 修改返回

这次,尝试运行程序,将新生成的文件后缀改为png,打开发现是一张屏幕截图,所以猜想验证成功。

 

图4-12 屏幕截图

至此,恶意代码分析完毕。



[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

上传的附件:
最新回复 (1)
Editor 2019-2-20 14:12
2
0
感谢分享!
游客
登录 | 注册 方可回帖
返回