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