目录
简介
Volatility3是对Volatility2的重写,它基于Python3编写,对Windows 10的内存取证很友好,且速度比Volatility2快很多。对于用户而言,新功能的重点包括:大幅提升性能,消除了对--profile的依赖,以便框架确定需要哪个符号表(配置文件)来匹配内存示例中的操作系统版本,在64位系统(例如Window的wow64)上正确评估32位代码,自动评估内存中的代码,以避免对分析人员进行尽可能多的手动逆向工程。对于开发人员:更加轻松地集成到用户的第三方接口和库中,广泛的API文档,插件可以直接调用其他插件的能力,插件版本控,直接集成自定义符号表和数据结构。
使用要求
- Python 3.5.3或更高版本。
- Pefile 2017.8.1或更高版本
可选依赖项
- yara-python 3.8.0或更高版本。
- capstone 3.0.0或更高版本
符号表
用于分析相关操作系统数据的内核符号表压缩包。注意:由于Linux内核易于编译且无法唯一区分它们,因此无法轻松提供详尽的Linux符号表集。官方下载地址:
- https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip
- https://downloads.volatilityfoundation.org/volatility3/symbols/mac.zip
- https://downloads.volatilityfoundation.org/volatility3/symbols/linux.zip
安装
Volatility3目前处于测试阶段,在Kali Linux中无法直接通过apt进行安装,因此需要通过源码进行安装。使用git clone https://github.com/volatilityfoundation/volatility3.git将项目克隆到本地,然后下载符号表,解压之后移动到volatility/symbols目录中即可。如图:
基本用法
Volatility3和Volatility2用法差不多,但不需要指定profile。只是插件调用方式改变,特定的操作系统有特定的插件。
python3 vol.py [plugin] -f [image]
常用插件:
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内存映像中存在的进程
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内存映像中存在的链接
实例
查看内存镜像是什么平台,如图:
查看OS和内核详细信息,如图:
查看进程列表,如图:
转储进程explorer.exe,对应PID为3492,如图:
查看系统中的文件,如图:
查看注册表配置单元,如图:
查看注册表单元下的注册表项,如图:
扫描windows服务,如图: