freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

内存取证之volatility使用
2022-06-20 10:15:22
所属地 广东省

Volatility是一款非常强大的内存取证工具,可用于windows,linux,mac osx,android等系统内存取证。

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

一.     工具的基本使用

1.1   下载安装

官网下载:https://www.volatilityfoundation.org/releases

github下载:

python2版本  https://github.com/volatilityfoundation/volatility

python3版本  https://github.com/volatilityfoundation/volatility3

这里就使用python2版本的volatility演示,使用如下命令安装。

git clone https://github.com/volatilityfoundation/volatility.git

cd volatility

pip install pycryptodome

pip install distorm3

python2 setup.py install

vol.py -h

1.2   命令格式

命令格式

vol.py -f [image] --profile=[profile] [plugin]

在分析之前,首先需要知道当前的镜像信息,通过imageinfo命令分析是哪个系统。

vol.py -f xx.vmem imageinfo

如下图所示,Suggested Profile(s),猜测出多个系统信息,可能性越大的排在前面,一般取第一个,知道镜像后,就可以在--profile=中带上对应的操作系统,继续后面的分析。

1655691112_62afd7684d66348a59840.png!small?1655691112577

1.3   常用插件

查找⽤户名密码信息。当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容

vol.py -f Target.mem --profile=Win7SP0x64 hashdum

从注册表中提取LSA密钥信息(已解密)

vol.py -f Target.mem --profile=Win7SP0x64 lsadump

列举出系统进程,但它不能检测到隐藏或者解链的进程

vol.py -f Target.mem --profile=Win7SP0x64 pslist

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

vol.py -f Target.mem --profile=Win7SP0x64 psscan

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

vol.py -f Target.mem --profile=Win7SP0x64 pstree

提取进程, -p是进程号 -D 存储的文件夹 提取出指定进程

vol.py -f Target.mem --profile=Win7SP0x64 memdump -p xxx --dump-dir=./

查看服务

vol.py -f Target.mem --profile=Win7SP0x64 svcscan

查看ie浏览器浏览历史

vol.py -f Target.mem --profile=Win7SP0x64 iehistory

查看⽹络连接

vol.py -f Target.mem --profile=Win7SP0x64 netscan

查看命令⾏操作

vol.py -f Target.mem --profile=Win7SP0x64 cmdscan

查看⽂件

vol.py -f Target.mem --profile=Win7SP0x64 filescan

提取文件

vol.py -f Target.mem --profile=Win7SP0x64 dumpfiles -Q 0xxxxxxxx -D ./

查看当前展示的notepad内容

vol.py -f Target.mem --profile=Win7SP0x64 notepad

查看屏幕截图

vol.py -f Target.mem --profile=Win7SP0x64 screenshot --dump-dir=./

查看注册表单元

vol.py -f Target.mem --profile=Win7SP0x64 hivelist

导出注册表, -o 注册表的virtual地址

vol.py -f Target.mem --profile=Win7SP0x64 hivedump -o 0xfffff8a001032410

获取注册表信息,-K “键值”

vol.py -f Target.mem --profile=Win7SP0x64 printkey -K "xxxxxxx"

查看运⾏程序相关的记录

vol.py -f Target.mem --profile=Win7SP0x64 userassist

二.     实例分析

题目附件下载

链接: https://pan.baidu.com/s/1aA-hqm23rgPudFW-t_dCAA 提取码: dm6

2.1   2021陇剑杯-内存分析1

第一个问题是虚拟机的密码是_?

使用 imageinfo 插件获取内存文件基本信息,分析出是哪个操作系统。

使用hashdump命令获取用户hash。

1655691138_62afd7825e1f853d5e250.png!small?1655691138563

把be5593366cb1019400210101581e5d0d拿去hash解密失败。

lsadump命令获取最后登录的用户。

1655691146_62afd78a3835e01b572c2.png!small?1655691147385

2.2   2018护网杯-easy_dump

查看系统信息

1655691154_62afd7922b1089972c9a0.png!small?1655691154424

查看进程信息,发现notepad进程

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

1655691173_62afd7a525c795c46f402.png!small?1655691173419

将notepad进程提取出来

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

提取出来的直接用strings是无法查看,需要添加-e参数

strings -e l 2626.dmp | grep flag

#-e的参数为编码⽅式,其中l为16-bit编码

1655691185_62afd7b18a23656402676.png!small?1655691185833

寻找jpg图片

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

1655691193_62afd7b9ceeff58d70c71.png!small?1655691194016

提取图片

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

1655691203_62afd7c3a0db1077d1b10.png!small?1655691203858

将file.None.0xfffffa8008355410.vacb,修改为jpg后缀,并foremost分离图片,得到一个压缩包,解压得message.img文件。

1655691218_62afd7d25cf4e312eece7.png!small?1655691218614

file 命令查看文件类型为ext2磁盘文件

1655691226_62afd7da18f7793eff6b1.png!small?1655691226279

在linux系统中使用mount 命令挂载此文件。查看hint.txt文件,内容是两列数字,很像x,y坐标。

─$ mkdir test

└─$ sudo mount message.img ./test

└─$ cd test

└─$ls -la

total 271

drwxr-xr-x 4 root      root        1024 Sep 28  2018 .

drwxr-xr-x 5 parallels parallels   4096 May 30 14:20 ..

-rw-r--r-- 1 root      root      257163 Sep 28  2018 hint.txt

drwx------ 2 root      root       12288 Sep 28  2018 lost+found

drwx------ 4 root      root        1024 Sep 28  2018 .Trash-0

└─$ cat hint.txt|more

10 10

10 11

10 12

10 13

10 14

10 15

10 16

使用gnuplot画图,发现二维码,扫描后得到维吉尼亚密码的key。

Here is the vigenere key: aeolus, but i deleted the encrypted message

1655691241_62afd7e931172d4b0c369.png!small?1655691243357

进入.Trash-0/files/,发现.swp文件,这个文件是因为使用vim编辑文件时意外中断产生的,可以vim -r恢复,得到文件内容yise!dmsx_tthv_arr_didvi 。1655691248_62afd7f01d430d33d3cfc.png!small?1655691248320

维吉尼亚密码解密一下即可得flag

1655691016_62afd708f148da16d05e7.png!small?1655691017200

# Volatility # 内存取证
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录