内存取证学习

 

这次Hgame在week3出了一个关于内存取证的题目,毫无取证基础的我有些懵,于是开始了学习。

内存取证是什么

通常指对计算机中临时数据进行获取与分析,提取有价值的数据,达到想要达到的目的。

取证工具

工具有好多,例如volatility、取证大师、PTF等等,在这里将主要介绍神器volatility的安装以及使用方法。

volatility

volatility的安装

查阅资料得知,老版本kali似乎自带volatility,而新版本没有了,所以在这里教大家如何在新版本kali下安装volatility。

首先去这个网站下载一份最新版的Linux版volatility

 下载完成后放入kali文件系统的/usr/local中(要root权限)。当然,为了方便使用,也可以把这一整个文件夹和可执行文件的名称都改为自己想要的名称,我就直接改成了volatility,接下来就是配置环境变量。

配置环境变量这里也很容易,我是修改了environment文件:

先在终端中输入vim /etc/environment

然后在“PATH=”那一行里添加:/usr/local/volatility

最后,重启虚拟机,就可以看到volatility已经可以正常使用啦!

 

 

volatility的基本命令

就拿Hgame里week3的题目《卡中毒》来讲讲volatility的基本命令吧,正好可以讲讲这题的做法。

imageinfo

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

volatility -f ACTUE.raw imageinfo

输入这串代码后稍等片刻即可看到结果

 在这里一般选用第一个,因此得知这个镜像的系统是Win7SP1x64

pslist

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

volatility -f ACTUE.raw --profile=Win7SP1x64 pslist

当然,进程很多,所以我们要从中寻找可疑进程,例如notepad.exe mspaint.exe iexplore.exe DumpIt.exe等等,然后使用指令将其提取出来做进一步分析。

iehistory

因为题目提到了上网,所以应该看看浏览器记录,使用iehistory就可以查看ie浏览器的历史记录

volatility -f ACTUE.raw --profile=Win7SP1x64 iehistory

 发现了两个7z压缩包,于是下一步应该是在系统里寻找这压缩包。

filescan

volatility -f ACTUE.raw --profile=Win7SP1x64 filescan

这个指令可以将镜像中的文件展示出来。当然,文件很多,就拿这题为例,可以使用这条指令找出含flag字段的文件

volatility -f ACTUE.raw --profile=Win7SP1x64 filescan |grep flag

 在这题中,发现了好几个文件含flag,于是我们使用dumpfiles指令将其dump下来

volatility -f ACTUE.raw --profile=Win7SP1x64 dumpfiles -Q [需要dump的文件的偏移量] -D [保存路径]

在这里我们dump下第二个,保存在默认的路径

volatility -f ACTUE.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000007eccc900 -D ./

操作完之后就可以看到文件在桌面上啦

 (既然讲到这里了,那就把题目讲完)

打开这两个文件后会发现里面有一个文件叫做flag.txt.txt.WannaRen,上网查询后发现这是勒索病毒,这也就是题目里所说的中毒的含义。使用火绒开发的勒索病毒解密软件解密后就可以看到正常的flag.txt.txt。打开后发现是新佛曰加密,使用在线网站即可得到flag

(这个题目告诉我们不要浏览奇怪的网页)

 

 

其他指令

还有好多其他指令在这里没有用到,就不再详细说了,在这里简单带过(并不是说这些不重要)

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

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

cmdscan:可用于查看终端记录

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

mendump:提取出指定进程,常用foremost 来分离里面的文件,需要指定进程-p [pid] 和保存路径 -D

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

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

clipboard:查看剪贴板信息

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

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

mftparser:恢复被删除的文件

svcscan:扫描 Windows 的服务

connscan:查看网络连接

envars:查看环境变量

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

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

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

小结

内存取证现在也是一个热门的点,还得多多学习啊!




posted @ 2022-02-17 18:14  zysgmzb  阅读(724)  评论(0编辑  收藏  举报