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
2-1-2.下载Volatility
Volatility的最新稳定版本将始终是GitHub存储库的稳定分支。您可以使用以下命令获取最新版本的代码:
git clone https://github.com/volatilityfoundation/volatility3.git
快速入门
从GitHub克隆最新版本的Volatility:
python3 vol.py -h
请参阅可用选项:
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内存映像中存在的进程