Misc之取证学习

本文最后更新于:2022年10月27日 下午


发现我们战队Misc有些弱,Web有xux顶着足够了,那么我就学一下取证,正好为下届蓝帽杯做一下准备,从0开始的取证学习

Volatility

首先照着网上的步骤安装

取证文件后缀: .raw、.vmem、.img

命令格式:

vol.py -f [image] --profile=[profile] [plugin]


可以使用--info参数来查看volatiliity已经添加的profile和插件等信息

volatility中比较常用的插件:

插件名 作用
pslist 列出系统进程
hashdump 查看用户和密码信息
svcscan 查看服务
iehistory 查看浏览器历史记录
netscan 查看网络连接
cmdscan 查看命令行操作
filescan 查看文件
dumpfiles 查看文件内容
notepad 查看当前展示的notepad内容
memdump 提取进程
screenshot 屏幕截图
hivelist 查看注册表注册单元
hivedump 查看注册表键名
printkey 查看注册表键值
userassist 查看运行程序相关记录
timeliner 最大程序提取信息
clipboard 获取复制剪切的内容

刷题

[RCTF2019]disk

hint:
An otaku used VeraCrypt to encrypt his favorites.
Password: rctf
Flag format: rctf{a-zA-Z0-9_}

下载压缩包,使用010打开encrypt.vmdk,搜索rctf发现前半段的flag

rctf{unseCure_quick_form4t_vo1ume
遇到vmdk可以试试使用7z这个压缩软件打开,果然发现了0.fat

使用VeraCrypt尝试挂载这个文件系统,密码为rctf,发现一个图片和一个密码

打开得到password.txt

Password 2: RCTF2019
You’re late… So sad

这里学习到在挂载的时候,不同的密码可以进入不同的文件系统,那么我们换一个密码重新挂载,发现显示是隐藏分区,无法直接访问
直接使用winhex打开,存在报错,但不用管

随便找一下就发现后半段flag了,_and_corrupted_1nner_v0lume}

[PCTF2016]内存取证

解压压缩包得到两个文件

首先查看mem.vmem的系统版本信息

一般是第一个即WinXPSP2x86,查看一下进程,发现存在TrueCrypt.exe,磁盘加密工具

由此推断suspicion可能是被加密之后的文件

vol.py -f mem.vmem --profile=WinXPSP2x86 memdump -p 2012 -D outfile/

-p 为要提取进程的PID
-D 将提取的进程保存的路径


由于是磁盘加密,那么它对应的Key应该会出现在内存中,于是我们将这个进程提取出来
使用Elcomsoft Forensic Disk Decryptor软件对加密文件进行解密,这个Key我们需要在提取进程的文件中获取

最后挂载即可获得flag

[V&N2020 公开赛]内存取证

hint:记事本

拿到文件首先就获取系统信息

发现为Win7SP1x86_23418,获取一下进程信息

vol.py -f mem.raw --profile=Win7SP1x86_23418 pslist > 1.txt


发现

notepad.exe pid 3552(记事本)
TrueCrypt.exe pid 3364(磁盘加密工具)
mspaint.exe pid 2648(画图工具)

首先dump notepad.exe进程,

vol.py -f mem.raw --profile=Win7SP1x86_23418 memdump -p 3552 -D outfile/

使用010看一下,发现存在百度网盘链接,这里也可以使用取证大师直接恢复文件得到提取码:heem

然后找到另一个百度网盘链接,下载后是个文件名为VOL的文件,就是buu上的附件
再分析一下mspaint

vol.py -f mem.raw --profile=Win7SP1x86_23418 memdump -p 2648 -D outfile/

参考:【CTF】利用volatility与Gimp实现Windows内存取证
先安装gimp,重命名为.data,用gimp打开

通过不断移动,把图片翻转一下,得到密码:1YxfCQ6goYBD6Q
最后就是常见的考点:TrueCrypt了

vol.py -f mem.raw --profile=Win7SP1x86_23418 memdump -p 3364 -D outfile/

然后进行解密

得到key:uOjFdKu1jsbWI8N51jsbWI8N5,使用VeraCrypt对VOL进行挂载

使用画图得到的密码进行解密,得到flag

[HDCTF2019]你能发现什么蛛丝马迹吗

拿到一个镜像文件,直接分析

猜测镜像版本为Win2003SP1x86,获取一下pslist信息

vol.py -f memory.img --profile=Win2003SP1x86 pslist


发现一个DumpIt.exe,很明显是最近运行过的,我们导出一下截图

vol.py -f memory.img --profile=Win2003SP1x86 screenshot -D outfile/

发现一个flag.png

查看一下最近打开过什么软件

vol.py -f memory.img --profile=Win2003SP1x86 windows


发现使用了explorer处理flag.png,下载一下

vol.py -f memory.img --profile=Win2003SP1x86 memdump -p 1992 -D outfile/

然后使用foremost分离,发现两个图片

扫码得到密文:jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4=
key:Th1s_1s_K3y00000
iv:1234567890123456

直接aes解密得到flag

[BSidesSF2019]diskimage

给了一个图片,怀疑存在隐写
使用zsteg,发现有磁盘数据

直接提取出来,zsteg -e 'b8,rgb,lsb,xy' attachment.png > disk

解法一

使用FTK进行挂载,然后用X-Ways打开

发现一个25.1KB的文件,恢复出来,然后改后缀名打开,即可得到flag

解法二

用kali自带的工具testdisk分析导出的镜像
一路回车按下去,发现存在一个_LAG.ICO

c复制出来,即可得到flag

[2019安洵杯]内存取证

首先还是判断镜像的操作系统类型

vol.py -f mem.dump --profile=Win7SP1x64 pslist

发现运行了CnCrypt程序和cmd.exe,获取一下命令行操作

vol.py -f mem.dump --profile=Win7SP1x64 cmdscan


发现一个flag.ccx,并且flag.ccx文件的密码和Administrator的密码一致,我们找一下这个文件

vol.py -f mem.dump --profile=Win7SP1x64 filescan | grep flag.ccx


那么我们尝试dump这个文件,文件地址:0x000000003e435890

vol.py -f mem.dump --profile=Win7SP1x64 dumpfiles -Q 0x000000003e435890 -D outfile/

接下来获取管理员账号密码

vol.py -f mem.dump --profile=Win7SP1x64 mimikatz


发现密码为ABCabc123,最后使用Cncrypt对flag.ccx进行解密,得到flag

[DASCTF2022.07赋能赛]ez_forenisc

比赛的时候搞了半天没搞出来,看wp发现需要挂载磁盘再进行解密。。。。。复现一下
vol.py -f pc.raw --profile=Win7SP1x64 pslist

存在cmd.exe,读取一下内容

发现screenshot存在一些东西,那么获取截图
vol.py -f pc.raw --profile=Win7SP1x64 screenshot -D ./outfile

发现thes3cret,获取到这个文件

vol.py -f pc.raw --profile=Win7SP1x64 filescan | grep thes3cret
vol.py -f pc.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003eeb4650 -D ./outfile


发现为AES加密:
U2FsdGVkX1+43wNkY0XcPnFYLr+rHqeD9aQzNtLtEb8y15V20J0DyoOOE+lEr+NmwsoH+0q6DljkvVL9ggc3rw==

接下来使用FTK挂载磁盘,然后使用EFDD进行磁盘解密

然后memory dump选择内存文件

解密成功后发现一个cipher.zip和flag.txt

发现cipher.png存在LSB隐写,提取一下,存在密码,发现是计算机密码

vol.py -f pc.raw --profile=Win7SP1x64 mimikatz

得到密码:550f37c7748e,发现key.txt内容为:

164 150 145 40 153 145 171 40 151 163 40 63 65 70 144 141 145 142 145 146 60 142 67 144


得到358daebef0b7d,最后AES解密即可得到flag


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!