这次是一道打开之后需要百度这是什么格式的题,不常见的raw文件。百度之后发现是未格式化的系统文件,结合题目,应该是一道比较简单的取证分析题。话不多说,先上工具。
这次用到的工具是volatility,紧急下载安装kali后发现新版本的Kali没有volatility,还是得自己安装。
volatility安装
安装过程非常简单:
官网下载Linux版本Standalone: https://www.volatilityfoundation.org/26
解压缩(我改了解压文件名),建立软链接,验证安装成功
unzip volatility_2.6_lin64_standalone.zip
ln -s /home/kali/Desktop/ctf/forensic/volatility_2.6/volatility /usr/bin/
volatility -h
WriteUp
接下来开始探索raw文件(具体思路来源见(27条消息) 内存取证——volatility_「已注销」的博客-CSDN博客_内存取证
判断该文件内存进程,得到profile类型 Win7SP1x64 (-f 指定文件)
volatility -f 1.raw imageinfo
![](https://img-blog.csdnimg.cn/img_convert/e9d35cd0e9171bd7573599266df4dc65.png)
查看有关进程,利用grep命令找寻文件中的关键字secret/flag等
volatility -f 1.raw pslist --profile=Win7SP1x64
volatility -f 1.raw --profile=Win7SP1x64 filescan |grep secret
![](https://img-blog.csdnimg.cn/img_convert/f322fbb30126bacff96cc06051824958.png)
![](https://img-blog.csdnimg.cn/img_convert/f689f82c31e15065881e32d88b4a0d67.png)
发现桌面上有secret.png图片,使用dumpfiles命令提取文件(这个东西之前完全不知道)
volatility -f 1.raw --profile=Win7SP1x64 dumpfiles -Q 0x7fce3290 --dump-dir=/home/kali/Desktop/ctf/forensic/
# -Q = memory address
# --dump-dir=export file path
截止目前,获取到了flag的第一部分
flag{abc123_e5b2
![](https://img-blog.csdnimg.cn/img_convert/e967a1775a255169605e9fdc2b152aa3.png)
继续探索,根据进程发现有浏览器打开、cmd使用等等,查看剪贴板发现flag第二部分
1 WinSta0 CF_UNICODETEXT 0x8012b 0xfffff900c215d340 _78343_ab52
![](https://img-blog.csdnimg.cn/img_convert/b1579faccb608127be8728ee7636cffe.png)
根据常用功能的尝试,提取执行的命令行历史记录cmdscan
![](https://img-blog.csdnimg.cn/img_convert/e61e46ea9c5feae1c2a4e6f7fd30e887.png)
获得第三部分flag
Cmd #0 @ 0x2cbf40: DumpIt.exe -flag _333a}
小记
上述是复原WriteUp的过程,实际探索走了很多弯路。例如:
分析smss.exe进程并提取flag,发现有很多混淆
volatility -f 1.raw --profile=Win7SP1x64 memdump -p 216 -D /home/kali/Desktop/ctf/forensic/
strings -e l 216.dmp|grep flag
![](https://img-blog.csdnimg.cn/img_convert/04b8e97b6ea7f7ae62c56040143fe584.png)
![](https://img-blog.csdnimg.cn/img_convert/1630b1431c04868e423ddf305b7b705f.png)
分析截图,发现都是空白
volatility -f 1.raw --profile=Win7SP1x64 screenshot --dump-dir=/home/kali/Desktop/ctf/forensic/
![](https://img-blog.csdnimg.cn/img_convert/271eceaa1adb2f6cf977cbe57bef05f4.png)
In a word, 取证需要耐心。
附录-volatility常用命令
获取内存镜像的摘要信息
volatility -f 镜像名 imageinfo
获取运行的进程
volatility -f 镜像名 --profile=系统版本 pslist
获取缓存在内存中的注册表
volatility -f 镜像名 --profile=系统版本 hivelist
扫描文件 结合 grep 进行筛选
volatility -f 镜像名 --profile=系统版本 filescan
volatility -f 镜像名 --profile=系统版本 filescan | grep -E 'jpg|png|jpeg|bmp|gif'
提取内存中缓存的文件
volatility -f 镜像名 --profile=系统版本 dumpfiles -Q [文件地址] --dump-dir=./
获取cmd输入的内容
volatility -f 镜像名 --profile=系统版本 cmdline
查看截图
volatility -f 镜像名 --profile=系统版本 screenshot --dump-dir=./
查看系统用户名
volatility -f 镜像名 --profile=系统版本 printkey -K "SAM\Domains\Account\Users\Names"
查看网络连接情况
volatility -f 镜像名 --profile=系统版本 netscan
附录参考:https://blog.csdn.net/weixin_43891422/article/details/107852416