电子取证是指利用计算机软硬件技术,以符合法律规范的方式对计算机入侵、破坏、欺诈、攻击等犯罪行为进行证据获取、保存、分析和出示的过程。在CTF比赛中,ctfer需要在题目给出的镜像文件或流量等数据中找到flag。我在比赛中做的取证题的不多,但在上次蓝帽杯比赛中深刻的意识到了取证工具的重要性。 用过两款好用的工具—-volatility和取证大师,后者图形化操作相对简单,所以本文主题是内存取证工具volatility的用法

常见的镜像文件格式有: raw:一种通用的内存镜像文件格式,它是内存数据的原始二进制表示 .vmem 文件是 VMware 虚拟机中常用的内存镜像文件格式,它包含了虚拟机的物理内存数据(内存取证) .img 文件通常是 raw 格式的内存镜像文件,它是内存数据的原始二进制表示。

以内存取证题目为例学习该工具用法

例题一:

参考题目及原文链接:CTF内存取证入坑指南!稳! - 腾讯云开发者社区-腾讯云 (tencent.com) vmem后缀明显是个内存镜像,先使用volatility猜解镜像对应的系统,通常显示的第一个准确度最高 作为一个ctf题目,flag字符串通常以文本、图像等形式保存,在内存取证中还可能出现在cmd指令、浏览器记录里 先使用pslist查看下有没有可疑的应用,下面列举了些可能藏flag的程序:

命令行工具:如 cmd.exe、powershell.exe 文本编辑器:如notepad.exe 等 浏览器:如chrome.exe、firefox.exe 等 网络工具:如netstat.exe、nc.exe 等 画图工具:如mspaint.exe等

如果没有发现很可疑的进程,可以把ctfmon.exe进程dump出来看一下,ctfmon.exe进程用于记录和监视计算机的网络活动。ctfmon.exe通常会记录用户键盘输入、网络流量、入侵、扫描等信息 volatility -f mem.vmem –profile=WinXPSP2x86 -p [PID] -D [dump 出的文件保存的目录] 然后用strings工具将其中的字符串打印出来 还可以查看网络连接情况: vol.py -f mem.vmem --profile=WinXPSP2x86 netscan 获取IE浏览器使用情况: vol.py -f mem.vmem --profile=WinXPSP2x86 iehistory 查看缓存在内存的注册表: vol.py -f /root/桌面/quzheng/mem.vmem --profile=WinXPSP2x86 hivelist 获取内存中的系统密码,我们可以使用 hashdump 将它提取出来 volatility -f mem.vmem –profile=WinXPSP2x86 hashdump -y (注册表 system 的 virtual 地址 )-s (SAM 的 virtual 地址) 这里的两个virtual可以通过hivelist获取到 对于本题来说还是没有什么线索,看了大佬的博客才知道进程里的TrueCrypy.exe是一款磁盘加密的程序,于是推断另一个suspicion文件是一个由此程序加密后的文件 下载Elcomsoft Forensic Disk Decryptor工具 使用dump下的数据对suspicion文件进行解密: 在dmp文件中找到可用的key 将磁盘挂载到本地: 在本地的F盘发现flag

例题二:

打开后是个img镜像: 第一步依然是使用猜解镜像系统: 这个镜像在猜解的时候第一个运行psscan会报错,所以继续试下去使用Win2003SP2x86恢复正常 并没有发现特别可疑的程序,dump一下屏幕截图 在其中一张截图出发现一个名为DumPIT.exe的进程界面,还发现了一个名为flag.png的照片 回头去看一下进程列表,果然发现了这个进程,PID为3660,百度后发现这是一款内存取证程序 再文件检索一下flag.png 文件存在,导出来 打开发现是一个二维码文件 扫描后得到一串类似于base64编码的字符串,但使用base64解码后发现乱码:jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4= 思路暂时断了,去看了下wp,由于在截图中看到flag.png是用windows照片管理器打开的,但并没看到这个进程,于是尝试导出文件资源管理explorer.exe的内存尝试一下,在psscan的回显里得到explorer.exe的PID为1992 使用foremost分离文件 在/output/png中找到四个图片,其中一张图片上含有key和iv值,明显是AES的特征 得到flag

总结:

取证题目首先需要判断给出的镜像文件后缀,若为内存取证则先猜解镜像的系统,确定系统后对进程、截图、文件等信息进行收集,将可疑内存dump出来,对可能的方向进行分析,若与磁盘取证或图片、编码等结合则进一步利用工具进行解密。