隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。隐写术的英文叫做Steganography,来源于特里特米乌斯的一本讲述密码学与隐写术的著作Steganographia,该书书名源于希腊语,意为“隐秘书写”。
常用的工具:
在隐写题目中,首先要介绍的知识点就是文件头,文件头是位于文件开头的一段承担一定任务的数据。一般都在文件开头的部分。文件头一般是系统判断文件类型的重要标准,尤其是当我们遇到需要修复文件的题目时,更加需要堂握常见文件的头部和尾部标识
16进制编辑器
十六进制编辑器,用来以16进制视图进行文本编辑的编辑工具软件。十六进制编辑器可以用来检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等,如010
Editor,Winhex等都是功能比较强大的十六进制编辑器,推荐使用010 Editor,内置有很多模板,分析比较方便。
file
Linux系统自带工具,用来快速查看文件类型。常用方式:file 文件名称
Binwalk
Binwalk是一个自动提取文件系统,该工具最大的优点就是可以自动完成指定文件的扫描,智能发掘潜藏在文件中所有可疑的文件类型及文件系统。相比于之前介绍的file命令行工具来说,file只是从文件的第一个字节开始识别,且只能把一个文件识别成一个类型的文件,很难看出是否隐藏着其他的文件,Binwalk就能很好的完成这项任务。
Binwalk快速提取文件命令: binwalk -e
文件名称
foremost
foremost是基于文件开始格式,文件结束标志和内部数据结构进行恢复文件的程序。该工具通过分析不同类型文件的头、尾和内部数据结构。同镜像文件的数据进行比对,以还原文件。它默认支持19种类型文件的恢复。用户还可以通过配置文件扩展支持其他文件类型。有时候binwalk无法正确分离出文件,这时候也可以尝试使用foremost分离。
分离常用命令: foremost 文件名称 -o 可以分离文件
dd
前面介绍的两种都是自动化分离工具,dd这个工具是一种半自动化工具,有的时候自动化工具不能实现文件的分离,所以需要用这个工具来进行分离。
分离常用命令:dd if=源文件名 bs=1 skip=开始分离的字节数 of=目标文件名
Stegsolve
CTF中,最常用来检测LSB隐写痕迹的工具是Stegsolve,这是一款可以对图片进行多种操作的工具,包括对图片进行xor,sub等操作,对图片不同通道进行查看等功能。
- Stegsolve基本功能:
- File Format:文件格式,这个主要是查看图片的具体信息
- Data Extract:数据抽取,图片中隐藏数据的抽取
- Frame Browser:帧浏览器,主要是对GIF之类的动图进行分解
- Image Combiner:拼图,图片拼接
Stegdetect
Stegdetect程序主要用于分析JPEG文件,可以检测到通过JSteg、JPHide、OutGuess、Invisible
Secrets、F5、appendX和Camouflage等
这些隐写工具隐藏的信息,Steadetect通过统计测试来分析图像文件中是否包含隐藏内容,它运行静态测试以判断隐藏的内容是否存在。此外它还会尝试识别隐藏内容是通过哪个隐写工具嵌入的
常用命令: stegdetect -s 10.0 文件名