)
文档网络安全教程【免费下载链接】ctf-wikiCome and join us, we need you!项目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki点击查看免费下载导读磁盘取证Disk Forensics是 CTF Misc 方向的重要题型其核心能力在于通过文件头Magic Bytes识别文件类型、理解常见压缩文件系统与磁盘分区结构、使用 Linux 回环设备与挂载机制提取镜像内容并在最后阶段完成损坏文件头的修复。本篇以 CTF-Wiki 仓库中 磁盘内存分析 - 题目 记录的 2018 网鼎杯第一场 Misc 题clip为完整实战案例从零到一拆解识别 cloop 压缩文件系统 → 重构正常文件头 → 解压提取 ext4 镜像 → 回环挂载 → 修复 flag 图片的全链路解法。读完本文你将掌握 cloop 这一类古老 Linux 压缩设备的取证方法、losetup/mount回环挂载的排错技巧以及基于 PNG 文件结构 的文件头修复思路。一、题目背景与整体解题思路题目clip给出的是一份损坏的镜像文件。拿到文件后首先需要用十六进制编辑器如 010 Editor或file/binwalk命令做初步鉴定。原始解题过程见 problem.md显示通过 010 Editor 观察文件头部可以看到cloop字样这提示该文件是一个古老的 Linux 压缩设备镜像cloop 压缩文件系统而题目提示设备损坏意味着文件头存在异常无法直接被内核识别为合法的压缩块设备。整体解题链路可以概括为四条主线类型鉴定用 010 Editor 查看文件头发现cloop特征字符串还原参照用mkisofscreate_compressed_fs自行压缩一个正常的 cloop 文件作为对照比对出损坏文件的头部差异并修复解压提取用extract_compressed_fs从修复后的 cloop 文件中解出底层文件系统镜像本机为 ext4挂载与收尾通过losetup将 ext4 镜像挂载为回环设备并mount读取目录得到多张图片最后按 PNG 文件头规范修复 flag 图片缺失的文件头字节。二、第一步识别 cloop 压缩文件系统2.1 通过 010 Editor 查看文件头010 Editor 是 取证隐写前置技术 中重点推荐的十六进制文件编辑器其核心优势在于可以用模板解析二进制文件结构从而快速定位文件内部的字段。在本例中直接在文件偏移 0 附近即可看到cloop字样通过010 editor 可以看到文件的头部包含有 cloop 字样2.2 cloop 是什么cloopCompressed Loop是 Linux 上一种将压缩后的文件系统镜像以块设备形式加载的机制其理念与压缩的文件系统 回环设备相同先压缩整个文件系统镜像再通过内核模块cloop驱动在访问时动态解压。这类技术多见于早期的 Live CD、嵌入式 Linux 发行版等场景如今已经比较古老因而成为 CTF 出题人偏好的冷门考点——识别出它比解出它更难。配合file命令与binwalk可以进一步佐证文件类型prefix.md 中提到file命令根据文件头魔法字节识别文件类型binwalk则可以基于文件头特征扫描文件中夹杂的其他文件。在真实解题时可以先执行file clip binwalk clip观察输出是否提示 cloop / Compressed Loop 相关信息再结合 010 Editor 的肉眼确认。三、第二步用 mkisofs create_compressed_fs 生成正常参照文件题目明确说设备损坏了那么最直接的思路是自己制造一个正常的 cloop 文件作为对照逐字节比对出差异所在。原文档给出的压缩命令是mkisofs -r test | create_compressed_fs - 65536 test.cloop参数含义拆解如下命令/参数作用mkisofs -r test将目录test制作成 ISO 9660 文件系统镜像-rRock Ridge用于保留 Unix 权限、属主等扩展信息create_compressed_fs - 65536从标准输入读取 ISO 镜像并压缩为 cloop 格式-表示从 stdin 读取65536为块大小单位字节即按 64KB 分块压缩 test.cloop将压缩结果重定向输出为文件对照样本生成后与损坏文件比对即可定位源文件文件头存在问题的具体字节进而将其修复为与正常 cloop 文件一致的头部结构。四、第三步extract_compressed_fs 解出底层文件系统cloop 本质上是一个压缩容器内部包裹的是真实的文件系统镜像。解包操作不需要内核模块直接使用配套的用户态工具extract_compressed_fs即可extract_compressed_fs test.cloop now该命令将test.cloop中压缩的镜像解压并输出到名为now的文件中。原文档随后说明得到一个 ext4 类型的文件即解压产物是一个完整的 ext4 文件系统镜像——这与 磁盘内存分析 中概述的 Linux 分区格式演化EXT2 → EXT3 → EXT4一致也再次印证了cloop 内部包裹的是标准 Linux 文件系统这一结构事实。五、第四步losetup 回环挂载 ext4 镜像拿到 ext4 镜像后下一步是读取其内容。由于它不是一个可直接访问的目录需要借助 Linux 的**回环设备loop device**机制将其虚拟为块设备后再挂载。原始解题过程完整记录了挂载时的排错经历这里逐条还原并解释# 尝试卸载detach可能残留占用的 /dev/loop0 losetup -d /dev/loop0 losetup: /dev/loop0: detach failed: Permission denied # 普通用户无权限需要 sudo sudo losetup -d /dev/loop0 # 直接指定镜像文件关联到 /dev/loop0却报Device or resource busy sudo losetup /dev/loop0 now losetup: now: failed to set up loop device: Device or resource busy sudo losetup /dev/loop0 /home/iromise/ctf/2018/0820网鼎杯/misc/clip/now losetup: /home/iromise/ctf/2018/0820网鼎杯/misc/clip/now: failed to set up loop device: Device or resource busy # 使用 losetup -f 让系统自动分配一个空闲的回环设备编号 losetup -f /dev/loop10 # 将镜像关联到空闲设备 /dev/loop10 sudo losetup /dev/loop10 /home/iromise/ctf/2018/0820网鼎杯/misc/clip/now # 挂载到 /mnt/now 并查看内容 sudo mount /dev/loop10 /mnt/now cd /mnt/now ls clip-clip.png clip-clop.png clop-clip.png clop-clop.jpg flag.png这段日志透露出三个实战要点回环设备是共享的系统资源/dev/loop0已被占用Device or resource busy手动指定编号容易撞车正确做法是用losetup -f获取第一个空闲设备本例得到/dev/loop10权限问题loop 设备的 detach / attach 均需要 root 权限普通用户执行会得到Permission denied挂载成功后镜像内容可见目录下出现clip-clip.png、clip-clop.png、clop-clip.png、clop-clop.jpg与flag.png题目名clip与这几张图片的命名clip/clop 排列组合形成呼应flag 就藏在最后一张 PNG 中。六、第五步按 PNG 文件头规范修复 flag最后一步是修复 flag 图片。原文档的结论是就是少了文件头那几个字符。为什么缺少文件头就无法显示 flag这需要结合 PNG 文件格式 来理解PNG 文件头总是由固定的 8 字节魔数描述即89 50 4E 47 0D 0A 1A 0A对应 ASCII 为\x89PNG\r\n\x1a\n其后才是 IHDR、IDAT、IEND 等数据块。若文件开头丢失了这 8 个字节图片查看器将无法识别其类型自然无法正常渲染出隐藏的 flag。修复方法就是对照标准 PNG 魔数用 010 Editor 在文件头部补齐缺失字节。修复时可参考 prefix.md 中给出的file命令验证手法修复后用file检查输出是否恢复为PNG image data, ...若恢复正常则说明文件头修复成功。此外仓库中 png.md 还记录了更进一步的考点若 IHDR 中的宽高被篡改还可通过 CRC32 爆破恢复正确的宽高值这类技巧在本系列图片隐写题中同样常见。七、方法论总结磁盘取证题目的一般化套路从clip这道题可以提炼出磁盘取证题目通用的解题框架与 磁盘内存分析 中的知识体系互相印证阶段核心动作关键工具/命令类型鉴定读文件头 / 魔法字节识别分区格式与压缩容器010 Editor、file、binwalk结构理解明确 FAT/NTFS、EXT2/3/4、VMDK、cloop 等结构特征十六进制模板、文件结构文档修复损坏生成正常参照文件逐字节比对修补头部mkisofs、create_compressed_fs、010 Editor提取内容解压容器、挂载磁盘/镜像extract_compressed_fs、losetup、mount隐写收尾修复图片文件头或结合 LSB、CRC 爆破等提取隐藏信息010 Editor、file、png.md 中的修复脚本值得注意的是cloop 与 VMDK 类似都属于容器型格式VMDK 本质上是物理硬盘的虚拟版隐藏数据可以藏进分区与扇区的填充区域而 cloop 则是压缩的 ext4 镜像 块设备访问的组合。理解文件系统/磁盘镜像可以被另一层格式包裹这一思想是破解此类嵌套型取证题的关键。对更进一步的磁盘隐写可继续阅读 introduction.md 中的 VMDK 数据隐藏手法以及删除文件目录表中文件名第一字节被置为e5等文件系统取证细节。参考文档仓库内本篇核心题解磁盘内存分析 - 题目磁盘与内存取证知识总览磁盘内存分析取证前置技能010 Editor、file、binwalk、Python struct 处理二进制取证隐写前置技术PNG 文件头与修复依据PNG 文件格式分析赞分享文档网络安全教程【免费下载链接】ctf-wikiCome and join us, we need you!项目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki点击查看免费下载相关推荐CTF 磁盘取证实战cloop 压缩块设备识别、修复与挂载2018 网鼎杯 clip 题解CTF 磁盘取证实战cloop 压缩块设备识别、修复与挂载2018 网鼎杯 clip 题解 本文以 CTF Wiki 仓库中 2018 网鼎杯第一场 cl文档网络安全教程CTF 磁盘与内存取证分析指南基于 ctf-wiki 的 Forensic 实战入门CTF 磁盘与内存取证分析指南基于 ctf wiki 的 Forensic 实战入门 取证Forensic是 CTF Misc 中最核心的板块之一现实世文档网络安全教程WSL存储配置磁盘镜像、文件系统和挂载选项的优化WSL存储配置磁盘镜像、文件系统和挂载选项的优化 引言为什么WSL存储性能至关重要 你是否曾经遇到过在WSLWindows Subsystem for操作系统虚拟化系统编程网络上一篇终极像素笔刷自定义指南PixiEditor扩展开发进阶教程下一篇RAGapp界面快捷键提升操作效率的隐藏技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考