赞
踩

静态分析基础技术(快速分析技术):检查可执行文件但不查看具体指令的一些技术。静态分析基础技术可以确认一个文件是否是恶意的,提供有关其功能的信息,有时还会提供一些信息让我们生成简单网络特征码。
动态分析基础技术:涉及运行恶意代码并观察系统上的行为,以移除感染,产生有效的检测特征码,或者两者。
静态分析高级技术:主要是对恶意代码内部机制的逆向工程,通过可执行文件装载到反汇编器中,查看程序指令来发现恶意代码做了什么。
动态分析高级技术:使用调试器来检查一个恶意可执行程序运行时刻的内部状态。
虚拟机!!!
我们在分析一个可疑的恶意代码样本时,第一步最好用多个反病毒软件对该样本进行扫描,看是否有引擎能识别它。
常用在线杀毒:VirSCAN、VIRSTOTAL
注意!在线杀毒适用于该恶意代码样本敏感度不高情况下使用。
哈希值又称恶意代码的指纹,恶意代码样本通过哈希程序会产生一段用于标识这个样本的独特哈希值。
在虚拟机中执行!
获取哈希值方法之一:MD5算法或者SHA-1算法
如:使用免费下载的md5deep程序计算windows操作系统自带solitaire程序哈希值
输入命令:md5deep solitaire程序路径
获取哈希值方法之二:用系统命令获取样本的md5
输入命令:certutil -hashfile 路径/file.exe MD5
注意!有时命令执行不了,可能是该虚拟机还没有此命令。
从字符串中搜索是获得程序功能提示的一种简单方法。
基本知识:
输入命令:strings程序路径 恶意代码路径
3.将得到结果右键-标记-从头拖到尾-回车-粘贴到新建文本里
4.对文本里的字符串进行分析哪些很有可能是恶意代码
如:名字很长的域名(正常域名一般都很短),数字串(可能是含恶意代码的ip地址),错误信息提示(可提供一些有用信息)!
攻击者常常使用加壳或混淆技术将恶意代码隐藏。
后续会更新详细加壳与脱壳技术
PEiD可以用来检测加壳器的类型或用来链接应用程序的编译器类型。
使用方法:直接将恶意代码样本拖进来即可
如:

紫色框里便是该恶意代码样本加壳使用的软件版本号,但也有可能是假冒的哟。
下载PE编辑器PEditor:查看恶意代码样本的区段和日期时间标志,点击日期时间标志计算器——复制该标志到下边的解码,可看见该样本建立时间,判断其是否正确。
下载PE编辑器PEditor:查看恶意代码样本的区段、目录里的导入表、导出表。
查看动态链接库里面的函数,分析该恶意代码可以会做的举动。
如:为了将程序以服务方式运行,即恶意代码会作为服务的一部分运行,必须定义ServiceMain函数。
注意!有时普通程序员在实现必要功能时可能也会这样起名哟,所以不一定这样判别是完全正确的。
1.用PEditor打开恶意代码样本——点击目录——点击资源的… ——点击BIN——点击右下角的十六进制编辑器查看,若里面是个PE文件即为可执行程序——之后我们点击BIN下的101——点击右下角保存。
2.再用PEditor打开保存的文件——点击日期时间标志计算器——复制该标志到下边的解码即可得到正确时间
3.点击目录——查看导入表的函数,判断其功能
可放到IDA程序再深入分析
虚拟机!!!
沙箱:一种在安全环境里运行不信任程序的安全机制,不用担心伤害到“真正“的系统。它包含一个虚拟环境,通过某种方式模拟网络服务,以确保被测试的软件或恶意代码能正常运行。
微步云沙箱
将恶意代码上传即可得到分析报告,可以下载恶意代码样本。
报告一般有分析摘要、文件活动、互斥量创建、注册表、网络行为和virustotal结构等。
ps:这部分内容之后可能会单独出详细学习笔记
恶意代码可以运行起来,我们的动态分析基础技术才有用哟。我们知道通常下运行一个恶意代码很简单只要双击或者命令行即可,但要运行一个恶意的dll很麻烦,因为windoes系统不知道如何自动执行它,接下来提供一个办法。
因为所有windows版本都含有rundll32.exe程序,他能给运行dll提供一个平台
输入命令:rundll32.exe 恶意代码样本路径, installA
install就像是启动dll的一个入口。
这样就可以用rundll32启动该恶意代码。
注意!还有其他命令也可以运行dll
进程监控器:windows系统的高级监视工具,提供一种方式来监控注册表、文件系统、网络、进程和线程行为。
进程监控器的可配置栏里有事件序列号、时间戳、引发事件的进程名、事件操作、事件使用的路径、事件结果等。

因为监控器里的事件很多,设置指定过滤可以更快速找到目标。
设置过滤器:选择filter——打开过滤菜单栏——通过左上角的下拉菜单栏Reset按钮上面选择一栏——选择一个比较器——选择在过滤器里是保留还是取消。
注意!排除procmon.exe和pagefile日志记录,因为它们经常被访问且没有提供有用信息。
这是微软的免费产品,一款强大的任务管理器,是进行动态分析的必备工具。它能让使用者了解看不到的在后台执行的处理程序,可以使用它方便地管理你的程序进程。 能监视,挂起,重启,强行终止任何程序,包括系统级别的不允许随便终止的关键进程和十分隐蔽的顽固木马。
软件运行界面:

鼠标左键点击上图箭头所指图标不放开,然后移动到要查看的窗口上,即可看到该窗口的详细进程信息。
进程浏览器监控系统上执行的程序以树状结构显示,可以看到:services.exe是wininit.exe的子程序:

用来识别进程替换的方法。
步骤:使用进程属性窗口的字符串( Strings )标签,通过比较包含在磁盘上可执行文件的学符串与内存中同一个可执行文件的字符串,来看两者是否同。用左下角的单选按钮在这两个字符串视图间切换。如果这两个学符串列表有很大不同,那么可能就发生了进程替换!
经过分析提取到特征码,打开wirshark并进入命令提示符输入运行dll命令及net start IPRIP命令启动服务,观察wirshark(记得暂停观察)里是否有可疑数据包
这是我学习《恶意代码分析实战》的笔记,这本书很多干货,喜欢分析代码的推荐大家去看哟~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。