Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/securing/dumpsterdiver
Статический анализАнализ уязвимостейАнализ КодаЭксфильтрация данныхСбор информацииОбнаружение СекретовArchived
GitHubsecuring/dumpsterdiver

DumpsterDiver

Инструмент для поиска секретов в различных типах файлов.

Репозиторий
1.0k1543 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DumpsterDiver_logo

DumpsterDiver (от @Rzepsky)

DumpsterDiver — это инструмент, который может анализировать большие объемы данных в поиске жестко закодированных секретов, таких как ключи (например, AWS Access Key, Azure Share Key или SSH-ключи) или пароли. Кроме того, он позволяет создавать простые правила поиска с базовыми условиями (например, сообщать только о CSV-файлах, содержащих не менее 10 адресов электронной почты). Основная идея этого инструмента — обнаруживать любые потенциальные утечки секретов. Вы можете посмотреть его в действии в демонстрационном видео или прочитать обо всех его функциях в этой статье.

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 и 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 также поддерживает расширенный поиск. Помимо простого поиска с подстановочными знаками, этот инструмент позволяет создавать условия. Предположим, вы ищете утечку корпоративных email-адресов. Кроме того, вас интересуют только крупные утечки, содержащие не менее 100 email-адресов. Для этого следует отредактировать файл rules.yaml следующим образом:

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

Предположим другой сценарий: вы ищете термины "pass", "password", "haslo", "hasło" (если вы анализируете репозиторий польской компании) в файлах .db или .sql. Тогда вы можете добиться этого, изменив файл 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.

Скачать инструмент