【Linux内存分析工具】Volatility

  • A+
所属分类:安全工具

一|介绍

    Volatility是一个开源的Windows,Linux,Mac,Android的内存取证分析工具,由python编写成,命令行操作,支持各种操作系统。本次讨论主要基于Linux下Volatility的分析。

二|特点

    Volatility有丰富的插件命令,能够加载相应的配置文件profile 进行加载插件。需要特别说明的是,windows系统的profiles相当齐全,但linux下的profile就得自己制作了。

安装

1、kali便捷版

      2017版kali自带有volatility,在“应用程序”-“数字取证”中。只需装载kali,不用任何配置,就可以享受volatility

下载地址推荐:

https://pan.baidu.com/s/1mbzHoRBs44etfQtXXAXx0Q  提取码:jj70

【Linux内存分析工具】Volatility

2、自主安装版

       跟LiME一样,volatility作为开源工具,亦可以直接下载至Linux中解压使用。但在Linux中自主配置volatility时,需要考虑当前系统是否存在一些辅助包。

volatility安装包下载地址:

https://github.com/volatilityfoundation/volatility/archive/master.zip

安装步骤 :将volatility安装包下载及解压至Linux下,终端进入volatility解压路径执行命令:

       Python setup.py install

运行volatility:vol.py --info

                       或者Python ./vol.py --info

       在运行过程中若出现如下图错误,可能因系统缺少pycrypto,distorm这两个辅助包而无法加载相应插件导致的。

【Linux内存分析工具】Volatility

解决方法:

     下载pycrypto:

https://pypi.org/project/pycrypto/#files

     下载distorm:

https://pypi.org/project/distorm3/#files

     安装辅助包:分别进入pycrypto/distorm解压文件路径执行命令:Python setup.py install

     在安装辅助包时亦可能出现缺失Python的头文件和静态库包导致安装失败问题,这时便需要在系统上安装python-dev开发包,安装命令:apt-get install python-dev。由于系统环境不同,辅助包的安装也有可能出现许多不一样的错误且复杂无法解决,可以暂且忽视“缺少辅助包错误”亦直接使用volatility常用命令。

四|配置Profile

    在前面说过,Linux下的profile是需要自己制作的,其实,对应Linux镜像的Profile制作原理很简单,把内核system.map文件和 module.dwarf文件打包成的一个zip文件即可,具体如下:

1、找system.map文件:

       在/boot目录下找到system.map文件,一般格式为System.map-x.xx.x-x-amd64,如下图方框所示:

【Linux内存分析工具】Volatility

2、生成module.dwarf文件:

.进入“/usr/src/kernels”查看,确保安装必要的linux头文件

【Linux内存分析工具】Volatility

.进入“/lib/modules”路径下,创建build和source的软连接:

ln -s /usr/src/linux-headers-x.xx.x-x-amd64 build

ln -s /usr/src/linux-headers-x.xx.x-x-common source

【Linux内存分析工具】Volatility

.将/volatility/tools/linux目录设置为777权限

【Linux内存分析工具】Volatility

.在“/volatility/tools/linux”目录,执行make命令,即可得到module.dwarf

【Linux内存分析工具】Volatility

注意

补充

     在make命令之后,若出现“dwarfdump:未找到命令”错误,如下图:

【Linux内存分析工具】Volatility

则说明该环境缺少dwarfdump工具,需安装,否则无法写入module.dwarf,安装方法如下:

1

安装:yum install elfutils-devel

2

获取dwarfdump的源文件:

 wget http://www.prevanders.net/libdwarf-20140413.tar.gz

3

解压压缩包:tar -xz libdwarf-20140413.tar.gz

4

执行命令:#./configure

                  # Make

5

执行以上两条命令后,进入dwarfdump文件夹下执行命令:Make install

自此dwarfdump就安装好了。

3、压缩成ZIP文件:

       将上面得到的module.dwarf和system.map放在一起打包为ZIP文件,就是我们需要的profile文件。再将制作好的ZIP文件放置volatility/plugins/overlays/linux/目录下,通过volatility --info查看,就可以看到我们配置好profile文件了(volatility会以它识别方式重新命名配置文件)。

【Linux内存分析工具】Volatility
【Linux内存分析工具】Volatility

五|命令实例分析

使用volatility工具对Centos内存镜像分析:

volatility版本:volatility2.6.1

Centos版本:Centos 7

内存镜像大小及类型:使用Lime工具生成,格式为.Lime,大小为1G。

1、查看进程:

./vol.py -f /root/centos.lime --profile=Linuxcentos7_x64 linux_pslist

【Linux内存分析工具】Volatility

2、查看网络连接状态

./vol.py -f /root/centos.lime --profile=Linuxcentos7_x64 linux_netstat

【Linux内存分析工具】Volatility

3、从bash进程内存中恢复bash历史记录:

./vol.py -f /root/centos.lime --profile=Linuxcentos7_x64 linux_bash

【Linux内存分析工具】Volatility

4、恢复一个进程的动态环境变量:

./vol.py -f /root/centos.lime --profile=Linuxcentos7_x64 linux_bash_env

【Linux内存分析工具】Volatility

 5、打印ARP表:

vol.py -f /root/centos.lime --profile=Linuxcentos7_x64 linux_arp

【Linux内存分析工具】Volatility

6、列出每个进程的当前工作目录:

vol.py -f /root/centos.lime --profile=Linuxcentos7_x64 linux_getcwd

【Linux内存分析工具】Volatility

7、收集活动接口:

vol.py -f /root/centos.lime --profile=Linuxcentos7_x64 linux_ifconfig

【Linux内存分析工具】Volatility

8、恢复进程的动态环境变量:

vol.py -f /root/centos.lime --profile=Linuxcentos7_x64 linux_dynamic_env

【Linux内存分析工具】Volatility

      以上就是部分常用命令列举,剩下部分可以参照以下附表。

【Linux内存分析工具】Volatility
【Linux内存分析工具】Volatility
【Linux内存分析工具】Volatility
【Linux内存分析工具】Volatility

【Linux内存分析工具】Volatility

来源:广西南宁平衡信息技术有限公司,作者:Three-H


【Linux内存分析工具】Volatility

【Volatility】取证实战
【使用方法】取证工具Volatility-2.1
【Volatility Workbench】功能以及应用

本文始发于微信公众号(电子物证):【Linux内存分析工具】Volatility

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: