恶意代码分析实战Lab03——2.dll、3.exe

第一步:查看基本信息:
在这里插入图片描述
第二步:该程序是DLL,看导出函数:
在这里插入图片描述
可以看出,该程序的导出函数有很大的参考意义,基本上已经告诉我们每个导出函数的作用,接下来通过IDA进行详细的分析
第三步:详细分析
在进行详细分析之前,可以通过IDA来查看一下字符串的信息,这样也可以大致上先把握一下这个程序的大致功能,分析DLL的中带你是对于导出函数的分析,但是main函数也还是要关注的,DLL的入口函数是Dllmain:
在这里插入图片描述
可以看到main函数其实并没有什么实际性的功能函数,所以接下来我们将重心放在各个导出函数上边,可以看到installA和unistallA这两个函数的功能其实和前边的Install、UnistallService这两个函数的功能一样,所以主要的任务就是Install、UnistallService、ServiceMain这三个函数的分析:
其实从函数的名字我们不难看出来这三个函数的功能分别是:安装、卸载目标服务以及目标服务的功能设置
所以我们先对目标服务的设置进行分析:
在这里插入图片描述
其实相对于之前的案例来说,这个2.dll分析起来相对比较简单,所以,我们的主要内容不是分析这个dll,我们的主要内容是了解,怎么运行DLL,比如说,我们知道这个DLL程序的主要目的是安装一个程序,我们怎么让它执行安装服务这个程序块?安装服务之后,怎么才能让它执行这个服务的具体功能?我们怎么在动态分析中找到这个程序的恶意行为?

先回答第一个问题:怎么安装这个服务?
首先,我们要知道,安装服务这个程序段是在这个目标DLL的导出函数里边来完成的;其次我们要知道,DLL的本质是什么(在之前的博客里边有介绍)。最后,我们可以用Windows自带的rundll32.exe来执行DLL的导出函数,所以我们可以用rundll32.exe程序来执行DLL安装服务的代码段,指令如下:

rundll32.exe 2.dll , installA
//或者
rundll32.exe 2.dll ,  Install 

通过rundll32.exe可以将恶意程序安装为一个服务,那么第二个问题来了,怎么启动这个服务?
首先我们要知道,这个服务的名称是什么?才能启动它,在之前的静态分析中,从字符串里边也可以找出安装之后的服务的名称是IPRIP,所以要想执行这个恶意的服务程序,可以使用以下指令:

net start IPRIP

至于在动态调试中,进行恶意行为的抓取,还是可以通过ProcessExplorer和Process Monitor这两个工具进行查看,在ProcessExplorer里边搜索目标DLL名字,找到之后,在ProcessMonitor里边设置过滤器,查看恶意行为。

Lab03——03.exe

查看基本信息:
在这里插入图片描述
查看资源信息:
在这里插入图片描述
资源数据存在,但是没有什么明显特征,接下来详细分析:
详细分析
定位main函数:
在这里插入图片描述
在这里插入图片描述
寻找资源数据
在这里插入图片描述
加载资源数据
在这里插入图片描述
获取资源数据的大小:
在这里插入图片描述
申请内存空间,大小等于资源数据的大小,属性设置为读和写
在这里插入图片描述
将资源数据复制到刚才申请的空间里边,检查资源数据头是不是MZ头
在这里插入图片描述
如果不是,执行下边的函数:
在这里插入图片描述
这个函数的主要功能就是构造,目标PE文件:目标PE文件大小 0x6000个字节
在这里插入图片描述
接下来的操作就是针对,构造出来的PE文件进行的
判断MZ头和PE头:
在这里插入图片描述
创建新进程:
在这里插入图片描述
申请0x2cc大小的空间:
在这里插入图片描述
读取进程内存
在这里插入图片描述
获取函数地址
在这里插入图片描述
申请0x28个字节的空间
在这里插入图片描述
把构造出来的PE文件的前0x28个字节写入到刚才申请的空间里边
在这里插入图片描述
每次写入一个节区的数据,直到写完
在这里插入图片描述
对上边的过程做一个总结:根据以上的分析,可以知道,这个过程其实是一个程序替换的过程,在创建新进程的时候,以挂起的方式创建,之后不断地用构造出来的PE文件填充到目标进程中,当填充完毕之后再把进程回复,指着就达到了,替换进程,从而让正常的程序来执行恶意代码的目的:
替换之后的文件与构造出来的PE文件进行对比:
在这里插入图片描述

总结:

由于代码相对比较简单,而且过程也比较清晰,所以可能分析上边只是对大概过程进行了一个分析,细节部分分析的并不是很到位,但是通过这次的分析过程有以下几点需要把握:
1、关注一个PE文件的资源数据,如果有的话
2、对敏感字符或者敏感字符的ASCII的把握 很重要
3、通过上边的分析,也掌握了一种免杀技术,资源数据的加密,以及进程替换
4、大多数恶意程序,在运行之后,都会通过注入其他主要进程或者替换其他进程的方式来提升自己的存活时间,在动态抓取行为的时候,不能只关注进程树的恶意行为,还要将目光转移到可疑进程上边来
5、对于PE结构的了解有利于分析,尤其此次的进程替换采用的方式就是一个节区一个节区的替换来进行的
(一个节区表的大小0x28个字节,也就是40个字节)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值