misc-取证分析

通过分析计算机系统运行产生的记录内容,对其进行复现从而实现取证
前言
这里会提供一些来自buuctf的案例
这章的WP之后再写,先偷个懒(๑•́ ₃•̀๑)
工具介绍
提供的工具若未破解或链接已挂,请自行搜索破解版使用
TrIDNet 文件识别工具
DiskGenius 磁盘管理与数据恢复工具(windows)
ext3grep 恢复工具(kali-ext3)– apt install ext3grep
extundelete 恢复工具(kali-ext4)– apt install extundelete
volatility 基于python的内存取证工具
VeraCrypt 开放源代码磁盘加密软件
NtfsStreamsEditor 2 NTFS隐写工具
磁盘取证
文件系统
磁盘分区
windows主流为FAT和NEFS(FAT12 -> FAT16 -> FAT32 -> NTFS),linux常见文件系统为Ext2、Ext3、Ext4(EXT2 -> EXT3 -> EXT4)
FAT:文件分配表,记录文件所在位置的表格。FAT文件系统用“簇”作为数据单元,用户文件和目录都存储在簇中。
NTFS:新技术文件系统,是WindowsNT环境的文件系统,一个日志文件系统,保存磁盘写入信息外还会对所有改变保留一份日志。
比较:NTFS能够很快恢复正常,且不易丢失数据,替代了老式的FAT文件系统。
Ext:Linux扩展文件系统。Ext2被称作索引是文件系统,Ext3/Ext4被称作日志文件系统
取证方法
CTF中往往会拿到一个无扩展名或者是和文件系统相关扩展名的文件,可以先通过Linux的file命令或者windows的TrIDNet工具识别文件类型,若是磁盘镜像,基本就是磁盘取证了
使用TrIDNet 工具识别文件类型
file命令
windows下使用DiskGenius 恢复数据(需要恢复的数据是windows环境的)
可以保存下来查找,也可以直接点击查找(挂载)
linux下使用ext3grep(ext3)、extundelete(ext4)恢复工具(需要恢复的数据是linux环境的)
Ext3文件系统删除文件其实只是删除了inode节点中的指针,数据仍在block中,重新恢复inode指向即可恢复文件
linux的挂载
mount挂载镜像
1 | mount 文件名 自定义目录 #挂载镜像 |
以下是部分演示
ext3grep
1 | ext3grep 文件名 --inode 2 -ls #从系统根目录开始查找文件,并列出所有课恢复的数据 |
带有d标志的是已经删除的文件
1 | ext3grep 文件名 --dump-names |grep "flag" #查找被删除文件中过滤的flag文件名 |
1 | ext3grep 文件名 --restore-file 目录/文件名 #恢复删除的文件,并再当前目录下生成一个文件夹存放 |
extundelete
1 | extundelete 文件名 --restore-all #恢复所有被删除的文件 |
内存取证
内存取证通常是指对计算机等智能设备运行时内存中存储的临时数据进行获取与分析,提取有价值的数据
在CTF比赛中,内存取证往往是提供一个完整的内存镜像,所以说看到提供的附件很大,就可以直接判断是内存取证了
volatility 工具,当遇到扩展名为raw、img、dmp、vmem等时,就可以直接开始使用进行内存取证了
volatility
volatility常见参数
1 | Options: |
常见插件命令
插件命令 | 说明 |
---|---|
clipboard | 提取Windows剪贴板中的内容 |
cmdscan | 提取执行的命令行历史记录(扫描_COMMAND_HISTORY信息) |
dumpfiles | 查看指定文件内容(导出缓存文件) |
envars | 显示进程的环境变量 |
filescan | 提取文件对象(file objects)池信息(扫描文件) |
hashdump | 转储内存中的Windows帐户密码哈希(LM/NTLM) |
imageinfo | 查看/识别镜像信息 |
mimikatz | 提取明文密码 |
netscan | 查看网络连接状态 |
notepad | 查看展示的记事本内容 |
editbox | 查看编辑内容 |
pstree | 将进程显示为树状列表 |
screenshot | 获取系统在此刻的截图 |
命令实例
参考题目–[10.2.1 volatility介绍]内存取证
查看/识别镜像信息
1 | vol.py -f 文件名 imageinfo |
kali
windows
指定镜像版本并filescan扫描文件再过滤输出
1 | vol.py -f 文件名 --profile=镜像版本 filescan | grep "文件名" |
指定镜像版本并dumpfiles指定文件,指定内存中的偏移量并导出到当前文件夹下面的test目录
1 | vol.py -f 文件名 --profile=镜像版本 dumpfiles -Q 偏移量 -D 保存路径 |
- Title: misc-取证分析
- Author: ZJ
- Created at : 2024-09-25 00:00:00
- Updated at : 2025-01-17 01:46:47
- Link: https://blog.overlordzj.cn/2024/09/25/ctf/data/misc/取证分析/
- License: This work is licensed under CC BY-NC-SA 4.0.