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文件:
代码语言:javascript复制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最重要的功能就是使用字典来进行暴力破解:
代码语言:javascript复制stegseek [stegofile.jpg] [wordlist.txt]
该模式将会尝试已提供字典中的所有密码来对stegofile进行爆破。
检测和无密码提取元数据
Stegseek还可以从steghide图片中检测和提取任何位加密的元数据。因为steghide中使用的随机数生成器只有2^32个可能的种子,这些种子可以在几分钟内被爆破。
代码语言:javascript复制stegseek --seed [stegofile.jpg]
上述命令将告诉我们:
此文件是否实际包含steghide内容。 文件包含多少隐藏内容。 内容是如何加密的。
如果足够幸运的话,目标文件只使用了编码,而没有使用加密,那么该模式甚至还可以帮我们对文件进行解码。
下面的演示样例是X-MAS CTF2020中的一项挑战任务,这里使用安全随机密码隐藏Flag,但未启用加密。几分钟内,Stegseek就可以恢复嵌入的文件,而无需猜测正确的密码:
可选参数
使用命令“stegseek —help”即可查看该工具支持的所有选项列表:
代码语言:javascript复制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:
代码语言:javascript复制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:点击底部【阅读原文】可获取