隐写术
英文: Steganography.
隐写术是一门关于信息隐藏的技巧与科学, 用于秘密传递信息和电子水印.
确定文件类型
对文件进行分析.
CTF
若识别文件类型后使用相应软件无法打开可能是头部的 magic 数字缺失, 在文件头部添加对应的 magic 数字即可. 文件类型可能会通过文件名字暗示.
文件分离
识别并分离又多个文件合成的单个文件.
自动分离
binwalk 只是将附加的文件分离出来, 不包含第一个文件.
若 binwalk 无法成功识别和分离, 可以使用 foremost:
foremost 并没有在标准输出中直接给出有价值的信息, 而是写入到了输出目录中的 audit.txt
文件里.
手动分离
当多个文件数据不是简单的依次追加在文件末尾时, 自动分离便会失效或输出无效内容. 这时需要进人工动分析并手动分离.
将 in_file
中从 block_skip * block_size
处开始大小为 block_size * block_count
的数据写入到 out_file
中.
若数据不是一块一块的, 则可以将 block_size
设置为 1(默认单位为字节), 这样 block_count
就表示要导出的字节数, block_skip
表示要跳过的字节数.
文件合并
CTF 文件内容隐写
直接把 ASCII 编码的 flag 塞到二进制文件中, 可以通过搜索关键字查找.
图片
针对图片文件的隐写需要先对图片文件大致的格式有基础的了解, 才能知道哪些地方可以藏数据且不破坏原本的图像或使人无法察觉.
图片文件可能包含一下几个部分:
- 文件头部, 包含了数据部分长度和图像的属性, 如 Exif, GPS.
其中一部分并不影响图像解析的数据可以用于隐藏数据. 看利用图片查看器, 文件属性查看器或 ExifTool 来进行查看.
影响图像显示的属性(如图像大小), 也可以用于隐藏数据. - 数据部分, 包含了图像具体的数据.
在这部分隐藏数据一定会影响到图像, 但可以使用 LSB 来使人无法察觉. - 尾部.
部分图片格式还包含了其他部分, 因此也有专门的藏数据的方法.
CTF
图片无法正常显示可能是图片属性的校验值错误, 需要更正校验值. 也有可能是图片大小不正确导致计算出的校验值错误.
LSB(Least Significant Bit)
LSBR(LSB Replacement)
通过改写每个像素的颜色的最后几个比特来隐藏数据.
以 256 位值表示一个颜色为例, 修改最后 2 比特对原值造成的变动在区间 [0, 2^2 - 1] 即 [0, 3] 内. 每个像素单个颜色的变化率大约在 0%~1% 之间, 因此肉眼不易察觉.
若图片是通过相机拍照得到的, 则会不可避免的存在相机底噪. 使得最低为为 0 和 1 的概率分别趋近于 0.5. 使用 LSBR 在图像的最低位被替换为一定量的数据后, 则会破坏统计特性.
分析
StegSolve 可以以更细的粒度(颜色通道, 具体的位)对图像进行操作.
- File Format 查看文件信息.
- Data Extract 用于分析使用 LSB 隐藏数据的图像.
- Frame Browser 逐帧查看图像.
- Image Combiner 对两张图片进行加减或位运算操作并显示结果.
zsteg 可以自动检测 LSB 并输出结果, 疑似有效的结果会高亮显示. 该工具可以通过以下指令安装:
CTF
CTF 图像相关的题目也可能直接将图像进行加密, 应先使用 stegdetect 检测加密方式, 然后再使用对应的解密工具和密钥进行解密.
调色板
别名: EzStego.
部分图片格式会使用调色板, 如 PNG, GIF.
BPCS (Bit-Plane Complexity Segmentation)
抗干扰
由于图片传递的过程可能被二次加工 (如压缩/滤镜/缩放等), 使隐写的数据具备一定抗干扰能力也十分重要.
- 抗干扰: JSteg, F5.
- 不抗干扰: LSB, 调色板.
常见文件格式头尾
图片
类型 | 文件头 | 文件尾 |
---|---|---|
JPEG | FF D8 FF | FF D9 |
PNG | 89 50 4E 47 0D 0A 1A 0A | AE 42 60 82 |
GIF | 47 49 46 38 39(37) 61 | 00 3B |
BMP | 42 4D | |
TIFF(tif) | 49 49 2A 00 | |
ico | 00 00 01 00 | |
Adobe Photoshop (psd) | 38 42 50 53 | |
TGA | 未压缩 00 00 02 00 RLE压缩 00 00 10 00 00 |
Office
类型 | 文件头 |
---|---|
MS Word/Excel(xls.or.doc) | D0 CF 11 E0 |
MS Access(mdb) | 53 74 61 6E 64 61 72 64 20 4A |
WordPerfect(wpd) | FF 57 50 43 |
Adobe Acrobat(pdf) | 25 50 44 46 2D 31 2E |
application/vnd.visio(vsd) | D0 CF 11 E0 A1 B1 1A E1 |
Email [thorough only] (eml) | 44 65 6C 69 76 65 72 79 2D 64 61 74 65 3A |
Outlook Express(dbx) | CF AD 12 FE C5 FD 74 6F |
Outlook(pst) | 21 42 44 4E |
Rich Text Format(rtf) | 7B 5C 72 74 66 |
txt | Unicode:FE FF / Unicode big endian:FF FE / UTF-8:EF BB BF / ANSI无文件头 |
压缩包
类型 | 文件头 | 文件尾 |
---|---|---|
ZIP Archive (zip) | 50 4B 03 04 | 50 4B |
RAR Archive (rar) | 52 61 72 21 |
音频文件
类型 | 文件头 |
---|---|
Wave (wav) | 57 41 56 45 |
audio (Audio) | 4D 54 68 64 |
audio/x-aac (aac) | FF F1(9) |
视频文件
类型 | 文件头 |
---|---|
AVI (avi) | 41 56 49 20 |
Real Audio (ram) | 2E 72 61 FD |
Real Media (rm) | 2E 52 4D 46 |
MPEG (mpg) | 00 00 01 BA(3) |
Quicktime (mov) | 6D 6F 6F 76 |
Windows Media (asf) | 30 26 B2 75 8E 66 CF 11 |
MIDI (mid) | 4D 54 68 64 |
代码文件
类型 | 文件头 |
---|---|
XML (xml) | 3C 3F 78 6D 6C |
HTML (html) | 68 74 6D 6C 3E |
Quicken (qdf) | AC 9E BD 8F |
Windows Password (pwl) | E3 82 85 96 |
其他类型
类型 | 文件头 |
---|---|
Windows证书文件 (der) | 30 82 03 C9 |
CAD (dwg) | 41 43 31 30 |
Windows Shortcut (lnk) | 4C 00 00 00 |
Windows reg (reg) | 52 45 47 45 44 49 54 34 |