ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

volatility内存取证

2022-02-07 21:35:07  阅读:373  来源: 互联网

标签:profile 取证 vol raw -- py python 内存 volatility


文章目录

写在前面

取证在CTF中占比越来越大,甚至某些比赛中misc全是取证。在之前的比赛中wha1e表示束手无策很难受,所以乘着实习摸鱼期间学习了一下。

volatility适用场景

volatility常用于以下镜像文件的取证:raw、vmen、dmp、img。

volatility的安装

因为volatility安装并不复杂,且网上教程很多,所以简略带过。
1、git clone https://github.com/volatilityfoundation/volatility.git直接拉去github上面镜像。可能会出现要求安装依赖,跟着提示来就可以了。
2、https://www.volatilityfoundation.org/releases官网下载地址,下载对应安装包,打开安装目录终端python setup.py install进行安装

未安装依赖报错(不影响volatility正常使用):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IpGkvxFO-1644239229095)(./picture/volatility未安装插件报错.png)]在这里插入图片描述
全部依赖安装完毕后:
在这里插入图片描述

volatility一些基本命令

-h:**help。

-f:指定镜像。

imageinfo:用于获取当前镜像的基本信息。

pslist:用于枚举系统中的进程。主要包括偏移地址,进程PID,父进程ID号,线程数量,句柄数量,进程会话ID号以及进程开始和结束时间。psscan,可以展示所有父进程和子进程,以及隐藏的病毒。pstree可以展示树状图。

filescan:显示系统已经打开的文件,包括隐藏文件。

netscan:发现TCP/UDP端口和监听器。

**memdump:**将进程在内存中的所有页存入一个文件中。

**prcodump:**获取进程的可执行文件。

**–profile:**后接系统名。

**-p:**指定PID。

**-Q:**后接内存地址。

**-D/–dump-dir:**储存文件。,后接存储目录。

**-o:**后接注册表的virtual地址。

组合使用

1、查看系统镜像:

python vol.py -f 1.raw imageinfo

这个时候可以看到镜像的基本信息在获取了系统镜像文件之后,就在后面输入

--profile=系统名

系统名这里以Win7SP0x86为例,即接下来都为

python vol.py -f 1.raw --profile=Win7SP0x86

2、网上很多先举例进程,举例注册表之类的。wha1e表示先从简单的开始找,说不定有意外收获。

python vol.py -f 1.raw --profile=Win7SP0x86 filescan | grep "flag"

也可以替换成key,password,hint等关键信息试试看。

如果有发现flag等字眼,可以提取出来

python vol.py -f 1.raw --profile=Win7SP0x86 dumpfiles -Q 0x233666 --dump-dir=./

3、举例进程

python vol.py -f 1.raw --profile=Win7SP0x86 pslist

或者使用pstree

python vol.py -f 1.raw --profile=Win7SP0x860 pstree

提取进程

python vol.py -f 1.raw --profile=Win7SP0x86 memdump -p 332 -D ./

提取出dump文件后就可以对其进行查找,是否存在key,password,或者直接存在flag。如果都没有,接着寻找。

举个栗子

python vol.py -f 1.raw --profile=Win7SP0x86 pslist | find "chrome.exe"

可以列出所有chrome浏览器的进程,然后提取

常见Windows进程名

TrueCrypt.exe 磁盘加密工具notepad.exe 自带记事本mspaint.exe 自带画图工具iexplore.exe IE浏览器DumpIt.exe 内存镜像提取工具

4、举例注册表

python vol.py -f 1.raw --profile=Win7SP0x86 hivelist

提取注册表信息。

python vol.py -f 1.raw --profile=WinpSP0x86 hivedump -o 0x23333 -D ./

5、获取ie浏览器历史记录

python vol.py -f 1.raw --profile=Win7SP0x86 iehistory

wha1e表示以前碰到过几次浏览器取证的题目。

6、扫描图片的命令

python vol.py -f 1.raw --profile=Win7SP0x86 filescan | grep -E "jpg|png|jpeg|bmp|gif"

获取屏幕截屏

python vol.py -f 1.raw --profile=Win7SP0x86 screenshot --dump-dir=./

7、列举用户名以及密码

python vol.py -f 1.raw --profile=Win7SP0x86 printkey -K "SAM\Domains\Account\Users\Names"

获取最后登录用户的用户名以及密码

python vol.py -f 1.raw --profile=Win7SP0x86 printkey -K "SOFTWARE\Microsoft\Windows Nt\CurrentVersion\Winlogon"

8、查看cmd命令

python vol.py -f 1.raw --profile=Win7SP0x86 cmdscan

查看cmd详细情况

python vol.py -f 1.raw --profile=Win7SP0x86 cmdline

9、复制、剪切板

python vol.py -f 1.raw --profile=Win7SP0x86 clipboard
python vol.py -f 1.raw --profile=Win7SP0x86 dlllist -p 3820

例题实操

V&NCTF2020内存取证

题目链接https://buuoj.cn/match/matches/3/challenges

先查看一下系统镜像(这里wha1e配错图了)
在这里插入图片描述
试试有没有flag等字眼,没有。在这里插入图片描述
查看进程在这里插入图片描述
发现三个关键进程:mspaint.exe,notepad.exe,truecrypt.exe。这三项进程在上文均有介绍,分别为自带画图工具,自带记事本,磁盘加密工具。稍后依次进行分析。

在这里插入图片描述
mspaint.exe
修改后缀名为data通过gimp打开。
在这里插入图片描述
wha1e表示看到这种文件很头疼,完全无从下手,在通过广大的互联网学习之后,总算知道如何处理此类文件。

先修改图片长宽,随便选一组比较常见且分辨率并不算高的参数。这里wha1e的初始参数选的是1280*720。然后改变位移,得到以下图片,疑似文字。
在这里插入图片描述
此时通过修改长宽将文字显现,最终通过改变位移完整展示图片内容如下所示:
在这里插入图片描述
改图为key上下翻转,翻过来后为:1YxfCQ6goYBD6Q。

notepad.exe
对于notepad查找并不方便,这里推荐editbox插件,editbox插件可以显示有关编辑控件的信息。
在这里插入图片描述
因为原题链接已经停了,Buuctf直接提供了VOL。然后就需要用到Elcomsoft Forensic Disk Decryptor这个工具。
具体用法如下(如果没有截屏保持默认即可):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里选择挂载该磁盘
在这里插入图片描述
在这里插入图片描述
挂载成功后打开即可获得最终key
在这里插入图片描述
然后用veracrypt挂载镜像,密码为刚才获得的key
uOjFdKu1jsbWI8N51jsbWI8N5
在这里插入图片描述
最后打开磁盘,使用mspaint获得的passwd解压压缩包,获取flag
在这里插入图片描述
验证一下
在这里插入图片描述
flag正确,比赛时间已过无法提交:D。

小结

这题花费了我很多时间,最后还是靠wp复现出来的,质量很高,收获颇丰。个人感觉这篇wp在我所能搜索到的来说是最全面的了。本文主要为wha1e学习取证的一个记录,有任何不足错误的地方欢迎联系我。路漫漫其修远兮,吾将上下而求索。volatility内存取证还有很多方面,后期将持续更新。

标签:profile,取证,vol,raw,--,py,python,内存,volatility
来源: https://blog.csdn.net/qq_51652400/article/details/122814711

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有