volatility内存取证

2024-04-21 18:12
文章标签 内存 取证 volatility

本文主要是介绍volatility内存取证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

记录一道volatility内存取证的题目,第一次遇到,现场把环境搞出来,现记录一些操作指令。

一、安装volatility3

1、新建一个kali虚拟机

新建的过程不再赘述。

2、下载volatility3

GitHub - volatilityfoundation/volatility3: Volatility 3.0 development

可以使用Git下载

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

也可以点击https://codeload.github.com/volatilityfoundation/volatility3/zip/refs/heads/develop下载后拷贝至虚拟机中。

3、安装依赖环境

cd到volatility3文件夹中

安装依赖环境,考虑加上

-i https://pypi.tuna.tsinghua.edu.cn/simple换为国内源增加下载速度
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

4、安装volatility3

python3 setup.py build 
sudo python3 setup.py install

5、测试

测试是否已安装成功

python3 vol.py -h

二、volatility3使用

1、查看系统基本信息

第一次要加sudo,会去下载一些文件,比较久,后面再次执行就不用sudo了,也不会很久

sudo python3 vol.py -f /home/kali/WIN-xxx.raw windows.info

2、常用的命令

可以查看操作文档Creating New Symbol Tables — Volatility 3 2.7.0 documentation

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内存映像中列出驱动程序的IRPwindows.driverscan:扫描Windows内存映像中存在的驱动程序windows.envars:进程环境变量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内存映像中存在的链接

 3、查看进程命令行参数

具体一些可疑进程的参数指令

python3 vol.py -f /home/kali/WIN-xxx.raw cmdline

4、查看密码

密码为md5加密过的

python3 vol.py -f /home/kali/WIN-xxx.raw windows.hashdump

5、netscan

python3 vol.py -f /home/kali/WIN-xxx.raw windows.netscan

三、volatility2安装

发现volatility3不太好用,试试把volatility2弄出来

1、安装pip2和依赖环境

# 检查python2
python2 --version
# 下载pip2
curl  https://bootstrap.pypa.io/pip/2.7/get-pip.py  -o get-pip.py
# 安装pip2
sudo python2 get-pip.py
# 检查pip2安装情况
pip2
# 安装依赖环境pycryptodome 
pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple

2、安装distorm3

git clone https://github.com/vext01/distorm3.git
cd distorm3
sudo python2 setup.py install

3、安装volatility2

退出distorm3文件夹,下载volatility2

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

若无法git,则访问GitHub - volatilityfoundation/volatility: An advanced memory forensics framework

下载zip包后 unzip volatility-master.zip

cd volatility-master
sudo python2 setup.py install

安装完成。测试:

四、volatility2使用

volatility2的使用网络上已有很多教程,不再赘述。

这篇关于volatility内存取证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/923737

相关文章

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

Java循环创建对象内存溢出的解决方法

《Java循环创建对象内存溢出的解决方法》在Java中,如果在循环中不当地创建大量对象而不及时释放内存,很容易导致内存溢出(OutOfMemoryError),所以本文给大家介绍了Java循环创建对象... 目录问题1. 解决方案2. 示例代码2.1 原始版本(可能导致内存溢出)2.2 修改后的版本问题在

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

关于Java内存访问重排序的研究

《关于Java内存访问重排序的研究》文章主要介绍了重排序现象及其在多线程编程中的影响,包括内存可见性问题和Java内存模型中对重排序的规则... 目录什么是重排序重排序图解重排序实验as-if-serial语义内存访问重排序与内存可见性内存访问重排序与Java内存模型重排序示意表内存屏障内存屏障示意表Int

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam