前言

最近接触到的取证类题目很多,所以就总结一下这类题。
不得不提的是Volatility这个神器,本次学习,结合几个题目总结一下命令使用。还有一些大师傅的博客学来的知识。

“食用”方法

判断镜像信息,获取操作系统类型

1
volatility -f ?.img/raw/... imageinfo

知道操作系统类型后,用–profile指定

1
volatility -f ?.img --profile=...

查看当前显示的notepad文本

1
volatility  -f file.raw --profile=WinXPSP2x86 notepad

查看当前运行的进程

1
volatility  -f file.raw --profile=WinXPSP2x86 psscan/pslist

扫描所有的文件列表(常常结合grep)

1
volatility  -f file.raw --profile=WinXPSP2x86 filescan

根据offset提取出文件

1
volatility  -f file.raw --profile=WinXPSP2x86 dumpfiles -D . -Q 0x.....

扫描 Windows 的服务

1
volatility -f file.raw --profile=WinXPSP2x86 svcscan

查看网络连接

1
volatility -f file.raw --profile=WinXPSP2x86 connscan

查看命令行上的操作

1
volatility -f file.raw --profile=WinXPSP2x86 cmdscan

根据pid dump出相应的进程

1
volatility -f easy_dump.img --profile=Win7SP1x64 memdump -p 2580 -D 目录

常用命令
m0re

题目

湖湘杯(取证)

一个G的raw文件,工具分析就行了。
使用

1
2
3
4
#使用imageinfo参数查看内存是什么系统的镜像
volatility -f men.raw imageinfo #profile=Win7SP1x86_23418
#直接查看用户名和密码hash
volatility -f men.raw --profile=Win7SP1x86_23418 hashdump

然后看到三个用户
m0re
使用彩虹表暴力猜解
hash猜解
m0re
密码是qwer1234
题目是说的sha1(password)
所以再进行加密一下就可以了
m0re

BUU内存取证(VN)

首先查看镜像信息
m0re
列出进程,一般使用pslist当然还有其他的,pstreepsscan
m0re
记几个重要的地方,一般是notepad.exe、TrueCrypt.exe 、mspaint.exe、iexplore.exe 、DumpIt.exe
简单介绍:
mspaint.exe是一个画图软件
notepad.exe是记事本,一般记事本中会有内容hint或者在内存中(还未保存)
DumpIt 是一款绿色免安装的 windows 内存镜像取证工具。利用它我们可以轻松地将一个系统的完整内存镜像下来,并用于后续的调查取证工作。
TrueCrypt.exe m0re
先将这些可疑进程dump下来。进行进一步的分析

1
volatility -f mem.raw --profile=Win7SP0x86 memdump -p 2648 --dump-dir=./

类似这样的,先分析画图的,需要使用一个工具gimp在linux中相当于photoshop一样的软件,直接安装就可以

1
2
3
#在root权限下
apt-get update
apt-get install gimp

然后打开使用就可以了
https://segmentfault.com/a/1190000018813033?utm_source=tag-newest
这个师傅讲的如何使用这个软件。
m0re
刚打开时,是默认分辨率是0,高度和宽度都是350,先随便调节一下,大概就是三个变量值都先调低一点,然后慢慢调高。
调试很多次,慢慢调节出一些值,这个值可以参考windows系统自带画图软件的,我的是1628x440,修改一下,就开始改变分辨率就可以了。下图大概成型了
m0re
然后微调一下宽度就行,不过调过之后是反的,所以可以再调大一些,多调动尝试最佳角度。
m0re
拿到了一个字符串1YxfCQ6goYBD6Q
然后看下一步,提取记事本中的内容
这里介绍一个插件editbox可以显示有关编辑控件的信息。
使用命令

1
volatility -f men.raw --profile=Win7SP1x86_23418 editbox

m0re
网盘链接得到了,提取码也得到了,就进行下一步
下载得到一个VOL文件
m0re
然后就是TrueCrypt,这个dump下来不用进行其他操作,成功挂载到F盘,里面看到key 文件
m0re
打开获得uOjFdKu1jsbWI8N51jsbWI8N5
这个就是VOL挂载加密的key,然后使用TrueCrypt对VOL进行正常解密,
下载安装TrueCrypt,我安装到物理机上面了,直接使用。
密钥填写一下,选择TrueCrypto模式
m0re
成功挂载
m0re
挂载后,可以在Z盘直接看到一个压缩包
m0re
打开需要密码,这个时候用到了画图时得到的密码。
m0re

easydump

来源:护网杯2018-MISC-easydump
.img文件,也是一种内存镜像
使用取证神器直接跑
m0re
然后就是列出进程
pslist
最显眼的还是这个notepad.exe了
m0re
然后dump下来2580.dmp,binwalk查看,信息太多,直接foremost分离文件,里面发现有用的就是两个压缩包,解压是img文件。但是这个文件同样使用volatility去跑,确没有信息,所以判断这个不是内存镜像文件。
m0re
先strings看一下
m0re
发现好多信息,然后将img文件挂载在linux系统中,

1
mount -o loop message.img /root/Desktop/m0re

挂载后,可以切换到该目录进行查看信息

1
2
cd m0re/
ls -all #查看所有文件,一般隐藏信息较多

然后在.Trash-0/file下看到一个.message.swp
转存一下

1
2
cat .message.swp > m0re.txt
strings m0re.txt

m0re
可能是密码什么的,保存一下
hint.txt文件里面都是坐标,猜测是要画图
之前保存过画图的python脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
from PIL import Image

with open('hint.txt','r') as f:
points = f.readlines()

pic=Image.new('RGB',(600,600),'black')
pix=pic.load()

for i in points:
i=i.strip().split(' ')
pix[int(i[0]),int(i[1])]=(255,255,255)

pic.save('out.png','png')

得到二维码
m0re
识别后得到

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

维吉尼亚密码,密钥是aeolus
密文不知道,前面的可疑字符串有可能是密文
m0re
得到结果。这个题就有点杂了。

总结

学到这里,内存取证的基础题已经可以应付了,这是第二次学习取证的知识,感觉很有意思。

参考博客

https://blog.xiafeng2333.top/ctf-25/
https://blog.xiafeng2333.top/ctf-11/
https://segmentfault.com/a/1190000018813033?utm_source=tag-newest