Volatility3内存取证工具安装及入门在Linux下的安装教程

简介: Volatility3内存取证工具安装及入门在Linux下的安装教程

1-1. Volatility3简介

Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。

针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。

以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。


Volatility3和Volatility2用法差不多,但不需要指定profile。只是插件调用方式改变,特定的操作系统有特定的插件。


2-1 Volatility3在Linux下的安装方法

2-1-1. Volatility3 Kali Linux下安装教程

极安云科专注技能竞赛,包含网络建设与运维和信息安全管理与评估两大赛项,及各大CTF,基于两大赛项提供全面的系统性培训,拥有完整的培训体系。团队拥有国赛选手、大厂在职专家等专业人才担任讲师,培训效果显著,通过培训帮助各大院校备赛学生取得各省 国家级奖项,获各大院校一致好评。


Volatility2.6是基于Python2来实现的,而Volatility3的基于Python3来实现的,所以我们需要Python3的环境,推荐在kali下配置,因为kali自带Python2和Python3的环境。


该项目目前在Github上的开源项目地址以及官网:

https://github.com/volatilityfoundation/volatility3

https://www.volatilityfoundation.org/releases-vol3


Volatility 3需要Python 3.7.0或更高版本。要安装最少量的依赖项集(某些插件无法工作),请使用以下命令:

pip3 install -r requirements-minimal.txt

或者,当使用setup.py安装Volatility 3时,将自动安装最低限度的软件包。但是,如下面的“快速入门”部分所述,在使用Volatility3之前,不需要通过setup.py安装它。


解释:当使用setup.py安装Volatility 3时,相当于最小化安装,很多插件不装,而需要全量安装的话需要使用pip来进行所有插件的安装

python3 setup.py build 
python3 setup.py install

要启用Volatility 3的全部功能,请使用下面这样的命令。对于部分功能,请在运行命令之前,在requirements.txt中注释掉任何不必要的包。

pip3 install -r requirements.txt

96cf80e92d24a984794a587982396368_291ae8cd37d84a0fbc8e219bcfb8e890.png

2-1-2.下载Volatility

Volatility的最新稳定版本将始终是GitHub存储库的稳定分支。您可以使用以下命令获取最新版本的代码:

git clone https://github.com/volatilityfoundation/volatility3.git

快速入门

从GitHub克隆最新版本的Volatility:

git clone https://github.com/volatilityfoundation/volatility3.git

请参阅可用选项:

python3 vol.py -h

要获得有关Windows内存示例的更多信息并确保Volatility支持该示例类型,请运行

python3 vol.py -f <imagepath> Windows.info

示例:

python3 vol.py -f /home/user/samples/stuxnet.vem windows.info

运行一些其他插件。-f或–single位置不是严格要求的,但大多数插件都需要一个样本。有些人还要求/接受其他选择。

运行python3 vol.py <plugin> -h以获取有关特定命令的更多信息。

3-1. 常用命令以及语法

python3 vol.py -f [image] [plugin]

常用插件:
    windows.info:显示正在分析的内存样本的OS和内核详细信息
    windows.callbacks:列出内核回调和通知例程
    windows.cmdline:列出进程命令行参数
    windows.dlldump:将进程内存范围DLL转储
    windows.dlllist:列出Windows内存映像中已加载的dll模块
    windows.driverirp:在Windows内存映像中列出驱动程序的IRP
    windows.driverscan:扫描Windows内存映像中存在的驱动程序
    windows.filescan:扫描Windows内存映像中存在的文件对象
    windows.handles:列出进程打开的句柄
    windows.malfind:列出可能包含注入代码的进程内存范围
    windows.moddump:转储内核模块
    windows.modscan:扫描Windows内存映像中存在的模块
    windows.mutantscan:扫描Windows内存映像中存在的互斥锁
    windows.pslist:列出Windows内存映像中存在的进程
    windows.psscan:扫描Windows内存映像中存在的进程
    windows.pstree:列出进程树
    windows.procdump:转储处理可执行映像
    windows.registry.certificates:列出注册表中存储的证书
    windows.registry.hivelist:列出内存映像中存在的注册表配置单元
    windows.registry.hivescan:扫描Windows内存映像中存在的注册表配置单元
    windows.registry.printkey:在配置单元或特定键值下列出注册表项
    windows.registry.userassist:打印用户助手注册表项和信息
    windows.ssdt:列出系统调用表
    windows.strings:读取字符串命令的输出,并指示每个字符串属于哪个进程
    windows.svcscan:扫描Windows服务
    windows.symlinkscan:扫描Windows内存映像中存在的链接
    layerwriter:列出内存镜像platform信息
    linux.bash:从内存中恢复bash命令历史记录
    linux.check_afinfo:验证网络协议的操作功能指针
    linux.check_syscall:检查系统调用表中的挂钩
    linux.elfs:列出所有进程的所有内存映射ELF文件
    linux.lsmod:列出加载的内核模块
    linux.lsof:列出所有进程的所有内存映射
    linux.malfind:列出可能包含注入代码的进程内存范围
    linux.proc:列出所有进程的所有内存映射
    linux.pslist:列出linux内存映像中存在的进程
    linux.pstree:列出进程树
    mac.bash:从内存中恢复bash命令历史记录
    mac.check_syscall:检查系统调用表中的挂钩
    mac.check_sysctl:检查sysctl处理程序的挂钩
    mac.check_trap_table:检查trap表中的挂钩
    mac.ifconfig:列出网卡信息
    mac.lsmod:列出加载的内核模块
    mac.lsof:列出所有进程的所有内存映射
    mac.malfind:列出可能包含注入代码的进程内存范围
    mac.netstat:列出所有进程的所有网络连接
    mac.psaux:恢复程序命令行参数
    mac.pslist:列出linux内存映像中存在的进程
    mac.pstree:列出进程树
    mac.tasks:列出Mac内存映像中存在的进程
  
相关文章
|
18天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
38 4
SpringBoot入门(4) - 添加内存数据库H2
|
20天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
28 2
SpringBoot入门(4) - 添加内存数据库H2
|
6天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
14 5
|
12天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
52 13
|
7天前
|
Java 数据库连接 测试技术
SpringBoot入门(4) - 添加内存数据库H2
SpringBoot入门(4) - 添加内存数据库H2
22 4
|
9天前
|
算法 Linux 开发者
深入探究Linux内核中的内存管理机制
本文旨在对Linux操作系统的内存管理机制进行深入分析,探讨其如何通过高效的内存分配和回收策略来优化系统性能。文章将详细介绍Linux内核中内存管理的关键技术点,包括物理内存与虚拟内存的映射、页面置换算法、以及内存碎片的处理方法等。通过对这些技术点的解析,本文旨在为读者提供一个清晰的Linux内存管理框架,帮助理解其在现代计算环境中的重要性和应用。
|
15天前
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
112 9
|
11天前
|
Unix Linux Shell
linux入门!
本文档介绍了Linux系统入门的基础知识,包括操作系统概述、CentOS系统的安装与远程连接、文件操作、目录结构、用户和用户组管理、权限管理、Shell基础、输入输出、压缩打包、文件传输、软件安装、文件查找、进程管理、定时任务和服务管理等内容。重点讲解了常见的命令和操作技巧,帮助初学者快速掌握Linux系统的基本使用方法。
46 3
|
15天前
|
存储 缓存 监控
|
18天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
45 2