DumpsterDive,可以分析大量数据以搜索硬编码的机密,如密钥(例如AWS访问密钥,Azure共享密钥或SSH密钥)或密码。
此外,它还允许创建具有基本条件的简单搜索规则(例如,仅报告包含至少 10 个电子邮件地址的 csv 文件)。该工具的主要思想是检测任何潜在的秘密泄漏。
0x01 工具安装
直接安装对应的pip依赖库即可
$> pip install -r requirements.txt
0x02 工具使用
自定义搜索方式:
1、通过命令行参数进行定制
--min-key MIN_KEY- 指定要分析的最小密钥长度(默认值为
20
)
--max-key MAX_KEY- 指定要分析的最大密钥长度(默认值为
80
)
--max-key MAX_KEY- 指定要分析的最大密钥长度(默认值为
80
)
还添加了一个单独的脚本,允许您在单个单词中计算字符的熵。它将帮助您更好地根据您的需求自定义垃圾箱潜水员。您可以使用以下命令进行检查:
$> python3 entropy.py f2441e3810794d37a34dd7f8f6995df4
当您知道自己在寻找什么时,这种方式非常有用。以下是一些示例:
当您查找 AWS 秘密访问密钥时:
$> python3 DumpsterDiver.py -p [PATH_TO_FOLDER] --min-key
40
--max-key
40
--entropy
4.3
查找 Azure 共享密钥时:
$> 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_idaws_secret_access_key
$> python3 DumpsterDiver.py -p ./test/ --grep-words *aws_access_key_id* *aws_secret_access_key* -a
2、查找硬编码密码。
使用熵查找密码不是很有效,因为它会产生大量误报。这就是为什么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
3、限制扫描。
您可能希望跳过扫描某些文件。为此,您可以使用以下参数:
--exclude-files- 指定不应分析的文件名或扩展名。文件扩展名应包含字符(例如)。多个文件名和扩展名应用空格分隔。..pdf
--bad-expressions- 指定错误的表达式。如果 DumpsterDiver 在文件中找到这样的表达式,则此文件将不会 分析。多个错误的表达式应用空格分隔。
如果要使用单独的文件指定多个文件名,错误的表达式或grep单词,可以通过以下bash技巧来完成:
$> python3 DumpsterDiver.py -p ./test/ --exclude-files `
while
read -r line;
do
echo $line; done < blacklisted_files.txt`
4、通过 config.yaml 文件进行自定义
无需使用多个命令行参数,您可以在文件中一次指定所有上述参数的值。config.yaml
5、高级搜索
DumpsterDiver还支持高级搜索。除了使用通配符进行简单的 greping 之外,此工具还允许您创建条件。假设您正在搜索公司电子邮件的泄漏。此外,您只对包含至少 100 个电子邮件地址的大泄漏感兴趣。为此,应按以下方式编辑文件:rules.yaml
filetype: [
".*"
]
filetype_weight:
0
grep_words: [
"*@example.com"
]
grep_words_weight:
10
grep_word_occurrence:
100
让我们假设一个不同的场景,您正在 or 文件中查找术语“pass”、“password”、“haslo”、“hasło”(如果您正在分析波兰公司存储库)。然后,您可以通过通过以下方式修改“rules.yaml”文件来实现此目的:.db.sql
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
6、使用 Docker
docker 映像可用于 DumpsterDiver。使用以下方法运行它:
$> docker run -v /path/to/my/files:/files --rm rzepsky/dumpsterdiver -p /files
如果要覆盖其中一个配置文件( 或 ):config.yamlrules.yaml
$> 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
获取工具包
https://github.com/securing/dumpsterdiver
原文始发于微信公众号(白帽学子):硬编码密钥自动识别工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论