Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
DumpsterDiver — 用于搜索各种文件类型中秘密的工具。 | Kitploit
工具/GitHubGitHub/securing/dumpsterdiver
静态分析漏洞分析代码分析数据泄露信息收集秘密检测Archived
GitHubsecuring/dumpsterdiver

DumpsterDiver

用于搜索各种文件类型中秘密的工具。

查看仓库
1.0k154233年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DumpsterDiver_logo

DumpsterDiver(作者:@Rzepsky)

DumpsterDiver 是一款工具,能够分析大量数据,搜索硬编码的机密信息,如密钥(例如 AWS Access Key、Azure Share Key 或 SSH 密钥)或密码。此外,它还允许创建带有基本条件的简单搜索规则(例如,仅报告包含至少 10 个电子邮件地址的 CSV 文件)。 该工具的主要理念是检测任何潜在的机密泄露。你可以通过演示视频观看其实际运行,或通过这篇文章了解所有功能。

DumpsterDiver

主要功能:

  • 使用香农熵查找私钥,
  • 搜索 Git 日志,
  • 解压压缩归档文件(例如 zip、tar.gz 等),
  • 支持使用简单规则进行高级搜索(详见下文),
  • 搜索硬编码密码,
  • 完全可自定义。

使用方法

root@kitploit:~
usage: DumpsterDiver.py [-h] -p LOCAL_PATH [-r] [-a] [-s] [-o OUTFILE]
                        [--min-key MIN_KEY] [--max-key MAX_KEY]
                        [--entropy ENTROPY] [--min-pass MIN_PASS]
                        [--max-pass MAX_PASS]
                        [--pass-complex {1,2,3,4,5,6,7,8,9}]
                        [--exclude-files EXCLUDE_FILES [EXCLUDE_FILES ...]]
                        [--bad-expressions BAD_EXPRESSIONS [BAD_EXPRESSIONS ...]]

基本命令行选项

  • -p LOCAL_PATH - 指向包含待分析文件的文件夹的路径。
  • -a, --advance - 设置此标志后,所有文件将额外使用 rules.yaml 文件中指定的规则进行分析。
  • -r, --remove - 设置此标志后,将删除不包含任何机密(或若 -a 标志已设置,则删除不包含任何感兴趣内容)的文件。
  • -s, --secret - 设置此标志后,所有文件将额外进行硬编码密码搜索。
  • -o OUTFILE - JSON 格式的输出文件。

先决条件

要运行 DumpsterDiver,您必须安装 Python 库。您可以通过运行以下命令来安装:

root@kitploit:~
$> pip install -r requirements.txt

如果您分别安装了 Python 2 和 Python 3,则应使用 pip3 或 pip3.6。

自定义搜索

没有一款工具能适合所有人的需求,DumpsterDiver 也不例外。有两种方式可以自定义您的搜索:

  • 使用命令行参数
  • 使用 config.yaml 文件

通过命令行参数自定义

  • --min-key MIN_KEY - 指定待分析的最小密钥长度(默认值为 20)。
  • --max-key MAX_KEY - 指定待分析的最大密钥长度(默认值为 80)。
  • --entropy ENTROPY - 指定高熵的阈值(默认值为 4.3)。

此外,还提供了一个单独的脚本,允许您计算单个单词中字符的熵。这有助于您更好地根据需求自定义 DumpsterDiver。您可以通过以下命令使用它:

root@kitploit:~
$> python3 entropy.py f2441e3810794d37a34dd7f8f6995df4

当您清楚要查找什么时,这种方法会很有帮助。以下是一些示例:

  • 当您查找 AWS Secret Access Key 时:

$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-key 40 --max-key 40 --entropy 4.3

  • 当您查找 Azure Shared Key 时:

$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-key 66 --max-key 66 --entropy 5.1

  • 当您查找 SSH 私钥时(默认情况下,RSA 私钥由 76 字节长的字符串组成):

$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-key 76 --max-key 76 --entropy 5.1

  • 当您查找任何 aws_access_key_id 或 aws_secret_access_key 的出现时:

$> python3 DumpsterDiver.py -p ./test/ --grep-words *aws_access_key_id* *aws_secret_access_key* -a

请注意,在 grep 单词前后有意使用了通配符。这样,像 "aws_access_key_id" 或 aws_access_key_id= 这样的表达式也会被报告。

查找硬编码密码

使用熵来查找密码效果并不理想,因为它会产生大量误报。这就是为什么 DumpsterDiver 采用不同的方法查找硬编码密码——它使用 passwordmeter 来验证密码复杂度。要自定义此搜索,您可以使用以下命令:

  • --min-pass MIN_PASS - 指定待分析的最小密码长度(默认值为 8)。需要在语法中添加 -s 标志。
  • --max-pass MAX_PASS - 指定待分析的最大密码长度(默认值为 12)。需要在语法中添加 -s 标志。
  • --pass-complex {1,2,3,4,5,6,7,8,9} - 指定密码复杂度的阈值,范围从 1(简单密码)到 9(非常复杂密码)(默认值为 8)。需要在语法中添加 -s 标志。

例如,如果您想查找包含大写字母、小写字母、特殊字符、数字且长度为 10 到 15 个字符的复杂密码,可以使用以下命令:

$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-pass 10 --max-pass 15 --pass-complex 8

限制扫描范围

您可能希望跳过对某些文件的扫描。为此,可以使用以下参数:

  • --exclude-files - 指定不应分析的文件名或扩展名。文件扩展名应包含 . 字符(例如 .pdf)。多个文件名和扩展名之间用空格分隔。

  • --bad-expressions - 指定不良表达式。如果 DumpsterDiver 在文件中发现此类表达式,则不会分析该文件。多个不良表达式之间用空格分隔。

如果您想通过单独的文件指定多个文件名、不良表达式或 grep 单词,可以使用以下 Bash 技巧:

root@kitploit:~
$> python3 DumpsterDiver.py -p ./test/ --exclude-files `while read -r line; do echo $line; done < blacklisted_files.txt`

通过 config.yaml 文件自定义

您可以在 config.yaml 文件中一次性为上述所有参数指定值,从而避免使用多个命令行参数。

高级搜索:

DumpsterDiver 还支持高级搜索。除了简单的通配符 grep 之外,该工具还允许您创建条件。假设您正在搜索公司电子邮件的泄露。此外,您只对包含至少 100 个电子邮件地址的大型泄露感兴趣。为此,您应该按如下方式编辑 rules.yaml 文件:

root@kitploit:~
filetype: [".*"]
filetype_weight: 0
grep_words: ["*@example.com"]
grep_words_weight: 10
grep_word_occurrence: 100

假设另一种情况,您正在 .db 或 .sql 文件中搜索术语 "pass"、"password"、"haslo"、"hasło"(如果您正在分析波兰公司的代码仓库)。那么,您可以通过按如下方式修改 rules.yaml 文件来实现:

root@kitploit:~
filetype: [".db", ".sql"]
filetype_weight: 5
grep_words: ["*pass*", "*haslo*", "*hasło*"]
grep_words_weight: 5
grep_word_occurrence: 1

请注意,仅当总权重(filetype_weight + grep_words_weight)>= 10 时,规则才会被触发。

使用 Docker

DumpsterDiver 提供了 Docker 镜像。使用以下命令运行:

root@kitploit:~
$> docker run -v /path/to/my/files:/files --rm rzepsky/dumpsterdiver -p /files

如果您想覆盖配置文件之一(config.yaml 或 rules.yaml):

root@kitploit:~
$> docker run -v /path/to/my/config/config.yaml:/config.yaml /path/to/my/config/rules.yaml:/rules.yaml -v /path/to/my/files:/files --rm rzepsky/dumpsterdiver -p /files

贡献

您有更好的想法吗?想为这个项目提供帮助吗?请通过 Twitter @Rzepsky 与我联系。我非常希望能有贡献者加入!

特别感谢

在此,我要衷心感谢所有帮助开发此项目的人:

  • Stephen Sorriaux
  • Andres Riancho
  • Damian Stygar
  • Disconnect3d

许可证

请参阅 LICENSE 文件。

下载工具