如何使用Stegseek破解经过Steghide隐写的数据

2021-02-19
2097

Stegseek介绍

Stegseek是迄今为止全世界最快的Steghide破解器,该工具每秒能够处理数百万的密码。虽然Stegseek是一款轻量级工具,但丝毫不影响其功能性的强大。该工具作为原始Steghide项目的一个分支而构建,它的速度比其他破解器快上千倍。在该工具的帮助下,广大研究人员可以轻松从使用了Steghide隐写&加密的文件中提取出隐藏的数据。

除此之外,Stegseek还可以用来提取Steghide的元数据,我们可以利用这些信息来判断一个文件中是否包含了Steghide数据。

值得一提的是,仅需两秒钟,该工具就可以跑完rockyou.txt字典。而众所周知,rockyou.txt是一个包含了超过1400万个密码的强大字典文件。

关于Steghide

Steghide是一款开源的隐写术软件,它可以让你在一张图片或者音频文件中隐藏你的秘密信息,而且你不会注意到图片或音频文件发生了任何的改变。而且,你的秘密文件已经隐藏在了原始图片或音频文件之中了。这是一个命令行软件,因此你需要通过命令来实现将秘密文件嵌入至图片或音频文件之中。除此之外,你还需要使用其他的命令来提取你隐藏在图片或音频中的秘密文件。

工具安装

广大研究人员可以按照下列方式完成Stegseek的安装,或者直接在一个Docker容器中运行Stegseek。

Linux

在Ubuntu或其他基于Debian的系统上,我们可以使用项目代码库提供的.deb包来进行安装。

首先,访问该项目的【Releases页面】下载最新版本的工具文件。然后运行下列命令安装.deb文件:

sudo apt install ./stegseek_0.5-1.deb

在其他系统上,你可能还需要自己构建Stegseek代码,具体请参考这篇【文档】。

Windows

遗憾的是,现在还不支持将Stegseek构建为本机Windows应用程序。不过,我们可以使用WSL来运行Stegseek。为了获得最佳兼容性,建议使用Ubuntu WSL发行版。

配置好WSL之后,我们就可以使用上面的Linux指令安装Stegseek了。

默认配置系啊,WLS会加载C:\ drive at /mnt/c/,我们可以在这里访问自己的本地文件。

使用Stegseek

破解

Stegseek最重要的功能就是使用字典来进行暴力破解:

stegseek [stegofile.jpg] [wordlist.txt]

该模式将会尝试已提供字典中的所有密码来对stegofile进行爆破。

检测和无密码提取元数据

Stegseek还可以从steghide图片中检测和提取任何位加密的元数据。因为steghide中使用的随机数生成器只有2^32个可能的种子,这些种子可以在几分钟内被爆破。

stegseek --seed [stegofile.jpg]

上述命令将告诉我们:

此文件是否实际包含steghide内容。

文件包含多少隐藏内容。

内容是如何加密的。

如果足够幸运的话,目标文件只使用了编码,而没有使用加密,那么该模式甚至还可以帮我们对文件进行解码。

下面的演示样例是X-MAS CTF2020中的一项挑战任务,这里使用安全随机密码隐藏Flag,但未启用加密。几分钟内,Stegseek就可以恢复嵌入的文件,而无需猜测正确的密码:

可选参数

使用命令“stegseek --help”即可查看该工具支持的所有选项列表:

StegSeek version 0.5

=== StegSeek Help ===

To crack a stegofile:

stegseek [stegofile.jpg] [wordlist.txt]

Commands:

 --crack                 Crack a stego file using a wordlist. This is the default mode.

 --seed                  Crack a stego file by attempting all embedding patterns.

                         This mode can be used to detect a file encoded by steghide.

                         In case the file was encoded without encryption, this mode will

                         even recover the embedded file.

Positional arguments:

 --crack [stegofile.jpg] [wordlist.txt] [output.txt]

 --seed  [stegofile.jpg] [output.txt]

Keyword arguments:

 -sf, --stegofile        select stego file

 -wl, --wordlist         select the wordlist file

 -xf, --extractfile      select file name for extracted data

 -t, --threads           set the number of threads. Defaults to the number of cores.

 -f, --force             overwrite existing files

 -v, --verbose           display detailed information

 -q, --quiet             hide performance metrics (can improve performance)

 -s, --skipdefault       don't add guesses to the wordlist (empty password, filename, ...)

Use "stegseek --help -v" to include steghide's help.

Docker使用

我们还能够以Docker镜像的形式来运行StegSeek:

docker run --rm -it -v "$(pwd):/steg" rickdejager/stegseek [stegofile.jpg] [wordlist.txt]

跟其他工具的性能对比

password

Line

Stegseek v0.5

Stegcracker 2.0.9

Stegbrute v0.1.1 (-t 8)

"cassandra"

1 000

0.04s

3.1s

0.7s

"kupal"

10 000

0.04s

14.4s

7.1s

"sagar"

100 000

0.04s

2m23.0s

1m21.9s

"budakid1"

1 000 000

0.06s

[p] 23m50.0s

13m45.7s

"␣␣␣␣␣␣␣1"

14 344 383

1.65s

[p] 5h41m52.5s

[p] 3h17m38.0s

工具运行演示:实时随机rockyou.txt密码

项目地址

Stegseek:【GitHub传送门

转载时必须以链接形式注明原始出处及本声明

扫描关注公众号