MISC 之 数字取证 && 隐写分析

一、基本介绍

Misc 是英文 Miscellaneous 的前四个字母,杂项、混合体、大杂烩的意思。

Misc 在国外的比赛中其实又被具体划分为各个小块,有 Recon、Forensic、Stego、Misc等等

在国内的比赛中,被统一划分入 Misc 领域,有时 Crypto(尤其是古典密码)也被划入其中。

Misc 的题目所需要的知识技能主要有 3 个方面:

  • Recon(信息搜集):获取信息的渠道和一些搜索引擎的技巧

  • Encode(编码转换):在 CTF 比赛中一些常见的编码形式以及转换的技巧和常见方式

  • Forensic && Stego(数字取证 && 隐写分析):隐写取证是 Misc 中最为重要的一块,包括文件分析、隐写、内存镜像分析和流量抓包分析等等,涉及巧妙的编码、隐藏数据、层层嵌套的文件中的文件,灵活利用搜索引擎获取所需要的信息等等。

隐写取证是 Misc 中最为重要的一块,题目类型大概有: - 图片分析 - 压缩包分析 - 流量包分析 - 音频隐写 - 内存镜像分析

二、图片分析

图像文件有多种复杂的格式,可以用于各种涉及到元数据、信息丢失和无损压缩、校验、隐写或可视化数据编码的分析解密,都是 Misc 中的一个很重要的出题方向。

  • 元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(Data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据中隐藏信息在比赛中是最基本的一种手法,通常用来隐藏一些关键的 Hint 信息或者是一些重要的如 password 等信息。

PNG

  • 文件格式:

    对于一个 PNG 文件来说,其文件头总是由位固定的字节来描述的,剩余的部分由 3 个以上的 PNG 的数据块(Chunk)按照特定的顺序组成。

    1
    文件头 89 50 4E 47 0D 0A 1A 0A + 数据块 + 数据块 + 数据块……
    
  • PNG 定义了两种类型的数据块,一种是称为关键数据块(critical chunk),这是标准的数据块,另一种叫做辅助数据块(ancillary chunks),这是可选的数据块。

  • 4 个标准数据块:文件头数据块 IHDR、调色板数据块 PLTE、图像数据块 IDAT、图像结束数据 IEND等。

例题 1 String

例题 2 zip_file

例题 3 pure_color

三、压缩包分析

zip

  • 文件格式:

ZIP 文件主要由三部分构成,分别为

压缩源文件数据区 核心目录 目录结束
local file header + file data + data descriptor central directory end of central directory record
  • 压缩源文件数据区中每一个压缩的源文件或目录都是一条记录,其中

  • local file header :文件头用于标识该文件的开始,记录了该压缩文件的信息,这里的文件头标识由固定值 50 4B 03 04 开头,也是 ZIP 的文件头的重要标志

  • file data :文件数据记录了相应压缩文件的数据
  • data descriptor :数据描述符用于标识该文件压缩结束,该结构只有在相应的 local file header 中通用标记字段的第 3 bit 设为 1 时才会出现,紧接在压缩文件源数据后

  • Central directory 核心目录

记录了压缩文件的目录信息,在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据。 - 核心目录部分摘录

Offset Bytes 描述
0 4 核心目录文件 header 标识 =(0x02014b50)
4 2 压缩所用的 pkware 版本
6 2 解压所需 pkware 的最低版本
8 2 通用位标记伪加密
10 2 压缩方法
12 2 文件最后修改时间

例题 4 zip伪加密

四、流量包分析

通常比赛中会提供一个包含流量数据的 PCAP 文件,有时候也会需要选手们先进行修复或重构传输文件后,再进行分析。

总的来说有以下几个步骤: - 总体把握:协议分级、端点统计 - 过滤赛选:过滤语法、Host,Protocol,contains,特征值 - 发现异常:特殊字符串、议某字段、lag 位于服务器中 - 数据提取:字符串取、文件提取

例题 5 被嗅探的流量

五、音频隐写

  • 波形

    通常来说,波形方向的题,在观察到异常后,使用相关软件(Audacity, Adobe Audition 等)观察波形规律,将波形进一步转化为 01 字符串等,从而提取转化出最终的 flag。

例题 6 来首歌吧

本周训练题

  • LSB:

    LSB 全称 Least Significant Bit,最低有效位。PNG 文件中的图像像数一般是由 RGB 三原色(红绿蓝)组成,每一种颜色占用 8 位,取值范围为 0x00 至 0xFF,即有 256 种颜色,一共包含了 256 的 3 次方的颜色,即 16777216 种颜色。

    LSB 隐写就是修改 RGB 颜色分量的最低二进制位(LSB),每个颜色会有 8 bit,LSB 隐写就是修改了像数中的最低的 1 bit,而人类的眼睛不会注意到这前后的变化,每个像素可以携带 3 比特的信息。

平台: buuoj misc 分类 (按关键字搜索题目)

  1. 签到【易】

  2. 二维码 【易】

  3. N种解决方法【易】

  4. [SUCTF2018]single dog【易】