Volatility2.6内存取证工具安装及入门-1

简介: Volatility2.6内存取证工具安装及入门

1-1. Volatility2.6简介

Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。

那么针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。

当然,这款工具在安装的时候也是非常难受,一大堆报错会让你很崩溃,但是你搞定这些事后对你的取证赛题将会突飞猛进!

后续我也会更新解决各种疑难杂症报错的解决方案给大家。


2-1 Volatility2.6在Linux与Windows下的安装方法

2-1-1. Volatility2.6 Kali Linux下安装教程

Volatility2.6是基于Python2来实现的,而Volatility3的基于Python3来实现的,所以我们需要Python2的环境,推荐在kali下配置,因为kali自带Python2和Python3的环境,这样我们2.6和3的版本可以共存。

后续我也会写文章出Volatility3的安装和使用教程


该项目目前在Github上的开源项目地址以及官网:


https://github.com/volatilityfoundation/volatility

https://www.volatilityfoundation.org/releases

直接GitHub拉项目到Kali中或者通过官网下载对应版本并解压即可

到目录文件下 make install 或者 python2 setup.py install 进行安装

安装完成后执行 python2 volatility/vol.py -h 可以看到版本号即为安装成功

2-1-2. Volatility2.6 Windows下安装教程

在官网找到自己合适的版本下载即可,同时电脑要安装Python2的环境

cmd下运行volatility_2.6_win64_standalone.exe -h 即可

3-1. Volatility2.6的使用方法

3-1-1. 基础语法以及参数

-h:查看帮助

-f:指定镜像

imageinfo:获取当前内存镜像基本信息

–profile:指定镜像对应系统

相关命令后接参数:

-p:指定PID

-Q:指定内存地址

-D/–dump-dir:指定导出目录

-o:指定注册表的virtual地址

3-1-2. 常用命令以及语法

volatility -f 镜像 参数 命令
示例:volatility -f XXX.raw --profile=Win7SP1x64 pslist

常用命令

imageinfo    #查看镜像系统信息 使用对应版本的镜像,后面的参数使用–profile(两根横杠) --profile=Win7SP1x64

pslist    #看完镜像直接查看这个镜像上有那些进程正在运行 pslist应该比较好理解就是进程的列表的意思。
psxview   #可查看一些隐藏进程
pstree    #以树的形式来列出正在进行的进程,不会显示出隐藏或未链接的进程

cmdscan   #查看镜像的历史命令,就是和linux中history差不多。
consoles  #这个会比上面那个更好一些,能看到指令的输入和输出。
cmdline   #此指令将会列出所有命令行下运行的程序
cmdscan   #提取内存中保留的 cmd 命令使用情况
dlllist   #显示每个进程的加载dll列表
netscan   #获取到当时的网络连接情况
svcscan   #查看服务
modules   #查看内核驱动
modscan/driverscan     #可查看一些隐藏的内核驱动
ShimCache       #来识别应用程序兼容性问题。跟踪文件路径,大小,最后修改时间和最后“执行”时间.

privs   #显示进程权限
envars    #显示环境变量

filescan  #查找文件,可搭配 grep | "xxx"   /  filescan | grep -E “png”

memdump -p [PID] -D 保存目录      #通过相应的进程能直接dump出相关的文件。
dumpfiles -Q [16进制位置] -D 保存目录  #通过16进制位置dump出相关的文件。

editbox   #查看系统正在运行的编辑本
dumpregistry -D 保存目录  #导出系统的注册表
screenshot -D 保存目录    #查看并导出屏幕的截屏【需要安装PIL库】
clipboard       #查看剪贴板数据,加一个-v可以导出相关的数据。
iehistory       #查看浏览器的历史记录

printkey -K "SAM\Domains\Account\Users\Names" #查看用户名
printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"  #打印出最后登录的用户
hashdump        #获取各个账号的MD5加密密码
hivelist        #获取注册表单元配置列表
#找出获取system 的 virtual 地址,SAM 的 virtual 地址,然后在使用hashdump -y SYSTEM_virtual -x SAM_virtual.  (通过hivelist找出用户)

4-2. 常用命令以及语法

4-2-1. 查询内存镜像操作系统

python2 volatility-master/vol.py -f 1.vmem imageinfo

拿到镜像后例行识别操作系统,这边可以看到操作系统的相似度依次排序,越靠前说明越有可能是这个系统,(参考nmap -o参数的操作系统识别),后续所有指令前面都需要跟上 --profile=XXXX 参数来指定操作系统

4-2-2. 列出内存镜像运行的进程

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 pslist

#查看一些隐藏进程

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 psxview

#以树的形式来列出正在进行的进程,不会显示出隐藏或未链接的进程

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 pstree

#显示进程权限

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 privs

4-2-3. 提取内存中 cmd 命令使用情况

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 cmdscan

我这个镜像貌似没有就不演示了

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 consoles

这个会比上面那个更好一些,能看到指令的输入和输出

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 cmdline

此指令将会列出所有命令行下运行的程序

4-2-4. 显示每个进程的加载dll列表

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 dlllist

4-2-5. 获取到当时的网络连接情况

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 netscan

可以看到这边有个1.exe的网络通信状态是ESTABLISHED且IP归属为海外,可以初步判定为恶意程序(木马、挖矿程序等)


补充:

1、LISTENING状态

 服务启动后首先处于侦听(LISTENING)状态。


2、ESTABLISHED状态

 ESTABLISHED的意思是建立连接。表示两台机器正在通信。


4-2-6. 查看服务

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 svcscan

4-2-7. 查看内核驱动

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 modules

python2 volatility-master/vol.py -f 1.vmem --profile=Win7SP1x64 modscan/driverscan  #可查看一些隐藏的内核驱动


Volatility2.6内存取证工具安装及入门-2

https://developer.aliyun.com/article/1501455

相关文章
|
24天前
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
|
17天前
|
存储 安全 Java
SpringSecurity6从入门到实战之初始用户如何存储到内存
Spring Security 在 SpringBoot 应用中默认使用 `UserDetailsServiceAutoConfiguration` 类将用户信息存储到内存中。当classpath有`AuthenticationManager`、存在`ObjectPostProcessor`实例且无特定安全bean时,此配置生效。`inMemoryUserDetailsManager()`方法创建内存用户,通过`UserDetails`对象填充`InMemoryUserDetailsManager`的内部map。若要持久化到数据库,需自定义`UserDetailsService`接口实
|
15天前
|
C++
内存泄漏检查工具下载(vld)
内存泄漏检查工具下载(vld)
|
7天前
|
存储 监控 算法
掌握Java内存管理:从入门到精通
【6月更文挑战第29天】本篇文章将引导读者深入理解Java的内存管理机制。不同于传统的技术文章,我们将通过一个故事来展开讲解,让复杂的技术内容变得生动易懂。文章不仅会涵盖基础的内存分配和回收概念,还将探讨高级特性如JVM调优和内存泄漏检测工具的使用,帮助开发者有效提升应用程序的性能和稳定性。
|
2月前
|
JSON 数据管理 测试技术
自动化测试工具Selenium Grid的深度应用分析深入理解操作系统的内存管理
【5月更文挑战第28天】随着互联网技术的飞速发展,软件测试工作日益复杂化,传统的手工测试已无法满足快速迭代的需求。自动化测试工具Selenium Grid因其分布式执行特性而受到广泛关注。本文旨在深入剖析Selenium Grid的工作原理、配置方法及其在复杂测试场景中的应用优势,为测试工程师提供高效测试解决方案的参考。
|
2月前
|
安全 Linux Python
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility3内存取证工具安装及入门在Linux下的安装教程
|
2月前
|
Arthas Prometheus 监控
JVM工作原理与实战(二十九):监控内存泄漏的工具
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了解决内存溢出的步骤、Top命令、VisualVM、Arthas、Prometheus + Grafana等内容。
73 0
|
21天前
|
消息中间件 存储 Kafka
实时计算 Flink版产品使用问题之 从Kafka读取数据,并与两个仅在任务启动时读取一次的维度表进行内连接(inner join)时,如果没有匹配到的数据会被直接丢弃还是会被存储在内存中
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
13天前
|
存储 Java C++
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据,如局部变量和操作数;本地方法栈支持native方法;堆存放所有线程的对象实例,由垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息和常量;运行时常量池是方法区一部分,保存符号引用和常量;直接内存非JVM规范定义,手动管理,通过Buffer类使用。Java 8后,永久代被元空间取代,G1成为默认GC。
23 2
|
16天前
|
存储
数据在内存中的存储(2)
数据在内存中的存储(2)
25 5