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

相关文章

NameNode内存生产配置

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

JVM内存调优原则及几种JVM内存调优方法

JVM内存调优原则及几种JVM内存调优方法 1、堆大小设置。 2、回收器选择。   1、在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。   2、对JVM内存的系统级的调优主要的目的是减少

JVM 常见异常及内存诊断

栈内存溢出 栈内存大小设置:-Xss size 默认除了window以外的所有操作系统默认情况大小为 1MB,window 的默认大小依赖于虚拟机内存。 栈帧过多导致栈内存溢出 下述示例代码,由于递归深度没有限制且没有设置出口,每次方法的调用都会产生一个栈帧导致了创建的栈帧过多,而导致内存溢出(StackOverflowError)。 示例代码: 运行结果: 栈帧过大导致栈内存

理解java虚拟机内存收集

学习《深入理解Java虚拟机》时个人的理解笔记 1、为什么要去了解垃圾收集和内存回收技术? 当需要排查各种内存溢出、内存泄漏问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就必须对这些“自动化”的技术实施必要的监控和调节。 2、“哲学三问”内存收集 what?when?how? 那些内存需要回收?什么时候回收?如何回收? 这是一个整体的问题,确定了什么状态的内存可以

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

string字符会调用new分配堆内存吗

gcc的string默认大小是32个字节,字符串小于等于15直接保存在栈上,超过之后才会使用new分配。

PHP内存泄漏问题解析

内存泄漏 内存泄漏指的是在程序运行过程中申请了内存,但是在使用完成后没有及时释放的现象, 对于普通运行时间较短的程序来说可能问题不会那么明显,但是对于长时间运行的程序, 比如Web服务器,后台进程等就比较明显了,随着系统运行占用的内存会持续上升, 可能会因为占用内存过高而崩溃,或被系统杀掉 PHP的内存泄漏 PHP属于高级语言,语言级别并没有内存的概念,在使用过程中完全不需要主动申请或释放内

C++学习笔记----6、内存管理(四)---- 通常的内存陷阱(2)

3、Windows环境下使用Visual C++发现并修复内存渗露         内存渗露很难跟踪是因为你无法很容易地看着内存并且看到什么对象处于使用中,一开始在哪儿分配的内存。然而,是有程序可以为你做到这一点的。内存渗露检测工具有昂贵的专业软件包,也有免费下载的工具。如果你是在Microsoft Visual C++环境下工作,它的排错工具库有内建的对于内存渗露检测的支持。该内存检测默认没有

控制台和MFC中内存泄露工具vld的使用

最近想检测下项目中内存泄露的情况,选中了vld这款。在查找使用方法的时候,大都是控制台下的示例,添加到main函数所在的源文件上。换成MFC就纠结了,不知道添加到哪里去。本文记录控制台和MFC中的使用vld过程。    vld资源:    1)、大家可以移步下边的网址下载:     http://vld.codeplex.com/releases/view/82311    2