利用Volatility查找系统中的恶意DLL
昨天看到@白河·愁 发了《Linux下内存取证工具Volatility的使用》,今天恰好看到一篇Volatility利用的文章,文章不长,就翻译了过来。
原文地址:http://carnal0wnage.attackresearch.com/2014/02/finding-malicious-dlls-with-volatility.html
译文:
Colin和我最近正致力于研究一个内存镜像,需要找到由svchost.exe加载的所有DLL,选择使用大家熟知的内存分析工具 — Volatility。Volatility无法通过进程名查看加载的dll,而是通过指定进程的PID来将所有已加载的dll列出。但是,如果系统中有多个同名的进程(如svchost.exe),我们可以用以类似图1所示的命令进行查找:
不过这个方法在我们的使用过程中不怎么好用,因此决定研究一下Volatility的源码,对其做一些小的调整以使其适应我们的需求。经过研究,我们修改了能最终影响dlllist的模块taskmods.py。未修改之前,用-h选项查看dlllist插件的帮助信息,会列出其支持的所有选项,如offset、pid等,如图2所示:
而我们修改过的taskmods.py模块为其添加了一个新的选项,即通过进程名来添加一个进程或进程列表,如图3:
现在我们只需要简单地给出svchost.exe进程名,就可以得到由该进程加载的DLL文件列表。如果系统中运行着非标准svchost.exe进程,该命令同样会将其显示出来,命令如下:
vol.py -f 7re-912d4ad7.vmem --profileWin7SP1x64 dlllist -n svchost.exe
得到如下输出:
相信还有其它的方法可以达到相同的目的,但本文提到的这种方法在我们的研究过程中工作良好,因此将其共享出来,各位读者可以通过以下地址获取该模块:
https://github.com/AttackResearch/randmon/blob/master/volatility_plugins/taskmods.py
只需要在volatility 安装目录的插件目录$VOLATILITYHOME/volatility/plugins中用新的taskmods.py文件覆盖原来的文件,即可完成安装。
我们在Windows XP 与 Windows 7中测试了volatility2.2, 2.3, 2.3.1,均未发现问题,可以放心使用。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android利用zxing快速集成二维码扫描的实例教程
- Android中使用SharedPreferences完成记住账号密码的功能
- Android Intent封装的实例详解
- Android自定义Drawable实现圆角效果
- Android ApplicationInfo 应用程序信息的详解
- Android UI控件Switch的使用方法
- Android如何读写CSV文件方法示例
- Android 静默安装和卸载的方法
- Android自定义单例AlertDialog详解
- Android Build类的详解及简单实例
- Android使用CrashHandler来获取应用的crash信息的方法
- 数据魔术师小白零基础实现简单人脸识别
- Android编程实现XML解析与保存的三种方法详解
- 浅谈关于Android路由的实现
- Android中EditText禁止输入表情的实例代码