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