【愚公系列】2022年06月 内存取证工具的使用

举报
愚公搬代码 发表于 2022/06/30 21:28:15 2022/06/30
【摘要】 内存取证工具的使用Volatility 是一款基于 GNU 协议的开源框架,使用 Python 语言编写而成的内存取证工具集,可以分析内存中的各种数据。Volatility 支持对 32 位或 64 位 Wnidows、Linux、Mac、Android 操作系统的内存数据进行提取与分析。1、Volatility取证流程1)、安装软件从github上下载即可:https://github....

内存取证工具的使用

Volatility 是一款基于 GNU 协议的开源框架,使用 Python 语言编写而成的内存取证工具集,可以分析内存中的各种数据。Volatility 支持对 32 位或 64 位 Wnidows、Linux、Mac、Android 操作系统的内存数据进行提取与分析。

1、Volatility取证流程

1)、安装软件

从github上下载即可:
https://github.com/volatilityfoundation/volatility.git
vol.py 是主程序

2)、创建用户配置文件

Volatility需要从用户配置文件中读取内核的相关信息,通过这些信息来定位内存中的关键信息并对其进行解析。因此我们需要获取用户配置文件,且这些配置文件需与你要分析的内核版本相匹配,其中包含了内核数据结构以及调试符号。Volatility 自带一些 windows 系统的 profile,Linux 系统的 Profile 需要自己制作,制作的方法如下:实际是将 module.dwarf 和 system.map 打包成一个 zip 文件,接着将 zip 文件移动到 volatility/plugins/overlays/linux/ 目录中。

也可以在 https://github.com/KDPryor/LinuxVolProfiles 处直接下载已经做好的 profile 文件(zip 文件)然后复制到目录后解压缩即可。

3)、获取内存镜像

Volatility并不会抓取内存,这里使用lime(Linux Mem Extractor)抓取内存,当然它也支持安卓系统内存抓取。

内存抓取工具Lime(用法)https://github.com/504ensicsLabs/LiME.git
本实验所用内存镜像文件 /root/centos7.lime

在这里插入图片描述
2、Volatility基本使用命令

./vol.py ‐f [image] ­‐profile=[profile] [plugin]

-f后面需要跟绝对路径

查看扫描检查、插件、地址空间等信息

./vol.py --info

查看帮助信息

./vol.py -h/–help

查看指定插件的说明

./vol.py [plugin] –help

查找插件:

不带前缀的是windows的插件,带linux前缀的是linux的插件

vol.py --info | grep -i linux_ (列出所有linux插件)
在这里插入图片描述
从扩展目录加载插件

./vol.py --plugins=[path][plugin]

检查结果输出

./vol.py --output-file=[file]

查看profile文件:
在这里插入图片描述
Linuxcentos7x64 是我们需要用到的profile文件

3、内存取证的实例

1)、查看系统ARP表:

  vol.py -f /root/centos7.lime --profile=Linuxcentos7x64 linux_arp

在这里插入图片描述
2)、查看系统信息:

  vol.py -f /root/centos7.lime --profile=Linuxcentos7x64 linux_banner

在这里插入图片描述
3)、检查系统进程信息:

  vol.py -f /root/centos7.lime --profile=Linuxcentos7x64 linux_psaux

在这里插入图片描述
使用linux_pidhashtable 可以查看系统隐藏进程:
在这里插入图片描述
4)、查看某具体进程的情况

检查某具体进程的情况可以使用 linux_proc_maps 子命令

vol.py -f /root/centos7.lime --profile=Linuxcentos7x64 linux_proc_maps | grep httpd

在这里插入图片描述
5)、查看网络链接情况

  vol.py -f /root/centos7.lime --profile=Linuxcentos7x64 linux_netstat

在这里插入图片描述
还有很多用法,就不一 一 举例说明了。

获取系统进程信息相关命令:

linux_pstree:进程树列表

linux_pslist_cache:来自的 kmem_cache 活动进程

linux_psxview:比较进程列表

linux_lsof :打开文件描述符的每个活动进程

linux_pslist :活动的进程列表

linux_psaux:活动的进程列表(输出内容包括更多的细节)

获取系统内存信息的相关命令:

linux_memmap:内存映射文件

linux_pidhashtable: Linux 内核中的 PID 散列表

linux_proc_maps::转储由-s/–vma 参数到磁盘上指定的内存范围。

linux_dump_map:进程内存的详细信息,包括堆和共享库。

linux_bash :bash 历史文件

获取网络接口信息的相关命令:

linux_arp:显示 arp 列表

linux_ifconfig:显示网络接口详细情况

linux_route_cache:显示网络路由表

linux_netstat:查看网络链接情况

获取系统硬件信息的相关命令:

linux_cpuinfo :显示 cpu 的相关命令信息。

linux_dmesg :显示内核缓存信息。

linux_iomem :显示 io 设备信息。

linux_mount :显示/proc/mouns 的相关命令信息,主要是挂载的磁盘设备。

linux_mount_cache :显示 kmem_cache 的相关命令信息。

linux_slabinfo :显示/proc/slabinfo 的相关命令信息。

rootkit 检测的相关命令:

linux_check_afinfo:检查篡改网络协议结构。

linux_check_creds:检查进程共享结构。

linux_check_fop:检查文件操作数据结构篡改情况。

linux_check_idt:检查中断描述符表(IDT)的篡改情况。

linux_check_syscall:在系统调用表检查功能情况。

linux_check_modules:检查用于从内核模块列表中缺少在 sysfs 中的项目。

获取内核模块信息的相关命令:

linux_lsmod:加载内核模块。

linux_tmpfs::tmpfs 的内容。

详细使用方法可以看在官方网站包含 Linux 的相关命令参考:

参考资料:GitHub - volatilityfoundation/volatility: An advanced memory forensics framework

https://github.com/volatilityfoundation/volatility

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。