题目名为Advertising for Marriage,取自最近参加的红帽杯比赛,鉴于网上关于内存取证的相关资料还较少,本人写了本文来以题目的视角介绍取证流程。
题目下来时给了一个文件是raw后缀的,这时候玩过相机的朋友立马说了,这个是图片文件,你拿ps试试看,比赛时我们确实把它当成图片来看待了。(滑稽 ~。~)
事实上,windows可以通过使用DumpIt这个软件来将一个系统的内存镜像为一个raw后缀的文件,因此当看到raw后缀的文件时,虽然你可以把它当成相机原图像,当也别忘记把它当成一个Windows镜像来对待
讲到内存取证就不得不说神器Volatility,该神器由python编写,在Windows和linux下都可以安装,而我们的kali自带了,所以这里就不谈怎么安装了,谈谈怎么用。
通用格式如下:
volatility -f <filename> --profile=<配置名> <cmd> <option>
什么命令什么的,大家应该都知道可以通过volatility -h
来查看,但就是道理都懂,就是因为是英文,大家都懒得慢慢理解,所以我这里从题目来入手。
拿到题目,我们首先要对镜像使用volatility -f 1.raw imageinfo
来查看镜像的信息,可以看见输出如下:
imageinfo的输出只会告诉我们一个建议的配置文件,因此我们按先后顺序采用第一个作为配置文件,也就是WinXPSP2x86。
接下来我们需要查看进程,使用pslist来查看。
volatility -f 1.raw profile=WinXPSP2x86 pslist
输出尾部如下:
0x818f7980 notepad.exe 1056 1596 1 50 0 0 2019-10-31 07:13:35 UTC+0000
0x81f22da0 wuauclt.exe 1332 1024 8 173 0 0 2019-10-31 07:14:09 UTC+0000
0x820af020 mspaint.exe 332 1596 6 114 0 0 2019-10-31 07:14:27 UTC+0000
0x818e51c0 svchost.exe 1128 668 9 134 0 0 2019-10-31 07:14:27 UTC+0000
0x81f14020 wpabaln.exe 248 552 1 66 0 0 2019-10-31 07:14:59 UTC+0000
0x8192d020 DumpIt.exe 180 1596 1 28 0 0 2019-10-31 07:15:33 UTC+0000
0x81e7e8d8 conime.exe 168 180 1 36 0 0 2019-10-31 07:15:33 UTC+0000
我们来分析一下这些进程:
为什么出题人会在使用dumpit之前开了一个画图软件?我们可以尝试将该进程的数据dump下来,使用如下命令:
volatility -f 1.raw --profile=WinXPSP2x86 memdump -D ./ctf -p 332
下来后的文件后缀改为data后使用gimp来打开,具体gimp安装自己去网上搜了,当然了,你也可以将文件拖到ps上面也是可以的。
接下来将图像类型改为rgb alpha后修改其宽度和高度直到出现一个肉眼可以识别的图像。
宽度调整到960左右,高度随意,然后打开可以看见如下:
看得出来那个应该是一个菠萝,我们将图片镜像旋转后可以得到b1cx这四个字。
接下来看看notepad,对待它,我们可以直接使用如下命令:
volatility notepad -f 1.raw --profile=WinXPSP2x86
与上面的四个字符连起来就可以得到hint了:
b1cxneedmoneyandgirlfirend
得到hint之后我们也就不需要再分析进程了,我们可以扫扫文件看看有没有图片之类的东西。
使用如下命令:
volatility -f 1.raw --profile=WinXPSP2x86 filescan
可以扫出文件,我们可以后面加上管道符之后用grep的正则模式匹配文件后缀,如:
volatility -f 1.raw --profile=WinXPSP2x86 filescan|grep -E 'jpg|png|jpeg|bmp|gif'
这个文件名看起来很不一样,我们可以dump下来看看。
volatility -f 1.raw --profile=WinXPSP2x86 dumpfiles -Q 0x000000000249ae78 --dump-dir=./ctf
-Q选项后接受一个内存地址。
发现图片长宽有问题,爆破一下后取得一个图片,判断为lsb加密,脚本https://github.com/livz/cloacked-pixel
接下来题目也差不多完了,不是内存取证的内容我也就不继续讲了。
对不同题目有不同需求,如对桌面截图啊,比如你看见了浏览器啊,那就有可能下载了什么东西,可以扫扫download目录之类的。
https://github.com/volatilityfoundation/volatility/wiki/Command-Reference
本文原创于HhhM的博客,转载请标明出处。
_ _ _ _ ___ ___ | | | | | | | | \/ | | |_| | |__ | |__ | . . | | _ | '_ \| '_ \| |\/| | | | | | | | | | | | | | | \_| |_/_| |_|_| |_\_| |_/