基于volatility内存取证技术研究

admin 2025年3月6日12:34:27评论12 views字数 3717阅读12分23秒阅读模式

Volatility是一款非常强大的内存取证工具,可用于windows,linux,mac osx,android等系统内存取证。Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。

01        
工具的基本使用

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=中带上对应的操作系统,继续后面的分析。
基于volatility内存取证技术研究

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
02        
实例分析
题目附件下载 
链接: https://pan.baidu.com/s/1aA-hqm23rgPudFW-t_dCAA 提取码: dm6

2.1   2021陇剑杯-内存分析1

第一个问题是虚拟机的密码是_?
使用 imageinfo 插件获取内存文件基本信息,分析出是哪个操作系统。
使用hashdump命令获取用户hash。
基于volatility内存取证技术研究
把be5593366cb1019400210101581e5d0d拿去hash解密失败。
lsadump命令获取最后登录的用户。
基于volatility内存取证技术研究

2.2   2018护网杯-easy_dump

查看系统信息
基于volatility内存取证技术研究
查看进程信息,发现notepad进程
vol.py -f easy_dump.img --profile=Win7SP1x64 pslist
基于volatility内存取证技术研究
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编码
基于volatility内存取证技术研究
寻找jpg图片
vol.py  -f easy_dump.img --profile=Win7SP1x64 filescan |grep -E 'jpg'
基于volatility内存取证技术研究
提取图片
vol.py -f easy_dump.img --profile=Win7SP1x64 dumpfiles -Q 0x000000002408c460 -D ./
基于volatility内存取证技术研究
将file.None.0xfffffa8008355410.vacb,修改为jpg后缀,并foremost分离图片,得到一个压缩包,解压得message.img文件。
基于volatility内存取证技术研究
file命令查看文件类型为ext2磁盘文件
基于volatility内存取证技术研究
在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
基于volatility内存取证技术研究
进入.Trash-0/files/,发现.swp文件,这个文件是因为使用vim编辑文件时意外中断产生的,可以vim -r恢复,得到文件内容yise!dmsx_tthv_arr_didvi
基于volatility内存取证技术研究
维吉尼亚密码解密一下即可得flag
基于volatility内存取证技术研究
---End---

原文始发于微信公众号(SAINTSEC):基于volatility内存取证技术研究

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月6日12:34:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   基于volatility内存取证技术研究http://cn-sec.com/archives/3804179.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息