第3章-动态分析基础技术

3.1 沙箱:简便但粗糙的方法

沙箱是一种在安全环境里运行不信任程序的安全机制。

3.1.1 使用恶意代码沙箱:Norman沙箱、GFI沙箱(沙箱网站/沙箱工具)

3.1.2 沙箱的缺点:

1.不能运行带有特定恶意(命令行或注册表)的程序

2.沙箱记录事件的缺陷性

3.恶意代码对沙箱的检测

3.2 运行恶意代码

DLL文件执行:rundll32.exe DLLname, Export argumrnts

恶意的DLL文件通常在DLLMain(DLL函数入口点)执行它们的代码,DLLMain函数总会被加载,可以通过rundll32.exe 加载DLL。或者通过修改PE头部,并改变它的扩展名,使得Windows以一种可执行文件的方式来加载DLL。Tips:IMAGE_FILE_HEADER擦除IMAGE_FILE_DLL标记/DLL被安装成服务的情况需要启动服务加载DLL。

3.3 进程监视器

进程监视器(Process Monitor/Procmon): Windwos系统下的高级监视工具,提供了一种方式来监控注册表、文件系统、网络、进程和线程行为。增强了两种工具的功能:文件监控器FileMon和注册表监控器RegMon。

3.3.1 进程监视器的显示

3.3.2 进程监视器中的过滤

3.4 使用进程浏览器(Process Explorer)来查看进程

进程浏览器(Process Explorer)是微软的免费产品,它是一款非常强大的任务管理器,进行动态分析时的必备工具。它可以列出活跃的进程、被进程载入的DLL、各种进程属性和整体系统信息,也能用来杀死一个进程、退出用户登录、启动与激活进程。

3.4.1 进程浏览器的显示

Porcess(进程名)、PID(进程号)、CPU(cpu使用率)、Description(进程描述)、Company Name(软件公司名)

默认情况:服务以粉色高亮显示、进程为蓝色、新进程为绿色、被终止进程为红色。

单击进程:查看载入到内存里的DLL文件

双击进程:查看属性窗口

3.4.2 使用验证选项

Verify:验证磁盘上(不是内存中)的镜像文件是否有微软签名认证。

3.4.3 比较字符串(识别进程替换)

3.4.4 使用依赖遍历器(Dependency Walker)

新版工具无该功能,但目的是为判断是否加载恶意的DLL文件。

3.4.5 分析恶意文档

开启进程浏览器,然后打开文档。若文档开启了新进程,可通过进程属性窗口Image标签定位恶意代码的位置。

3.5 使用Regshot比较注册表快照

3.6 模拟网络

恶意代码经常会连接到命令与控制服务器,所有使用模拟网络可以进一步判断恶意代码行为。

3.6.1 使用ApateDNS

3.6.2 使用Netcat进行监视

3.7 使用Wireshark进行数据包监听

3.8 使用INetSim

3.9 基础动态分析工具实践

DNS重定向解析成功:

INetSim:日志记录

posted @ 2017-09-30 01:24  The0ne01  阅读(572)  评论(0编辑  收藏  举报