跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

隐写术技术3354用JPEG文件格式隐藏有效载荷

精选回复

发布于

0x00 前言

继续学习图片的隐写技巧,这次学习和理解JPEG文件格式。与PNG文件的格式相比,JPEG文件相对简单,读取其中隐藏的有效载荷的方式也差不多。两者的区别在于文件格式不同,可用的细节也不同。

本文相关工具:

十六进制编辑器:十六进制编辑器

隐写检测:隐写检测

下载地址:

https://github.com/abeluck/stegdetect

编辑退出信息:MagicEXIF

下载地址:

http://www.magicexif.com/

分析JPEG图像格式:JPEGsnoop

下载地址:

http://www.impulseadventure.com/photo/jpeg-snoop.html

0x01 相关概念

JPEG文件

JPEG是联合摄影专家组的缩写。

支持陨石压缩

支持不透明度

不支持动画。

非传病媒介

JEPG同JPG的区别

JPEG既可以用作扩展名,也可以用作文件格式。

JPG是JPEG的缩写,代表扩展。

JPEG和JPG基本上没有区别,它们的格式都是通用的。

色彩模型

采用YCrCb颜色模型,比RGB更适合图形压缩。

y代表亮度。

Cr代表红色成分

Cb代表蓝色成分

它对亮度Y的变化远比人眼对画面中色度C的变化敏感。如果每个点保存一个8-8bit的亮度值Y,每2x2个点保存一个CrCb值,那么肉眼对图像的感知不会有太大的变化,可以节省一半的空间。

RGB模型的四个点需要4x3=12字节。

YCrCb模型的四个点需要4 ^ 2=6个字节。

[R G B] - [Y Cb Cr] 转换:

Y=0.299R 0.587G 0.114*B

Cb=- 0.1687R - 0.3313G 0.5 *B 128

Cr=0.5 R - 0.4187G - 0.0813*B 128

[Y,Cb,Cr] - [R,G,B] 转换:

R=Y 1.402 *(Cr-128)

g=Y-0.34414(c b-128)-0.71414(Cr-128)

B=Y 1.772 *(Cb-128)

文件格式

JPEG文件大致可以分为两部分:标签代码和压缩数据。

标记码:

它由两个字节组成,第一个字节是固定值0xFF,最后一个字节根据含义不同有不同的值。

每个标记代码前可以添加无限数量的无意义0xFF填充,连续的0xFF可以理解为一个0xFF,表示标记代码的开始。

以下产品的通用标签代码:

SOI0xD8图像开始

Pp00xe0应用程序保留标志0

APPn0xE1-0xEF应用保留标志n (n=1 ~ 15)

DQT0xDB量化表(定义量化表)

SOF00xC0帧开始(帧开始)

Dh0xc4定义霍夫曼表(Define Huffman Table)

DRI 0XDD定义差分编码累积复位的间隔(定义重启间隔)

0xda扫描开始(扫描开始)

Eo0xd9图像结束

压缩数据:

前两个字节保存整个段的长度,包括这两个单词部分。

注:

这种长度表示不同于PNG文件,高位在前,低位在后。

比如长度为0x12AB,存储顺序为0x12和0xAB。

Exif信息

Exif文件是JPEG文件的一种,符合JPEG标准,只是在文件的头信息中加入了拍摄信息和索引图。

这些信息可以在相机拍摄的jpeg图像中找到。

存储在APP1(0xFFE1)数据区

接下来的两个字节保存APP1数据区(即Exif数据区)的大小

接下来是Exif头,固定结构为0x457869660000。

其次是Exif数据

查看Exif信息的工具:exiftool

下载地址:

https://github.com/alchemy-fr/exiftool

编辑退出信息的工具:MagicEXIF

下载地址:

http://www.magicexif.com/

添加操作如图所示

3-1.png

0x02 常见隐写方法

DCT加密

LSB加密

DCT LSB

平均DCT

高容量DCT

高容量DCT算法

上述隐写术方法引自:

https://www . black hat . com/docs/Asia-14/materials/Ortiz/Asia-14-Ortiz-Advanced-JPEG-Steganography-And-detection . pdf

目前,有许多开源工具可以实现上述先进的隐写方法。

常见隐写工具:

JSteg

JPHide

智胜

看不见的秘密

F5

附录

伪装

当然,相应的隐写分析工具也已经出现很久了。

例如:Stegdetect

下载地址:

https://github.com/abeluck/stegdetect

0x03 利用JPEG文件格式隐藏Payload

接下来,我们在学习了文件格式之后,介绍一些隐藏的想法:

1、直接在尾部添加数据

4-1.png

如图,不会影响图片的正常浏览。

2、插入自定义COM注释

COM注释是0xff和0xfe。

插入数据0x11111111

长度为0x04

总长度为0x06。

的完整十六进制格式是0xffff00061111111。

插在DHT前面,如图。

4-2.png

如图插入后,不会影响图片的正常观看。

4-3.png

把ff改成fe,如图,也不影响画面的正常观看。

4-4.png

3、插入可被忽略的标记码

原理同上,将标志码替换为可以忽略的特殊值。

例如:

00

01 *项目

d0 *RST0

DNL特区

ef APP15

经测试,上述识别码不影响正常观看图片。

4、修改DQT

DQT:定义量化表

识别码是0xdb

接下来的两个字节代表长度

下一个字节代表QT设置信息。

前4位是QT编号。

后4位是QT精度,0=4位,否则为16位。

最后是QT信息,长度是64的整数倍。

检查测试图片的DQT信息,如图所示

4-5.png

长度是0x43,十进制是67。

00表示QT号为0,精度为8bit。

接下来的64个字节是QT信息字节

注:

这里的DQT格式指的是http://www.opennet.ru/docs/formats/jpeg.txt.

尝试替换这64个字节,如图。

4-6.png

对比一下前后的画面,可以发现画面的变化。

4-7.png

如果只是调整一些字节,改成净荷,能有多大区别?和下图对比一下。

4-8.png

反过来,还有很多地方需要修改。

0x04 检测和识别

对于上述隐藏方法,可以借助jpeg图像格式分析工具找到踪迹。

比如JPEGsnoop

下载地址:

http://www.impulseadventure.com/photo/jpeg-snoop.html

支持以下文件的格式分析:JPG - JPEG静态照片。THM -原始照片/电影文件的缩略图。AVI* - AVI电影。DNG -数码负片原始照片。PSD - Adobe Photoshop文件。CRW, CR2,NEF,ORF,PEF -原始照片。MOV* - QuickTime电影、QTVR(虚拟现实/360全景)。PDF - Adobe PDF文档

实际测试:

如下图所示,我们发现图片中添加了COM评论。

5-1.png

如下图所示,通过查看DQT的数据来识别添加的有效载荷,0x11对应的小数是17。

5-2.png

同样,jpegsnoop可以解析JPEG图像的EXIF信息,如下图所示

5-3.png

注:

为了方便测试,截图中的以下值是由MagicEXIF软件手动添加的:

EXIF品牌/型号:好的[测试] [?]

EXIF马克:没有

EXIF软件:正常[MagicEXIF元数据编解码器1.02]

0x05 补充

与png文件相比,jpeg文件更容易添加有效载荷,因为jpeg文件没有图像数据的校验位。

下载JPEG图像分析和执行payload的方法就不再介绍了。

(请参考https://3gstudent.github.io/'s隐写术-使用PNG文件格式隐藏有效载荷)

0x06 小结

本文介绍了JPEG的格式,重点介绍了如何根据JPEG的文件格式,使用特定的logo代码来隐藏有效载荷。这种方式虽然不会影响图片的正常浏览,但是在格式分析软件的帮助下,还是可以找到细节的。在介绍JPEG格式的官方文档中还有很多需要学习的地方。知道的越深,可以学习的技能就越多。

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。