CTF随笔——隐写术
一、什么是隐写术
隐写术就是“”隐写术是一门关于信息隐藏的技巧与科学,所谓信息隐藏指的是不让除预期的接收者之外的任何人知晓信息的传递事件或者信息的内容。隐写术的英文叫做Steganography,来源于特里特米乌斯的一本讲述密码学与隐写术的著作Steganographia,该书书名源于希腊语,意为“隐秘书写”。——维基百科
翻译成人话就是,我把原来的信息或者东西放在另外的不相干的东西里,这样不知情者就不会知道我真正想表达的东西,举个栗子,我想给妹子送情书,但是我不想让其他人知道我给妹子送情书,于是我把这封情书放在一个西瓜里,这样不知情的人就会以为我给妹子送西瓜而不是送情书了2333333……
(现在JPEG 2000可执行任意代码漏洞已经加入Stego(杂项)豪华漏洞套餐)
二、隐写术常用的工具
这里只列举一下我用过或知道的一部分工具,不全和有错误的地方还请各位大佬留言指正。
1、压缩软件
这个就很常见了,比如winrar,360压缩,7-zip等等……
2、十六进制读写器
隐写术用到的工具比较小众,这里只列举我常用的一些工具,后面会不定时更新~
1、HxD(Windows)
用于查看修改文件的16进制代码
2、hexeditor(Linux)
也是用于查看和修改文件的16进制代码
3、binwalk(Linux)
用来分析文件信息,可以轻易的查看文件中是否包含其他隐藏文件,简单用法:
Linux下使用命令操作
binwalk filename
分析构成
binwalk -e filename
自动解压已知文件格式
binwalk -D=[extension] filename
根据后缀名解压,比如-D=zip
等
4、StegSolve(Windows)
神器!能够对常见的图片格式进行偏移、LSB 提取、帧提取、像素偏移、数据提取,对两张图片进行结合等等,基本常见的分析需求都包含了。
5、Stegdetect(Windows)
用于检测 JPEG 文件中是否包含隐藏内容并尝试分析隐藏内容通过哪个隐写工具嵌入,使用方式:
stegdetect [-nqV] [-s <float>] [-d <num>] [-t <tests>] [file.jpg
...]- -q 仅显示可能包含隐藏内容的图像。
- -n 启用检查 JPEG 文件头功能,以降低误报率。如果启用,所有带有批注区域的文件将被视为没有被嵌入信息。如果 JPEG 文件的 JFIF 标识符中的版本号不是1.1,则禁用 OutGuess 检测。
- -s 修改检测算法的敏感度,该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比,算法敏感度的值越大,检测出的可疑文件包含敏感信息的可能性越大。
- -d 打印带行号的调试信息。
- -t 设置要检测哪些隐写工具(默认检测 jopi),可设置的选项如下: j 检测图像中的信息是否是用 jsteg 嵌入的。 o 检测图像中的信息是否是用 outguess 嵌入的。 p 检测图像中的信息是否是用 jphide 嵌入的。 i 检测图像中的信息是否是用 invisible secrets 嵌入的。
- -V 显示软件版本号。
官网打不开,可以上GitHub或者直接使用一个编译好的Windows版本
6、Outguess(Windows)
这个是用来提取 JPEG 文件中使用 Outguess 算法的加入的隐藏信息,GitHub 或者编译好的Windows版本
7、JPHS(Windows)
用于对 JPEG 文件进行 Jhide 算法的隐写或提取,下载链接
8、MP3Stego(Windows)
对于MP3音频文件的隐写或提取,如:有一个名字叫“123.pm3”的文件,打开以后听是听不到任何信息的,我们可以用这个工具来进行信息的提取,使用命令decode -X -P 123.mp3
就可以提取出一个信息文件(一般是txt),使用命令encode -E 123.txt -P pass 123.mp3
是把123.txt文件写入123.mp3文件中下载连接
9、MSU StegoVideo
可以对视频文件进行隐写和提取的工具,具体我没有用过,大家可以去官网看一下
10、其他
在线二维码扫描
各种使用的工具
三、常见题目和注意事项
1、JPG文件
一个完整的JPG文件由FF D8
开头,FF D9
结尾,会忽略FF D9
以后的内容,所以可以在JPG文件中加入其他文件,比如flag……
遇到这种题常用的解决方法有这么几种,用Binwalk
分析出来里面隐藏的文件以后,把后缀名强制改为对应的文件后缀,但是这种办法不适用一个JPG隐藏多个文件或不知道后缀名的题,还可以使用Binwalk
工具自动拆分功能,也可以使用Winhex
等十六进制工具手动拆分。
2、GIF文件
GIF文件开头是GIF8
四位,具体可查阅GIF文档。
3、Zip文件
zip文件加密一般三种情况
第一种是真的使用密码加密,这种情况只能在其他地方寻找到密码
第二种是伪加密,讲原理之前,先了解一下zip
文件里面的构成以及含义
压缩源文件数据区:
50 4B 03 04
:这是头文件标记
14 00
:解压文件所需 pkware 版本
00 00
:全局方式位标记(有无加密)
08 00
:压缩方式
5A 7E
:最后修改文件时间
F7 46
:最后修改文件日期
16 B5 80 14
:CRC-32校验
19 00 00 00
:压缩后尺寸
17 00 00 00
:未压缩尺寸
07 00
:文件名长度
00 00
:扩展记录长度
压缩源文件目录区:
50 4B 01 02
:目录中文件文件头标记
3F 00
:压缩使用的 pkware 版本
14 00
:解压文件所需 pkware 版本
00 00
:全局方式位标记(有无加密)
08 00
:压缩方式
5A 7E
:最后修改文件时间
F7 46
:最后修改文件日期
16 B5 80 14
:CRC-32校验
19 00 00 00
:压缩后尺寸
17 00 00 00
:未压缩尺寸
07 00
:文件名长度
24 00
:扩展字段长度
00 00
:文件注释长度
00 00
:磁盘开始号
00 00
:内部文件属性
20 00 00 00
:外部文件属性
00 00 00 00
:局部头部偏移量
压缩源文件目录结束标志:
50 4B 05 06
:目录结束标记
00 00
:当前磁盘编号
00 00
:目录区开始磁盘编号
01 00
:本磁盘上纪录总数
01 00
:目录区中纪录总数
59 00 00 00
:目录区尺寸大小
3E 00 00 00
:目录区对第一张磁盘的偏移量
00 00
:ZIP 文件注释长度
对于伪加密来说,把压缩源文件目录区的全局方式位标记改为90 00
就可以直接打开了,但是如果提示文件损坏,那么就说明这个文件不是伪加密
第三种情况是真加密,但是我们不需要暴力破解,而是通过一种叫做CRC32碰撞
的攻击方式。
这种攻击方式不同于暴力破解,暴力破解的枚举的是密码,而CRC32碰撞
枚举的是内容,假如一个加密的压缩包内部只有一个很小的文件,而它的CRC32值与zip文件的CRC32的值一样的,那么我们就可以去使用CRC32碰撞
去破解,这里从网上找到了一个大佬写的破解脚本GitHub代码链接
4、双图问题
对于两张图片的问题,可以用StegSolve
工具对双图进行各种操作,看属否获取有用的信息,这类题可能与密码、二维码等有关。
5、F5 隐写
这一个隐写算法原理比较难,有兴趣的同学可以看看这一篇博客,这种题做法是,首先下载F5 隐写
解密工具,然后使用命令java Extract ../fileName.jpg -p fileName
就会生成解密以后的文件。
6、jphide隐写
这个隐写原理如下:
Jphide是基于最低有效位LSB的JPEG格式图像隐写算法,使用JPEG图像作为载体是因为相比其他图像格式更不容易发现隐藏信息,因为JPEG图像在DCT变换域上进行隐藏比空间域隐藏更难检测,并且鲁棒性更强,同时Blowfish算法有较强的抗统计检测能力。
由于JPEG图像格式使用离散余弦变换(Discrete Cosine Transform,DCT)函数来压缩图像,而这个图像压缩方法的核心是:通过识别每个8×8像素块中相邻像素中的重复像素来减少显示图像所需的位数,并使用近似估算法降低其冗余度。因此,我们可以把DCT看作一个用于执行压缩的近似计算方法。因为丢失了部分数据,所以DCT是一种有损压缩(Loss Compression)技术,但一般不会影响图像的视觉效果。
以上内容以及该算法的解法引用自这里若侵删
四、总结
隐写术是个非常好玩的脑洞题,设计各个方面的知识,虽然有套路,但是套路可以嵌套套路,题目解法千变万化,目前我也仅仅是入门阶段,上述内容也比较适合新手入门使用,若有欠缺的地方,还请各位大佬批评指正。
维基百科
https://zh.wikipedia.org/wiki/%E9%9A%90%E5%86%99%E6%9C%AF
百度百科
https://baike.baidu.com/item/%E9%9A%90%E5%86%99%E6%9C%AF
CTF随笔——隐写术相关推荐
- ctf竞赛隐写术分析工具简述
ctf竞赛隐写术分析工具简述 隐写术,即隐藏书写的信息的技术隐写术属于信息隐藏技术当中的一种,旨在保护秘密信息的安全传输. ctf比赛中隐写术现状 拿到图片后大致从以下三个方面入手 ①Binwaik+ ...
- CTF基础 --隐写术与密码学编码
让你心动的人,给不了你心安的感觉,让你心安的人,给不了你心动的感觉,或许,这就是答案... ---- 网易云热评 一.CTF类型 1.web sql注入.XSS.文件上传.包含漏洞.XXE.SSRF. ...
- 网络安全ctf比赛/学习资源整理,解题工具、比赛时间、解题思路、实战靶场、学习路线,推荐收藏!...
对于想学习或者参加CTF比赛的朋友来说,CTF工具.练习靶场必不可少,今天给大家分享自己收藏的CTF资源,希望能对各位有所帮助. CTF在线工具 首先给大家推荐我自己常用的3个CTF在线工具网站,内容 ...
- 2月国内外CTF比赛时间汇总来了!
● 从事网络安全行业工作,怎么能不参加一次CTF比赛了! 小编作为一个CTF比赛老鸟,以每次都能做出签到题为荣! 下面给大家分享一下2月份CTF比赛时间,比赛按时间先后排序,国内国外的都有哦! 文章末 ...
- 2018铁三测评题write以及一些想送给你们的话
一..前言 此文献给实验室的萌新们,以及刚刚接触CTF的同学们,希望能对你们的成长起到一些帮助. 二.关于CTF 可能你已经接触过CTF或者对它有所了解,这里我再简单介绍一下. 1.什么是CTF? C ...
- 网络安全方面学习笔记(持续更新...)
1,ip地址说白了就是每台遵循ip协议可以连接网络的设备(包括服务器,家庭路由器等网络交换机)的个人地址号,以这个地址号设备可以向指定的其他地址(ip)的设备定向发送信息,或接受它的信息. 外网:真实 ...
- 【安全技术揭秘系列】探索图片隐写的奥秘
什么是隐写?由于我们识别声音或图片的能力有限,因此稍微改动信息的某字节位的数据是不会影响我们识别声音或图片的.举个最通俗的例子,古人的藏头诗就是隐写的一种方式: 而CTF图片隐写术就是利用图片来隐藏一 ...
- ctf 隐写术 老鹰抓小鸡
提示:老鹰抓小鸡 这是一个信息隐藏题,flag就隐藏在图片中,把它找出来吧. 解题步骤:先下载010editor工具,用010editor打开图片, bmp图片的十六进制文件头是42 4D 76 AF ...
- CTF隐写术之总结 让你少走弯路
文章目录 一.reverseMe 二.a_good_idea 三.wireshark-1 四.小小的PDF 五.打开电动车 六.gif 七.Aesop_secret 八.结论 一.reverseMe ...
最新文章
- 怎么卸载Apache_pn服务-PHPnow使用问题
- 13/100. Best Time to Buy and Sell Stock
- php如何防sql注入攻击,php防sql注入攻击(含php6)
- ajax post 没有返回_Ajax异步技术之三:jQuery中的ajax学习
- 安装xmanager linux系统,安装Xmanager登陆Linux操作系统[图文]
- 关于两个list深层遍历
- python从指定文件夹导入模块_python – 从特定文件夹导入模块
- 【Vue】—计算属性缓存VS方法以及侦听器的区别
- cpld的入门交流之三:JED to ABL 反编译方法
- Linux安装微信、QQ
- 南方cass提取坐标生成表格_如何在CAD中或者CASS中将坐标导入到EXCEL表格(个人笔记)...
- MapReduce论文中文版--The Google File System
- 全国省市县信息sql脚本
- 用python播放声音文件(mp3、wav、m4a等)
- scoop下载安装教程,无报错,超简单。
- Redis学习之zscore命令
- 什么是python的内置函数_什么是python内置函数
- 雨中竞速,本周F1DeltaTime大奖赛带你清凉一下
- 新三板的合作门槛是多少?
- Linux日志和时间同步