Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
stego-toolkit — 隐写术工具集合 - 帮助解决CTF挑战 | Kitploit
工具/GitHubGitHub/dominicbreuker/stego-toolkit
取证分析隐写术CTF学习与教育实验室与实践
GitHubdominicbreuker/stego-toolkit

stego-toolkit

隐写术工具集合 - 帮助解决CTF挑战

查看仓库
2.7k34016年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

隐写工具集

该项目是一个 Docker 镜像,适用于解决 CTF 平台(如 hackthebox.eu)上的隐写挑战。该镜像预装了许多流行工具(见下方工具列表),以及一些可用于检查简单事物的筛选脚本(例如,运行 check_jpg.sh image.jpg 可获取 JPG 文件的报告)。

Docker build status

Hack The Box

使用方法

首先确保您已安装 Docker(安装指南)。然后您可以使用此仓库中的 shell 脚本 bin/build.sh 和 bin/run.sh 来构建镜像并运行容器。您将进入容器内的 bash shell。容器将挂载 data 文件夹,您可以将待分析的文件放入其中。

如果您不使用脚本,请按以下步骤操作:

  1. 构建镜像(docker build -t <镜像名称> .)或从 Docker Hub 拉取(docker pull dominicbreuker/stego-toolkit)
  2. 将您的文件挂载到容器内的 /data 文件夹启动容器(docker run -it <镜像名称> -v /本地/包含/data的文件夹:/data /bin/bash)
  3. 在您的文件上使用 CLI 工具和筛选脚本:例如,运行 check_jpg.sh image.jpg 生成快速报告,或运行 brute_jpg.sh image.jpg wordlist.txt 尝试使用各种工具和密码提取隐藏数据
  4. 如需运行 GUI 工具,请使用以下两种方式之一:
    • 运行 start_ssh.sh 并通过 X11 转发连接到容器
    • 运行 start_vnc.sh 并通过浏览器连接到容器的桌面

更多信息请参考以下部分:

  • 安装了哪些工具?请点击此处
  • 我可以运行哪些脚本来自动快速筛选文件或暴力破解?请点击此处
  • 如何尝试不同的隐写示例并检验能否破解它们?请点击此处
  • 如何在容器内运行 GUI 工具?请点击此处

演示

运行 docker run -it --rm -v $(pwd)/data:/data dominicbreuker/stego-toolkit /bin/bash。您将进入容器的工作目录 /data 的 shell。您的主机文件夹 $(pwd)/data 将被挂载,其中的图像将可访问。

动画演示 gif

工具

安装了多种 Linux 和 Windows 工具。Windows 工具通过 Wine 支持。部分工具可通过命令行使用,另一些需要 GUI 支持。

命令行界面工具

这些工具可通过命令行使用。您只需启动容器并挂载要检查的隐写文件即可。

通用筛选工具

初始阶段使用的工具。帮助您初步了解所处理文件的概况。

隐写检测工具

设计用于检测文件中隐写内容的工具。主要执行统计测试。仅能在简单情况下揭示隐藏信息。但如果发现有趣的异常,可能提示要寻找什么。

实际执行隐写的工具

可用于隐藏消息并在之后恢复的工具。有些工具会在隐藏前对消息进行加密。如果需要密码,可尝试这些工具。此 Docker 镜像中提供了支持这些工具的暴力破解脚本。

隐写 GUI 工具

以下所有工具都有图形用户界面,不能通过命令行使用。要运行它们,您必须在容器内提供 X11 服务器。有两种支持的方式:

  • 运行 start_ssh.sh 启动 SSH 服务器。之后通过 X11 转发连接。需要主机上有 X11 服务器!
  • 运行 start_vnc.sh 启动 VNC 服务器 + 客户端。之后通过浏览器连接到端口 6901,即可获得 Xfce 桌面。不需要主机依赖项!

或者,寻找其他方式在容器内提供 X11。有许多不同的方法(例如,挂载 UNIX 套接字)。

筛选脚本

上述许多工具无需 GUI 交互。因此,您可以轻松自动化一些工作流程,对可能包含隐藏消息的文件进行基本筛选。由于适用的工具因文件类型而异,每种文件类型都有不同的脚本。

对于每种文件类型,有两种脚本:

  • XXX_check.sh <隐写文件>:运行基本筛选工具并创建报告(+ 可能创建包含报告文件的目录)
  • XXX_brute.sh <隐写文件> <字典>:尝试使用字典(已安装 cewl、john 和 crunch 用于生成列表——请保持列表较小)通过多种工具从隐写文件中提取隐藏消息。

支持以下文件类型:

  • JPG:check_jpg.h 和 brute_jpg.sh(暴力破解运行 steghide、outguess、outguess-0.13、stegbreak、stegoveritas.py -bruteLSB)
  • PNG:check_png.h 和 brute_png.sh(暴力破解运行 openstego 和 stegoveritas.py -bruteLSB)

字典生成

上述暴力破解脚本需要字典。我个人认为使用像 rockyou 这样的大型标准字典很可能无济于事。脚本运行速度太慢,而且隐写挑战似乎并不是为此设计的。更可能的情况是,您对密码有预感,但不能确定。

针对这些情况,镜像中包含了几个用于生成字典的工具:

  • john:John the Ripper 的社区增强版可以扩展您的字典。创建一个包含少数候选密码的基础字典,然后使用 john 创建它们的许多变体。使用 john -wordlist:/path/to/your/wordlist -rules:Single -stdout > /path/to/expanded/wordlist 应用广泛规则(约 x1000 倍),使用 john -wordlist:/path/to/your/wordlist -rules:Wordlist -stdout > /path/to/expanded/wordlist 应用缩减规则集(约 x50 倍)。
  • crunch:如果您心中有某种模式,可以生成小型字典。例如,如果您知道密码以 1984 结尾且长度为 6 个字母,则使用 crunch 6 6 abcdefghijklmnopqrstuvwxyz -t @@1984 将生成 26 * 26 = 676 个密码:aa1984, ab1984, ... 直到 zz1984。格式为 crunch <最小长度> <最大长度> <字符集> <选项>,这里我们使用了模板选项。查看 less /usr/share/crunch/charset.lst 了解 crunch 自带的字符集。
  • CeWL:如果您知道某个网站与密码相关,可以生成字典。例如,如果您怀疑一张唐纳德·特朗普的图片包含加密的隐藏消息,可以运行 cewl -d 0 -m 8 https://en.wikipedia.org/wiki/Donald_Trump。该命令会抓取网站并提取至少 8 个字符的字符串。

隐写示例

镜像中包含每种不同格式的示例图像和音频文件:

  • /examples/ORIGINAL.jpg
  • /examples/ORIGINAL.png
  • /examples/ORIGINAL.mp3
  • /examples/ORIGINAL.wav

还包含一个脚本 /examples/create_examples.sh,您可以运行它以多种不同方法将隐藏消息("This is a very secret message!")嵌入这些文件中。运行此脚本后,您可以在 /examples/stego-files 目录中找到这些文件,其名称指示了用于嵌入消息的工具。您可以运行筛选脚本查看它们是否能发现什么,或尝试以其他方式破解它们。

GUI 和容器

默认情况下,Docker 容器中无法运行 GUI 工具,因为没有 X11 服务器。要运行它们,您必须改变这一点。具体操作取决于您的主机。如果您:

  • 在 Linux 上运行,您可能已有 X11
  • 在 Mac OS 上运行,您需要 Xquartz(brew install Xquartz)
  • 在 Windows 上运行,您会遇到问题

如果您想走这条路,可以通过 SSH 使用 X11 转发。在容器内运行 start_ssh 启动服务器,确保在启动容器时暴露端口 22:docker run -p 127.0.0.1:22:22 ...,然后使用 ssh -X ... 连接(脚本会打印密码)。

为了不依赖 X11,镜像自带 TigerVNC 服务器和 noVNC 客户端。您可以使用它通过浏览器打开一个 HTML5 VNC 会话来连接容器的 Xfce 桌面。为此,在容器内运行 start_vnc.sh 启动服务器和客户端,确保在启动容器时暴露端口 6901:docker run -p 127.0.0.1:6901:6901 ...,然后访问 localhost:6901/?password=<密码>(脚本会打印密码)。

使用 SSH 和 X11 转发

动画演示 gif - SSH + X11

GIF 中的命令(供复制粘贴):

root@kitploit:~
# 在第一个主机 shell 中
docker run -it --rm -p 127.0.0.1:22:22 dominicbreuker/stego-toolkit /bin/bash

# 在容器 shell 中
start_ssh.sh

# 在第二个主机 shell 中(之后用于启动 GUI 应用)
ssh -X -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@localhost

使用浏览器和 VNC

动画演示 gif - 浏览器 + VNC

GIF 中的命令(供复制粘贴):

root@kitploit:~
# 在第一个主机 shell 中
docker run -it --rm -p 127.0.0.1:6901:6901 dominicbreuker/stego-toolkit /bin/bash

# 在容器 shell 中
start_vnc.sh

# 在浏览器中,连接:http://localhost:6901/?password=<start_vnc 输出的密码>

链接收藏

以下是一些有用的隐写相关链接:

  • 您必须能够识别代码。查看 Eric Harshbarger 的这份速查表,其中包含许多不同的代码。
  • 关于工作流程、要查找的内容和常见工具的速查表:点击此处
  • 包含大量隐写挑战思路的法证 CTF 指南:点击此处
  • 以精美海报形式描述的文件格式:点击此处

参考资料

本仓库包含以下示例媒体文件:

  • 演示图像(JPG, PNG):https://pixabay.com/p-1685092
  • 演示音频文件(MP3, WAV):https://upload.wikimedia.org/wikipedia/commons/c/c5/Auphonic-wikimedia-test-stereo.ogg --- 由 debuglevel(自己的作品)[CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0)],通过 Wikimedia Commons 提供
下载工具
工具描述使用方法
file检查文件类型file stego.jpg
exiftool检查媒体文件的元数据exiftool stego.jpg
binwalk检查是否有其他文件嵌入或附加binwalk stego.jpg
strings检查文件中是否有可读的有趣字符strings stego.jpg
foremost提取嵌入/附加的文件foremost stego.jpg
pngcheck获取 PNG 文件详细信息(或发现其实际上是否为其他格式)pngcheck stego.png
identifyGraphicMagick 工具,检查文件类型及图像是否损坏identify -verbose stego.jpg
ffmpegffmpeg 可用于检查音频文件的完整性,并报告信息和错误ffmpeg -v info -i stego.mp3 -f null - 重新编码文件并丢弃结果
工具文件类型描述使用方法
stegoVeritas图像(JPG, PNG, GIF, TIFF, BMP)多种简单和高级检查。查看 stegoveritas.py -h。检查元数据,创建许多变换后的图像并保存到目录,暴力破解 LSB 等。stegoveritas.py stego.jpg 运行所有检查
zsteg图像(PNG, BMP)检测各种 LSB 隐写,以及 openstego 和 Camouflage 工具zsteg -a stego.jpg 运行所有检查
stegdetect图像(JPG)执行统计测试以判断是否使用了隐写工具(jsteg, outguess, jphide 等)。详细信息查看 man stegdetect。stegdetect stego.jpg
stegbreak图像(JPG)针对 JPG 图像的暴力破解工具。声称能破解 outguess、jphide 和 jsteg。stegbreak -t o -f wordlist.txt stego.jpg,使用 -t o 针对 outguess,-t p 针对 jphide,-t j 针对 jsteg
工具文件类型描述隐藏方法恢复方法
AudioStego音频(MP3 / WAV)工作原理详见此博客文章hideme cover.mp3 secret.txt && mv ./output.mp3 stego.mp3hideme stego.mp3 -f && cat output.txt
jphide/jpseek图像(JPG)来自此处的较老工具。这里安装了来自此处的版本,因为原始版本经常崩溃。它会交互式地提示输入口令!jphide cover.jpg stego.jpg secret.txtjpseek stego.jpg output.txt
jsteg图像(JPG)LSB 隐写工具。不加密消息。jsteg hide cover.jpg secret.txt stego.jpgjsteg reveal cover.jpg output.txt
mp3stego音频(MP3)旧程序。加密并隐藏消息(3DES 加密!)。运行于 Wine 的 Windows 工具。需要 WAV 输入(某些 WAV 文件可能报错,对我有效的方法如:ffmpeg -i audio.mp3 -flags bitexact audio.wav)。重要:务必使用绝对路径!mp3stego-encode -E secret.txt -P password /path/to/cover.wav /path/to/stego.mp3mp3stego-decode -X -P password /path/to/stego.mp3 /path/to/out.pcm /path/to/out.txt
openstego图像(PNG)多种 LSB 隐写算法(参考此博客)。仍在维护。openstego embed -mf secret.txt -cf cover.png -p password -sf stego.pngopenstego extract -sf openstego.png -p abcd -xf output.txt (省略 -xf 可使用原始名称创建文件!)
outguess图像(JPG)使用“冗余位”隐藏数据。有两个版本:旧的 outguess-0.13 取自此处,新的 outguess 来自包仓库。恢复时必须使用与隐藏时相同的版本。outguess -k password -d secret.txt cover.jpg stego.jpgoutguess -r -k password stego.jpg output.txt
spectrology音频(WAV)将图像编码为音频文件的频谱图。TODO使用 GUI 工具 sonic-visualiser
stegano图像(PNG)使用多种(基于 LSB 的)方法隐藏数据。还提供一些筛选工具。stegano-lsb hide --input cover.jpg -f secret.txt -e UTF-8 --output stego.png 或 stegano-red hide --input cover.png -m "secret msg" --output stego.png 或 stegano-lsb-set hide --input cover.png -f secret.txt -e UTF-8 -g $GENERATOR --output stego.png(使用不同的生成器,stegano-lsb-set list-generators)stegano-lsb reveal -i stego.png -e UTF-8 -o output.txt 或 stegano-red reveal -i stego.png 或 stegano-lsb-set reveal -i stego.png -e UTF-8 -g $GENERATOR -o output.txt
Steghide图像(JPG, BMP)和音频(WAV, AU)功能丰富且成熟的数据加密和隐藏工具。steghide embed -f -ef secret.txt -cf cover.jpg -p password -sf stego.jpgsteghide extract -sf stego.jpg -p password -xf output.txt
cloackedpixel图像(PNG)LSB 图像隐写工具cloackedpixel hide cover.jpg secret.txt password 创建 cover.jpg-stego.pngcloackedpixel extract cover.jpg-stego.png output.txt password
LSBSteg未压缩格式的图像(PNG, BMP, ...)简单的 LSB 工具,带有非常清晰可读的 Python 代码LSBSteg encode -i cover.png -o stego.png -f secret.txtLSBSteg decode -i stego.png -o output.txt
f5图像(JPG)F5 隐写算法,包含过程的详细信息f5 -t e -i cover.jpg -o stego.jpg -d 'secret message'f5 -t x -i stego.jpg 1> output.txt
stegpy图像(PNG, GIF, BMP, WebP)和音频(WAV)基于 LSB 方法的简单隐写程序stegpy secret.jpg cover.pngstegpy _cover.png
工具文件类型描述启动方法
Steg图像(JPG, TIFF, PNG, BMP)处理多种文件类型并实现不同的方法steg
Steganabara(原始链接已失效)图像(???)交互式变换图像直到发现内容steganabara
Stegsolve图像(???)交互式变换图像,单独查看颜色方案等。stegsolve
SonicVisualiser音频(???)可视化音频文件的波形,显示频谱图等。sonic-visualiser
Stegosuite图像(JPG, GIF, BMP)可加密数据并将其隐藏在图像中。积极开发中。stegosuite
OpenPuff图像、音频、视频(多种格式)功能复杂的工具,历史悠久。仍在维护。运行于 Wine 的 Windows 工具。openpuff
DeepSound音频(MP3, WAV)Mr. Robot 本人信赖的音频隐写工具。运行于 Wine 的 Windows 工具(非常 hacky,需要 VNC 并在虚拟桌面中运行,MP3 因缺少 DLL 而损坏!)deepsound 仅在 VNC 会话中
cloackedpixel-analyse图像(PNG)LSB 隐写可视化工具——用于检测图像中可疑的随机 LSB 值(接近 0.5 的值可能表示嵌入加密数据)cloackedpixel-analyse image.png