当前位置: 首页 > news >正文

CTF misc之数字取证

0x01 磁盘取证

文件系统粗略的可以分为以下几类:

  • Windows: FAT12 -> FAT16 -> FAT32 -> NTFS
  • Linux: EXT2 -> EXT3 -> EXT4
  • VMDK
  • 磁盘镜像

工具也有很多,列举些常见的软件工具:

  • Elcomsoft Forensic Disk Decryptor
  • Veracryto
  • AutoPsy
  • DiskGenuis
  • Winhex
  • 取证大师

下面用些例子来熟悉下软件

file

在这里插入图片描述
用这个题来举例,题目都提示了,先用file命令看看
在这里插入图片描述
是个ext4文件的格式,先用mount挂载下,mount attachment.img /mnt
在这里插入图片描述
都是些图片,没看出啥内容出来
在这里插入图片描述
命令行看到了一个lost+found,这里需要安装一个软件extundelete,但是它在官方源中不存在,需要先更新了内网源以后再进行安装

cat /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free

完了以后apt update就可以使用apt install extundelete装了。
在这里插入图片描述
提示先取消挂载,umount /mnt,接着命令extundelete attachment.img --inode 2 去从根目录进行扫描,这里简单说明一下

在 extundelete 命令中使用 --inode 2 是为了指定要操作的文件系统对象的 inode 号。
在 Linux 文件系统中,inode 是一个重要的数据结构,它存储了文件或目录的元数据(如权限、时间戳、数据块位置等),但不包含文件名。每个文件或目录在文件系统中都有唯一的 inode 号。为什么是 inode 2?
inode 2 是根目录
在 ext2/ext3/ext4 文件系统中,inode 号为 2 的 inode 始终对应根目录(/)。当你想恢复整个文件系统或查看所有可恢复的文件时,需要从根目录开始扫描。
恢复目录结构
通过指定根目录的 inode(--inode 2),extundelete 会递归扫描根目录下的所有子目录和文件,列出所有可恢复的内容。如果不指定 inode,extundelete 默认只处理当前工作目录,可能会漏掉其他目录中的文件。
查看文件系统全貌
使用 --inode 2 可以查看整个文件系统中所有被删除但尚未被覆盖的文件,无论它们位于哪个目录。这对于误删除文件的恢复非常有用。其他常用 inode 号
inode 1:通常是坏块表(bad blocks list)
inode 2:根目录(/)
inode 3:通常是 /lost+found 目录
inode 4 及以上:普通文件和目录如果你只想恢复特定目录中的文件,可以指定该目录的 inode 号(例如,恢复 /tmp 目录中的文件,先找到 /tmp 的 inode 号,再使用 --inode <tmp_inode>)。但对于全面恢复,--inode 2 是最常用的选项。

在这里插入图片描述
使用指令进行恢复extundelete attachment.img --restore-file .cat.jpg,这里应该还可以使用--restore-all参数来恢复所有
在这里插入图片描述
恢复好了以后进入到目录并查看
在这里插入图片描述
file .cat.jpg查看文件内容
在这里插入图片描述
发现上是data内容,直接读看看
在这里插入图片描述
成功获取flag

VOL

通过dumpveracryto进程
在这里插入图片描述
使用Elcomsoft Forensic Disk Decryptor挂载,下称EFDD,按下述流程来走
在这里插入图片描述
下一步
在这里插入图片描述
下一步
在这里插入图片描述
下一步
在这里插入图片描述
下一步
在这里插入图片描述
mount就可以了
在这里插入图片描述
打开挂载好的盘,获得key
在这里插入图片描述
接着在用这个key挂到veracryto
在这里插入图片描述
挂好了以后,可以得到一个装有flag的压缩包在这里插入图片描述
用题目压缩包注释里面的密码打开就可以了
在这里插入图片描述

【DASBOOK】[第十章][10.1.2 磁盘取证方法]磁盘取证

下载的文件没有后缀,直接用file命令查看
在这里插入图片描述
显示是ext3文件格式,执行extundelete atta.01- --inode 2
在这里插入图片描述
发现有非常多的deleted文件,直接全restore了,mkdir atta ; extundelete atta.01- --inode 2 --restore-all -o atta;cd atta
在这里插入图片描述
嗯,huas.txt里面有个key,可惜不是正确的flag
在这里插入图片描述
对比着可以看到少恢复了flag.txt文件,这里就很奇怪,不过换了个工具就可以了,autopsy,按步骤导入后就可以找到这个flag.txt
在这里插入图片描述
解码后,就可以拿到正确的flag
在这里插入图片描述

0x02 内存取证

【DASBOOK】[第十章][10.2.1 volatility介绍]内存取证

在这里插入图片描述
先分析这个Keyboard.raw
在这里插入图片描述
确定是win的内存镜像,根据题意接着找一下关键字

./vol.py -f Keyboard.raw  windows.filescan.FileScan | grep -iE "flag|keyboard" 

在这里插入图片描述
这里发现了一个t.txtdump一下
在这里插入图片描述
在这里插入图片描述
这个拼音加英文真是服了,这意思就是有个ABC加密,解密下就行了,但是没有找到ABC,只找了一个QWE
在这里插入图片描述

def search(x):return {'q': 'a', 'w': 'b', 'e': 'c', 'r': 'd', 't': 'e', 'y': 'f', 'u': 'g', 'i': 'h', 'o': 'i','p': 'j', 'a': 'k', 's': 'l', 'd': 'm', 'f': 'n', 'g': 'o', 'h': 'p', 'j': 'q', 'k': 'r','l': 's', 'z': 't', 'x': 'u', 'c': 'v', 'v': 'w', 'b': 'x', 'n': 'y', 'm': 'z',}.get(x, x)if __name__ == "__main__":crypto = 'CTKQEKNHZHQLLVGKROLATNWGQKRRKQGWNTA'crypto = crypto.lower()upper_i = ""for i in crypto:print(search(i), end='')upper_i += search(i)print()print(upper_i.upper())"C:\Program Files\Python39\python.exe" "D:\Programs\Pycharm for python\CTF\crypto_qwe.py" 
veracryptpasswordiskeyboarddraobyek
VERACRYPTPASSWORDISKEYBOARDDRAOBYEK

提示运行结束的提示,需要使用veracrypt软件了,记得用大写密码KEYBOARDDRAOBYEK
在这里插入图片描述
打开以后还有一个here.vhd磁盘
在这里插入图片描述
直接在windows中挂载,打开以后有个隐藏文件
在这里插入图片描述
这种时候就得上linux了,大概还是ntfs data文件流,用7z x here.vhd 解压
在这里插入图片描述
成功获取flag

http://www.dtcms.com/a/287550.html

相关文章:

  • 我做的基础服务项目,是如何实现 API 安全与限流的(短信、邮件、文件上传、钉钉通知)
  • lazyvim配置
  • 教育科技产品设计:从公司背景到 MVP 方案的落地思路
  • laravel RedisException: Connection refused优雅草PMS项目管理系统报错解决-以及Redis 详细指南-优雅草卓伊凡
  • 传统行业和AIGC的结合及应用
  • Spring AI 项目实战(十八):Spring Boot + AI + Vue3 + OSS + DashScope 实现高效语音识别系统(附完整源码)
  • PyQt5—Qt QDialog 学习笔记
  • 【RK3576】【Android14】SDK源码编译
  • 【RK3576】【Android14】UART开发调试
  • JavaScript基础语法和简单数据结构
  • 【小沐学GIS】基于Rust绘制三维数字地球Earth(Rust、OpenGL、GIS)
  • RPC(Remote Procedure Call,远程过程调用)介绍
  • MySQL数据丢失救援办法
  • 下一场范式革命:Transformer架构≠最终解法
  • 《全栈博客系统的技术肌理:从接口构建到体验升维的实践路径》
  • 美国VPS服务器Linux内核参数调优的实践与验证
  • 第二次总结(xss、js原型链)
  • 【2025最新】使用neo4j实现GraphRAG所需的向量检索
  • OAIF:基于在线 AI 反馈的语言模型直接对齐
  • [MarkdownGithub] 使用块引用高亮显示“注意“和“警告“和其他注意方式的选项
  • Django母婴商城项目实践(九)- 商品列表页模块
  • vue2 面试题及详细答案150道(121 - 130)
  • [Python] -实用技巧10- 时间处理:datetime 和 time 模块入门
  • React 的 `cache()` 函数
  • 使用 Gunicorn 部署 Django 项目
  • XSS相关理解
  • Ubuntu20.04 samba配置
  • 针对大规模语言模型的上下文工程技术调研与总结(翻译并摘要)
  • 考研复习-数据结构-第七章-查找
  • 论文略读:Are Large Language Models In-Context Graph Learners?