Volatility 介绍:
Volatility是一款开源的内存取证分析工具,是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证方式。该工具是由python开发的,目前支持python2、python3环境;这里就介绍volatility3的使用。
## Volatility 安装:
github项目地址:https://github.com/volatilityfoundation
官方地址:https://www.volatilityfoundation.org/26
git clone https://github.com/volatilityfoundation/volatility3.git
python3 setup.py install
## Volatility 基本用法:
python3 vol.py -h
具体可以参考:https://volatility3.readthedocs.io/en/latest/ 帮助文档
命令格式: volatility -f [image] --profile=[profile] [plugin]
这里需要注意 :Volatility3
和Volatility2
用法差不多,但不需要指定profile
,只是插件调用方式改变,特定的操作系统有特定的插件
而且可以发现支持很多格式 而且插件也很多 volatility2
的话 kali2.0
自带 这里我先不写啦
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内存映像中存在的链接
实操案例:
1.系统基本信息(windows.info)
SystemTime
可以看出镜像制作的时间2022-6-10
NTBuildLab
可以看出来是server2003
Windows
操作系统
2. 进程列表(windows.pstree)
3. 进程命令行参数(windows.cmdline.CmdLine)
4. 服务运行状态(windows.svcscan)
5. 进程环境变量(windows.envars)
6. 动态库列表(windows.dlllist)
7. 扫描进程(windows.psscan)
8. 注册表数据(windows.registry.hivelist)
9.列出缓冲池(windows.bigpools)
10.列出转存文件(windows.dumpfiles)
11.扫描文件(windows.filescan)
总结
**因为这个是windows
的镜像 所以都是windows
命令 大家可以使用Linux
插件进行尝试
个人的感觉 还是觉得Volatility2
比较方便好用 看个人爱好,最后感谢大家的支持!!**
这里出了一期Volatility2
的使用方法:https://blog.csdn.net/Aluxian_/article/details/128194996?spm=1001.2014.3001.5501