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 分类 (按关键字搜索题目)
-
签到【易】
-
二维码 【易】
-
N种解决方法【易】
-
[SUCTF2018]single dog【易】