内存取证之volatility及案例演示

简介

Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。

  • 取证文件后缀 .raw、.vmem、.img
  • 常用命令(imageinfo,pslist,dumpfiles,memdump)
  • 可疑的进程(notepad,cmd)
  • 和磁盘取证结合起来考察
  • 了解部分操作系统原理
  • 常见文件后缀dmg,img

若没有不会安装可以查看这篇文章
内存取证-Volatility安装使用以及一些CTF比赛题目

volatility基础命令

输入vol.py --help可查看帮助。可以使用 -h 参数获取使用方法和插件介绍,列举几个常用到的命令

imageinfo:显示目标镜像的摘要信息,这常常是第一步,获取内存的操作系统类型及版本,之后可以在 –profile 中带上对应的操作系统,后续操作都要带上这一参数

pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以

pstree:以树的形式查看进程列表,和pslist一样,也无法检测隐藏或解链的进程

psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程

cmdscan:可用于查看终端记录

notepad:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)

filescan:扫描所有的文件列表

linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’

dumpfiles:导出某一文件(指定虚拟地址)

需要指定偏移量 -Q 和输出目录 -D

memdump:提取出指定进程,常用foremost 来分离里面的文件

需要指定进程-p [pid] 和输出目录 -D

editbox:显示有关编辑控件(曾经编辑过的内容)的信息

screenshot:保存基于GDI窗口的伪截屏

clipboard:查看剪贴板信息

iehistory:检索IE浏览器历史记录

systeminfo:显示关于计算机及其操作系统的详细配置信息(插件)

hashdump:查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)

mftparser:恢复被删除的文件

svcscan:扫描 Windows 的服务

connscan:查看网络连接

envars:查看环境变量

dlllist: 列出某一进程加载的所有dll文件

hivelist: 列出所有的注册表项及其虚拟地址和物理地址

timeliner: 将所有操作系统事件以时间线的方式展开

案例讲解

[护网杯]Easy_dump

1.先查看基本信息。

vol.py -f easy_dump.img imageinfo

在这里插入图片描述

2.再查看进程信息,发现有一个 **notepad.exe(记事本)**进程 。说明肯定是写文件了,提取出来。

vol.py -f easy_dump.img --profile=Win7SP1x64 pslist

在这里插入图片描述
使用memdump进行提取到当前目录

vol.py -f easy_dump.img --profile=Win7SP1x64 memdump -p 2616 -D ./

但是提取出来的直接用strings是无法查看的需要通过一下命令

strings -e l 2626.dmp | grep flag

在这里插入图片描述
4.提示说有一张jpg图片,搜索一下。

vol.py -f easy_dump.img --profile=Win7SP1x64 filescan |grep -E 'jpg|gif|png'

在这里插入图片描述
5.将图片保存下来
提取文件图片

vol.py -f easy_dump.img --profile=Win7SP1x64 dumpfiles -Q 0x000000002408c460 -D ./

在这里插入图片描述
6.图片提取出来后,利用binwalk测试图片中是否携带zip文件等内容
在这里插入图片描述
7.发现zip文件。使用foremost进行分离。
在这里插入图片描述
在这里插入图片描述
得到一个压缩包,解压后得到一个img文件
在这里插入图片描述
8.binwalk继续分析,分离出hint.txt文件。

binwalk -e message.img 

在这里插入图片描述
在这里插入图片描述
9.经过查看,有非常多的数字成对出现,与坐标还是比较类似
尝试将数字转为坐标,使用 gnuplot 画图,发现二维码
在这里插入图片描述
在这里插入图片描述
10.扫描得到提示Here is the vigenere key: aeolus, but i deleted the encrypted message。
在这里插入图片描述
11.上面英文翻译结果如下,这是一个维吉尼亚密码,秘钥是aeolus,有了加密方式,有了秘钥,需要密文。继续查看刚才两个文件夹,寻找密文在这里插入图片描述
寻找到一个.swp文件,如果熟悉它,知道是中断文件,直接恢复

vim -r .message.swp 

在这里插入图片描述
密文出现
在这里插入图片描述
13.yise!dmsx_tthv_arr_didvi 应该就是密文了,使用之前拿到的密钥aeolus进行解密。
在这里插入图片描述

[安洵杯]Administrator 's_secret

1.先查看下基本信息。

vol.py -f mem.dump imageinfo

在这里插入图片描述
2.pslist看一下有什么进程,这里发现有个 CnCrypt.exeCnCrypt是一款磁盘加密软件 。

vol.py -f mem.dump --profile=Win7SP1x64 pslist

在这里插入图片描述
3.上面进程中还看到有 cmd.exe ,那就看下cmd命令,发现有个 flag.ccx 文件,并且提示 flag.ccx 的密码就是 Administrator 的密码。

vol.py -f mem.dump --profile=Win7SP1x64 cmdscan

在这里插入图片描述

4.该文件的密码和administrator的密码相同,接下来我们寻找flag.ccx文件

vol.py -f mem.dump --profile Win7SP1x64 filescan | grep flag.ccx

在这里插入图片描述
接下来我们将该文件dump出来,可以看到上面说它的密码和administrator相同

vol.py -f mem.dump --profile Win7SP1x64 dumpfiles -Q 0x3e435890 --dump-dir=./

在这里插入图片描述

在这里插入图片描述
5.接下来寻找administrator的密码

列出SAM表的用户

vol.py -f mem.dump --profile Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"

在这里插入图片描述
获取SYSTEM SAM的虚拟地址 分别为0xfffff8a000024010 0xfffff8a001590010,可以理解成在内存中的地址

vol.py -f mem.dump --profile Win7SP1x64 hivelist

在这里插入图片描述

6.hashdump获取用户密码的hash值

vol.py -f mem.dump --profile Win7SP1x64 hashdump 

在这里插入图片描述
CMD5查询hash值得到Administrator账户的密码
在这里插入图片描述
至此完成加密文件提取和用户密码提取

之前查看进程时发现cncrypt

猜测文件使用cncrypt加密的

CnCrypt加载得到flag
在这里插入图片描述
在这里插入图片描述
7.解密并挂载得到flag。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_46467017/article/details/126557076