隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,-泓源视野

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,

linux检测加密类型使用hexdum gps_code.jpg查看 如下为:JPG格式文件,也可能是f5-steganography加密打包

寻找特征码 binwalk -W gps_code.jpg | more

....JFIF... .....AJPEG.Encer.Copyright.18,.James.R..Wes.and.BioElectMech.......  为F5加密

文件头标识:FF D8 FF

文件尾标识:FF D9

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图(文件头标识)

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图1


密码破解 (注意备份源文件,编码之后文件会改变编码)

Stop wasting time and CPU, use stegseek instead! Not convinced? Look at these benchmarks (stolen with love):

passwordLineStegseek v0.4Stegcracker 2.0.9Stegbrute v0.1.1 (-t 8)
"cassandra"1 0000.9s3.1s0.7s
"kupal"10 0000.9s14.4s7.1s
"sagar"100 0000.9s2m23.0s1m21.9s
"budakid1"1 000 0000.9s[p] 23m50.0s13m45.7s
"␣␣␣␣␣␣␣1"14 344 3831.9s[p] 5h41m52.5s[p] 3h17m38.0s

 

stego-toolkit   kali install docker( sudo apt install -y docker.io)

https://github.com/DominicBreuker/stego-toolkit

docker run -it --rm -v $(pwd)/data:/data dominicbreuker/stego-toolkit /bin/bash

open new terminal cp /root/pass.txt /root/gps_code.jpg /root/stego-toolkit/data

old terminal run check_jpg.sh image.jpg   and brute_jpg.sh image.jpg wordlist.txt

stegoveritas gps_code.jpg | stegbreak -t p -f wordlist.txt stego.jpg | f5 -t x -i gps_code.jpg 1> output.txt

f5 -t x -i gps_code.jpg -p 521 -o ok.txt

stegcrack  (pip3 install stegcracker)  ou apt install stegcracker

command : stegcracker gps_code.jpg pass.txt   没有foud适合steghide加密  F5解密不友好

StegSeek can be found at:  https://github.com/RickdeJager/stegseek

wget https://github.com/RickdeJager/stegseek/releases/download/v0.6/stegseek_0.6-1.deb

sudo apt install ./stegseek_0.6-1.deb
stegseek --seed gps_code.jpg
error: Could not find a valid seed. 适合steghide的加密 F5解密不友好
  • stegseek --embed <data> <coverfile> [<stegofile>]
  • stegseek --extract <stegofile> [<output>]

有些题目用steghide加密文件但是不给密码,此时就需要爆破,steghide 本身并不支持爆破,需要一些其他的方法:git clone https://github.com/Va5c0/Steghide-Brute-Force-Tool

    • python steg_brute.py -b -d /root/stegdetect/pass.txt -f /root/stegdetect/gps_code.jpg
123
python steg_brute.py -b -d [字典] -f [jpg_file]// 需要安装的库: progressbarpip install progressbar2

工具一,F5解密  强大 暂时无法暴力破解

0x00 前言  steganography

今天在实验吧看到一个图片隐写的题目,用了stegslove和winHex分析一通发现并没有什么有效信息。看了评论区大佬的提示说用到了F5隐写工具,所以百度教程用了一下,发现确实解决了问题。

解题链接:http://www.shiyanbar.com/ctf/1938

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图2

0x01 F5下载安装

F5隐写全称F5-steganography,在kail系统命令端输入以下代码:

git clone https://github.com/matthewgao/F5-steganography

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图3

出现以上信息即表示下载完成。下载完是一个文件夹,如下图:

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图4

0x02 F5隐写工具的使用

我以实验吧的那道图片隐写图作为例子来使用F5工具。

cd F5-steganography

在kail命令端输入:wget http://ctf5.shiyanbar.com/stega/123456.jpg 获取图片。

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图5

 

在文件夹中找到,下载的F5工具包,双击打开,然后空白处右键使用终端打开。

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图6

 

在命令窗口输入 java Extract /root/123456.jpg -p 123456

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图7

 

此时已经解析完毕。直接在F5工具包中output文件中就能找到flg。

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图8

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图9

工具一,F5加密

F5隐写加密:

java Embed 原图片.jpg 生成的图片.jpg -e 隐藏的文件.txt -p 密码

F5隐写解密:

java Extract 生成的图片.jpg -p 密码

you get output.txt

演示:

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图10
隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图11

ps. 之所以使用 jview 是看自带的 .bat 文件是用的这个,但是用 java 貌似没啥影响

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图12

工具二,Beyond Compare (windows平台)

使用软件:

 

提取码: uuch

安装打开后界面是这样的:点击红框框出来的

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图13

选择图片比较

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图14

上面还有一些选项可以试试

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图15
IDAT信息隐藏
IDAT:存储实际的数据,在数据流中可包含多个连续顺序的图像数据块,储存图像像数数据。

在数据流中可包含多个连续顺序的图像数据块。

采用 LZ77 算法的派生算法进行压缩。

可以用 zlib 解压缩。

IDAT块只有当上一个块充满时,才会继续下 一个新块

如果有 IDAT 还没填满就填充了下一个就要考虑是不是有问题

命令:

pngcheck.exe -v sctf.png 可以查看

也可以使用 Stegsolve 的 Analysis -> File Format 有详细介绍

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图16

这就说明这 138 是认为添加的,把这个位置的内容保存出来,再进行其他操作(文本进制转换、写图片)

LSB信息隐藏

PNG文件中的图像像数一般是由RGB三原色组成,每一种颜色占用8位,取值范围为 0×00~0xFF,即256种颜色,一共包含了256的三次方的颜色,即16777216(1千677W)种颜色。人类的眼睛可以区分约1000万种不同的颜色,这就意味着人类的眼睛无法区分余下的颜色大约有6777216(677W)种

LSB隐写就是修改RGB颜色分量的最低二进制位(LSB),每个颜色都会有8bit,LSB隐写就是修改了像数中的最低的1Bit,而人类的眼睛不会注意到这前后的区别,每个像数可以携带 3Bit的信息,这样就把信息隐藏起来了

使用 Stegsolve 各个通道都看看,或者 Analysis -> Data Extract 合起来看看,有什么熟悉的保存出来

GIF信息隐藏

在某一帧图片藏着信息,用 ps 或者爱奇艺万能播放器也可以一帧一帧的看

每一帧图片间隔时间,可能藏着规律,或许是二进制编码、或许是摩斯密码

NTFS流隐写

安恒的一道题:猫片,先是 LSB 提取一个 png,然后改高度得到完整的取反色,下载文件,得到 RAR,使用 NTFS 流隐写,打开软件,然后用 winrar 解压缩,然后扫描一下,发现一些其他的东西,导出就可以了。

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图17

工具三,zsteg  *(快速检测工具)仅仅支持PNG & BMP

目前,zsteg支持检测:

  • LSB steganography in PNG & BMP
  • zlib-compressed data
  • OpenStego
  • Camouflage 1.2.1
  • LSB with The Eratosthenes set

安装:

git clone https://github.com/zed-0xff/zsteg

cd zsteg/

gem install zsteg

鉴于国内网速,gem install如果一直没反应,更换RubyGems的源。

gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.com/
gem sources -l

0x02 zsteg的使用方法

查看帮助

zsteg -h

查看LSB信息

zsteg pcat.png

检测zlib

# -b的位数是从1开始的
zsteg zlib.bmp -b 1 -o xy -v

显示细节

zsteg pcat.png -v

尝试所有已知的组合

zsteg pcat.png -a

导出内容

zsteg -E "b1,bgr,lsb,xy" pcat.png > p.exe

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图18

image.png

图片相关

PNG 格式简介

文件格式:对于 PNG 文件来说,其文件头总是由固定的字节来描述的,剩余的部分由 3 个以上的 PNG 数据(Chunk)按照特定的顺序组成。

文件头:89 50 4E 47 0D 0A 1A 0A + 数据块 + 数据块 + 数据 块…..

修改图片高度

如果 linux 下打不开,windows 下打得开可能就是该高度了
左边是宽度,圈起来的是高度,,把高度改成跟宽一样的

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图19

image.png

文件尾追加文件

直接十六进制编辑器

图片元数据

元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(Data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
元数据中隐藏信息在比赛中是最基本的一种手法,通常用来隐藏一些关键的 Hint 信息 或者一些重要的比如 password 等信息。

这类元数据可以 右键 -> 属性 查看


工具四,outguess

kali  comannd :apt install outguess

Kail终端命令输入git clone https://github.com/crorvick/outguess

安装包随即下载到文件夹。双击打开文件夹,右键点击空白区域选终端打开。

随后输入以下命令./configure && make && make install 进行安装

kali 下使用outguess -r avatar.jpg -t 1.txt
把 avatar.jpg 图片破解信息的数据输出到 1.txt

加密:
outguess -k "my secret key" -d hidden.txt demo.jpg out.jpg
加密之后,demo.jpg会覆盖out.jpg,
hidden.txt中的内容是要隐藏的东西
解密:
outguess -k "my secret key" -r out.jpg hidden.txt
解密之后,解密内容放在hidden.txt中

你知道信息安全里面也有“隐身术”吗?没错,它就是隐写术!

隐写术是关于信息隐藏,即不让计划接收者之外的任何人知道信息的传递事件(而不只是信息的内容)的一门技能。

按照载体对象分类可以分为文本隐写术、图像隐写术、音频隐写术、视频隐写术,本文主要介绍的是图像隐写术,先详细分析JPEG文件格式,然后研究隐藏文件的方法及原理,文章阅读用时约5分钟。

基础知识

JPEG文件

JPEG是Joint Photographic Experts Group(联合图像专家小组)的缩写

JPEG本身只有描述如何将一个影像转换为字节的数据串流(streaming),但并没有说明这些字节如何在任何特定的储存媒体上被封存起来。

.jpeg/.jpg是最常用的图像文件格式,具有以下特点:

1、支持有陨压缩

2、不支持透明

3、不支持动画

4、非矢量

文件格式判断

针对这类文件格式我们不能仅仅看文件后缀名

以下两个文件后缀名不一样,但都是同一个文件

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图20

我们可以通过十六进制编辑器打开文件然后查看文件标志来判断

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图21

常见隐写方法

Exif信息

Exif文件是JPEG文件的一种,遵从JPEG标准,只是在文件头信息中增加了拍摄信息和索引图

储存在APP1(0xFFE1)数据区中

我们可以直接使用十六进制编辑器分析查看

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图22

也可以使用MagicEXIF软件,这款软件可以帮助我们快捷的修改查看Exif信息。

下载地址:http://www.magicexif.com/

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图23

图种

这个是先将torrent文件压缩为rar文件或者zip文件都行

然后打开命令行输入

copy/b 图片文件名称+压缩文件名称 生成的文件名称 例子:copy /b time.jpg+kanmengou.zip 3.jpg

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图24

生成的文件正确预览没任何问题,修改文件后缀为zip,或者rar就能看见隐藏的tor文件。

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图25

JSteg隐写算法

基于DCT系数的变换进行数字隐写,主要思想是将秘密消息嵌入在量化后的DCT系数的最低比特位上。但对原始值为O、1的DCT系数不进行嵌入。提取秘密消息时,只需将载密图像中不等于0、l的量化DCT系数的LSB取出即可。

JSteg隐写过程:

(1)部分解码JPEG图像,得到二进制存储的AC系数,判断该AC系数是否等于1或0,若等于则跳过该AC系数,否则,执行下一步。

(2)判断二进制存储的AC系数的LSB是否与要嵌入的秘密信息比特相同,若相同,则不对其进行修改,否则执行下一步。

(3)用秘密信息比特替换二进制存储的AC系数的LSB,将修改后的AC系数重新编码得到隐秘JPEG图像。

JSteg加密软件下载地址:

链接: 密码:2js5

使用说明如下:

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图26

其他

还要很多高级加密算法,比如JPHide、OutGuess、Invisible Secrets、F5、appendX、Camouflage,这里不再一一介绍。

检测

接下来我们将介绍如何去识别这些隐写术。

JPEGsnoop

JPEGsnoop是一个免费的,便携的详细图像解码器,负责审查任何文件类型的包含JPEG压缩图像。

下载地址:

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

解析jpeg图片的EXIF信息

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图27

查看DQT的数据

隐写术之stegdeteck,F5,zsteg,outguess,stregcracker,stregseek,steghide,Beyond Compare,插图28

分析起来很方便。

   Stegdetect

Neils Provos开发的隐写工具Stegdetect,通过统计分析技术评估JPEG文件的DCT频率系数,它可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息,并且还具有基于字典暴力破解密码方法提取通过Jphide、outguess和jsteg-shell方式嵌入的隐藏信息。

项目地址:

git clone https://github.com/abeluck/stegdetect

cd stegdetect && sudo ./configure && sudo make && sudo make install

这是Linux环境下的项目,我们编译一下。**** for linux64 must do it for configure

apt update && apt install libtool && aclocal --version

linux32 ./configure &&touch --date="`date`" aclocal.m4 Makefile.am configure Makefile.in
****很重要,安装错误参考https://stackoverflow.com/questions/33278928/how-to-overcome-aclocal-1-15-is-missing-on-your-system-warning
root@linux:~/tools/stegdetect# ./configureroot@linux:~/tools/stegdetect# make

使用说明:

t – 设置要检测哪些隐写工具(默认检测jopi),可设置的选项如下:
j – 检测图像中的信息是否是用jsteg嵌入的。
o – 检测图像中的信息是否是用outguess嵌入的。
p – 检测图像中的信息是否是用jphide嵌入的。
i – 检测图像中的信息是否是用invisible secrets嵌入的。
————————————————
./stegdetect -tj -s 10.0 hidetime.jpg
hidetime.jpg : jsteg
./stegdetect -tjopi -s 10.0 /root/gps_code.jpg
输出/root/gps_code.jpg : jphide(***)

必须先下载rules.ini规则配置文件

wget https://github.com/poizan42/stegdetect/blob/46a09e93320cd63b6731e0bc5b22c11c588a0e81/rules.ini

2.然而我们并不知道密码是啥,这时可以用stegdetect下的stegbreak字典破解,
同样图片和stegbreak.exe在同一目录下,
命令stegbreak.exe -r rules.ini -f password.txt -r p hide.jpg  破解
密码jphide[v5](123456)中的123456即为密码

批量or img in `find /path/to/images/ -iname "*jpg"`; do

 ./stegdetect -tF $img; done

选项

-q 仅显示可能包含隐藏内容的图像。
-n 启用检查JPEG文件头功能,以降低误报率。如果启用,所有带有批注区域的文件将被视为没有被嵌入信息。如果JPEG文件的JFIF标识符中的版本号不是1.1,则禁用OutGuess检测。
-s 修改检测算法的敏感度,该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比,算法敏感度的值越大,检测出的可疑文件包含敏感信息的可能性越大。
-d 打印带行号的调试信息。
-t 设置要检测哪些隐写工具(默认检测jopi),可设置的选项如下: j 检测图像中的信息是否是用jsteg嵌入的。 o 检测图像中的信息是否是用outguess嵌入的。 p 检测图像中的信息是否是用jphide嵌入的。 i 检测图像中的信息是否是用invisible secrets嵌入的。
-V 显示软件版本号。

以上是今天的全部内容,大家看懂了吗?


steghide,

apt install steghide

3.使用jphide下的工具JPHS从hide.jpg图片提取出隐藏信息
4.然后打开保存的txt文件,即得flag

使用命令steghide extract -sf hanabi.jpg 得到pass.txt

可以加密 解密 具体查看steghide --help

jphide链接:
链接:
提取码:nnnk

stegsolve,查看工具

可查看gif一帧一帧查看

本文由 泓源视野 作者:admin 发表,其版权均为 泓源视野 所有,文章内容系作者个人观点,不代表 泓源视野 对观点赞同或支持。如需转载,请注明文章来源。
1
admin

发表评论

Protected with IP Blacklist CloudIP Blacklist Cloud
您是第8235945 位访客, 您的IP是:[172.70.35.4]