泡泡君 · 2016/05/20 18:30

0x00 引子


最近国内各种CTF层出不穷,看出来国家对于信息安全终于决定下重本了。因为本人比较喜欢研究怎么藏东西,所以一开始在CTF队组建的时候,就负责了misc(杂项)中的Stego部分,中文翻译过来是“隐写术”。
乌云上也有好几篇关于隐写术的文章,其中以AppLeU0大大的那篇隐写术总结最为经典,还有Gump大大的数据隐藏技术。在这儿,本菜鸟也想和大家分享在CTF中见到的比较好玩的stego题目。写的不好,请大大们多多包涵。

0x01 什么叫隐写术?


隐写术,在我们的生活中既熟悉而又陌生。记得童年回忆《猫和老鼠》有关于“隐写术”的这一集:Jerry有一天在玩耍的时候,不小心往自己的身上涂了一种“神奇墨水”,然后把自己藏了起来,还成功的把Tom戏弄一通并赶走了Tom。这种“神奇“的墨水,叫“隐形墨水”,写到纸上之后需要特殊处理才可以看得到对方想要给我们传达的信息。

同样的,在信息安全中,隐写术也是举足轻重的一块领域,从我们最早接触到的图种(copy /b 1.jpg+1.torrent 1.jpg),到最近有事没事就上个头条的locky,看个图片就中招的stegosploit,图片木马Stegoloader,还有就是最近三大高危CVE之一CVE-2016-3714(ImageMagick的,linux下用于处理图像的一个应用),然后也有CHM打造后门,等等。总的来说,就和藏东西似的,能藏就藏,而我们就是要去寻找这种蛛丝马迹。

0x02 常用工具


在CTF中,老司机们可能更偏向于用UE/Winhex一类的16进制的编辑器去打开待分析文件,然后通过拼写文件头(嗯。常用的文件头有几类?)然后blah blah的解决了,也有一言不合就用脚本来解决的。然而,新手们尤其是像我这样的菜鸟们,就比较喜欢用工具先分析一下有什么样的发现,这时候,为什么不考虑使用binwalk呢?早年在freebuf上也有binwalk的身影。寒假刷XCTF的OJ的时候,binwalk用起来很方便,但是也有不方便的时候。
我要想藏个字符啥的,这个也是binwalk看不出来的。记得最近的某CTF曾经出过这道题:

你用binwalk也没用,人家提示的是stegdetect,和表情包里的链接还有压缩包都没关系。后来大概是因为这张图的缘故,还有了这篇文章:深入理解JPEG图像格式Jphide隐写
关于图片和流量分析的隐写可以参考开头的安利,这儿主要讨论关于mp4等其他格式的。

mp4的情况可以考虑使用ffmpeg,ffmpeg可以把一帧帧的视频分割为一张张的图片。具体怎么使用可以在linux下man ffmpeg。

0x03 几道可以分辨恶趣味的题目


今年被吊打过的CTF里,我们可以发现隐写术不那么单调了,体现了隐写术的特点之“物所能及不能藏”。不光是常见的jpg、tiff、png,

你真的舍得分开它吗?出题点不在这儿,在乎Exif也。

还有这道:先看左边(用pngcheck来分析的)

这货处理处理就变了:

然后就耐心重排IDAT部分的模块即可。

此外新的题目还涉及到了其它格式的诸如mp4,pdf,pcap(涉及到流量分析),midi,exe,TTL等等,此外,我还真没见过往vmdk里藏东西的题目(如果有的话,也是会考察选手的磁盘分析能力吧)

  • word

    感觉是会出现在宏或者说是隐藏字符这些小细节上,果然细节决定成败啊……

  • pdf

    这儿可以给大家推荐wbStego4open这个工具,目前出过的PDF的stego中还不算是很难,一般是以字符串为主。

  • pcap

    这儿会考察选手们的流量分析能力,当然小白们有个特别偏的方法:foremost+strings,运气好的话参考风云杯2016的misc06。

  • wav

    估计有很多人会记得这张图吧?还给了一首《渡口》

    说到wav,之前看别人的WP囤了这么几张图:

    看来脑洞还是蛮大的

  • midi

  • avi

    avi的编码标准不同导致的文件体积太大,比赛中应该不会放那么大的视频文件供CTFer下载吧?但谁又能说的准呢?给大家安利一个MSU VideoStego,是用于分析avi文件的小工具。

  • exe

    exe里藏东西其实还涉及到病毒行为分析,有可能是藏在壳内,也有可能是其他地方,具体情况可以使用IDA或者OD还有C32Asm来进行跟进分析。

  • mp4

在刚刚结束的风云杯2016上,比较有意思的一道misc04是关于加密与解密,同时还涉及到stego,先是zip伪加密破解,然后得到一张图片。尔等菜鸟们用binwalk分辨出了文件头分出来四张图片,嗯?然后?其实在赛后处理这张图发现了一个诡异的地方:

然后就没然后了……

P.s. 老司机们看透了一切,早早在这儿打好了埋伏,这一次是使用了zip伪加密+stego+base32,杀了个misc的回马枪……

0x04 后记


这一块可以深挖的东西还有很多,都是特别的有意思,如果隐写术和密码学结合起来,也是一道非常有意思的题目,也有见到和算法结合起来的"png number"(png套路蛮多的)。
个人感觉如果说是顺着CTF这一块往下挖的话,也挺考验选手自身的基础的。

CTF中比较好玩的stego相关推荐

  1. CTF中智能合约部署交互基础

    0x01 前言 Solidity在以太坊中是编写智能合约最受欢迎的语言,一般的CTF竞赛中的智能合约方向的题目都是以solidity语言编写的智能合约. 为什么写这一篇文章,主要是因为在接触智能合约类 ...

  2. Docker配置CTF中的靶机环境

    0x01 前言 之所以整理一篇Docker搭建CTF中的靶机文章,主要是因为最近断断续续遇到需要自己搭建一个服务器端镜像的事,出题或者是部署一些服务,出于安全或者是可移植性的一些考虑,都是需要用到Do ...

  3. 见微知著(一):解析ctf中的pwn--Fast bin里的UAF

    在网上关于ctf pwn的入门资料和writeup还是不少的,但是一些过渡的相关知识就比较少了,大部分赛棍都是在不断刷题中总结和进阶的.所以我觉得可以把学习过程中的遇到的一些问题和技巧总结成文,供大家 ...

  4. php字符长度函数漏洞 ctf,CTF中常见php-MD5()函数漏洞

    CTF中常见php-MD5()函数漏洞 1.数字与字符串之间的比较 var_dump( 0 == "a" ); var_dump( "0" == "a ...

  5. ctf php沙箱,详谈CTF中常出现的PHP反序列化漏洞

    0x01什么是PHP序列化与反序列化 PHP序列化是一种把变量或对象以字符串形式转化以方便储存和传输的方法 在PHP中,序列化用于存储或传递 PHP 的值的过程中,同时不丢失其类型和结构. 比方来说, ...

  6. python判断素数的方法简书_深入浅出RSA在CTF中的攻击套路

    0x01 前言 本文对RSA中常用的模逆运算.欧几里得.拓展欧几里得.中国剩余定理等算法不展开作详细介绍,仅对遇到的CTF题的攻击方式,以及使用到的这些算法的python实现进行介绍.目的是让大家能轻 ...

  7. CTF中编码与加解密总结

    CTF中那些脑洞大开的编码和加密 转自:https://www.cnblogs.com/mq0036/p/6544055.html 0x00 前言 正文开始之前先闲扯几句吧,玩CTF的小伙伴也许会遇到 ...

  8. 浅谈CTF中各种花式绕过的小trick

    文章目录 浅谈CTF中各种花式绕过的小trick 前言 md5加密bypass 弱比较绕过 方法一:0e绕过 方法二:数组绕过 强比较绕过 方法:数组绕过 md5碰撞绕过 方法:使用Fastcoll生 ...

  9. CTF中的Crypto

    密码学简介 密码学(Cryptography)一般可分为古典密码学和现代密码学. 古典密码学 古典密码学作为一种实用性艺术存在,其编码和破译通常依赖于设计者和敌手的创造力与技巧,并没有对密码学原件进行 ...

最新文章

  1. Bug tracker .net 部署经验(完善中)
  2. android 使用jar里 aidl,Android Studio中用gradle打包带AIDL文件的jar文件
  3. 【渝粤教育】国家开放大学2018年春季 0676-22T物流成本管理 参考试题
  4. 一步步编写操作系统 38 一级页表与虚拟地址3
  5. 循环小数是分数集合吗_人教版小学数学三年级上册 分数的简单计算 教案、课件,公开课视频...
  6. 收藏 | TensorRT部署深度学习模型
  7. Bootstrap 输入框组中控件的尺寸
  8. BERT 之后的故事
  9. 京东批量下单_京东快递发件指南!
  10. Java虚拟机(三)垃圾标记算法与Java对象的生命周期
  11. java挑战题_Java试题,你敢来挑战吗?
  12. 探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页...
  13. 万年历单片机课程设计百度文库_单片机课程设计电子万年历设计
  14. 学习廖雪峰 Git 总结
  15. linux 内核头文件、内核库文件
  16. 软考中级–软件设计师考试大纲
  17. 转录组+云平台助力HIF-1α促进冠状病毒感染的分子机制研究
  18. Android使用串口打印机打印图片方法
  19. Android 12上焕然一新的小组件
  20. 使用PHP从Access数据库中提取对象,第2部分

热门文章

  1. PATH 环境变量查看和修改
  2. 微型计算机代表性机型,接下的旗舰机型将能频繁看到它!高通骁龙845解析
  3. 马来酰亚胺偶联二硒化钨 (WSe2-MAL)|N-羟基琥珀酰亚胺偶联WSe2二硒化钨纳米颗粒 (WSe2-NHS)
  4. 【ARM汇编的堆栈问题】压栈运用|堆栈类型测试
  5. Acrobat could not access the recognition service, Acrobat无法使用识别服务
  6. 华为校招 C++岗面经(笔试+一面+二面+Offer)
  7. js的链式调用和流程控制(sleep)
  8. 常用的人事管理软件功能都有哪些?
  9. javascript调试工具:Blackbird !say hello to Blackbird and goodbye to alert().
  10. 英特尔10nm制程进展:Cannon Lake在路上 Ice Lake完成设计