恶意样本分析流程记录

在拿到一个恶意样本的时候,怎样才能了解它的基本功能呢,本文在学习《恶意代码分析实战》后对恶意样本分析流程进行简单记录。

恶意样本分析有两类基本的方法,静态分析和动态分析,静态分析是在没有进行代码运行时对其进行分析,而动态分析则需要运行恶意代码。静态分析又包括静态分析基础技术和高级技术,动态分析也有动态分析基础技术和动态分析高级技术。静态分析基础技术包括检查可执行文件但不查看具体指令的一些技术,可以确定一个文件是否是恶意,提供其有关功能的一些信息;动态分析基础技术涉及运行恶意代码并观察系统上的行为以移除感染,产生有效的检测特征码;静态分析高级技术则是对恶意代码内部机制的逆向工程,通过将可执行文件装载到反汇编器中查看程序指令来发现恶意代码做了些什么;动态分析高级技术使用调试器来检查一个恶意可执行程序运行时刻的内部状态,提供了一条从可执行文件中抽取详细信息的路径。

静态分析基础技术

1. 反病毒引擎扫描

在拿到一个恶意样本时可以先使用多个反病毒软件扫描这个文件,但注意反病毒软件只是依靠现有的已知恶意代码可识别片段的特征数据库(病毒文件特征库),以及基于行为与模式匹配分析(启发式搜索)来识别可疑文件。因此对于一些罕见的或者新型病毒,这些反病毒引擎可能并不能扫描出来。同时对于不同的反病毒软件可能使用了不同的特征库和启发式检测方法,因此对于一个可疑恶意样本可以使用多个引擎进行扫描是非常有必要的。

类似于VirusTotal(https://www.virustotal.com)允许上传样本并调用多个反病毒引擎来进行扫描并生成一个报告,提供了所有引擎对这个样本的识别情况。

2. 查找字符串

使用strings程序可以查看可执行文件的可打印字符串。

使用strings软件的时候双击打开该程序会直接退出,要使用cmd命令行窗口来打开该程序并执行。
strings 恶意样本名称 即可查看该恶意样本所有字符串。

3.识别加壳与混淆恶意代码

通过加壳或混淆技术往往可以让文件更难被检测和分析。
加壳可以使用PEiD来进行检测,在加壳的情况下它通常还可以识别出使用的是哪个加壳器。
对于使用upx来加壳的恶意样本可以直接下载upx工具(https://upx.sourceforge.net/)来进行脱壳,使用以下命令

upx -d 恶意样本名称
或者:
upx -o newfilename -d originalfilename
这里的newfilename表示脱壳后文件的名称(自己设置一个就行),originalfilename表示需要脱壳的文件的名称。
upx是在cmd命令行窗口中执行的!!!

注意PEID插件会在没有警告的情况下运行恶意样本,因此必须确保使用PEiD前建立一个安全的执行环境。

4.链接库与函数

通过了解样本调用的函数可以简单推测出样本的功能,而使用Dependency Walker工具就可以看到可执行文件的动态链接库。

5. PE文件头

PE文件头比起仅仅关注导入函数,可以获得更多信息,PE文件格式包含一个文件头和一系列的分节,文件头中包含有关文件本身的元数据。可以使用PEview来分析PE头文件。
其中IMAGE_FILE_HEADER项中包含文件的基本信息如时间戳TimeDateStamp,但不一定准确。通过IMAGE_SECTION_HEADER中,Virtual Size表示加载这个分节到内存需要分配的空间,和size of Row Data相比较,如果差距太大很可能就存在加壳的情况。

6. 查看资源节

使用Resource Hacker可以查看样本的资源分节包括字符串,图标和菜单。

动态分析基础技术

1.建立安全环境如虚拟机!!!

在执行动态分析时最好在虚拟机中执行。

2.使用沙箱进行恶意样本分析

3.运行恶意代码

Windows中都包含rundll32.dll,它提供了一个对于无法运行代码的一个EXE或DLL的平台。

4. 进程监视器

进程监视器(Process Monitor)它提供一种方式来监控注册表,文件系统,网络,进程和线程的行为。同时它还可以进行过滤事件。也可以使用Process Explorer进程浏览器来查看进程。
在这里插入图片描述还可以使用Regshot来比较注册表快照。

5.模拟网络

使用ApateNDS查看恶意代码发出的DNS请求。
在这里插入图片描述

NetCat可以用于支持端口扫描,隧道,代理,端口转发等的对内对外连接上。在监听模式下NetCat作为一个服务器而在连接模式下则是作为一个客户端。使用WireShark进行截获和获取网络数据包。INetSim则可用于模拟常见网络服务,但只支持在Linux系统中使用。

剩下的高级的等我学到那再接着补充吧。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值