truffleHog

Описание truffleHog

Ищет по репозиториям git пароли, ключи и другие чувствительные данные. Для идентификации секретов ищет строки с высокой энтропией, анализирует историю изменений кода и ветви.

Этот инструмент эффективен для поиска случайно сохранённых в исходном коде паролей и ключей, даже если впоследствии они были убраны.

Этот модуль пройдёт по всей истории изменений (комитов) каждой ветви и проверит каждое различие (diff) от каждого изменения кода и будет искать в них пароли и ключи. Поиск выполняется как по регулярным выражениям, так и с расчётом энтропии. Для проверок энтропии, truffleHog будет вычислять энтропию Шэннона (Shannon) для набора символов base64 и набора шестнадцатеричных символов для каждого фрагмента текста более длиной более 20 символов, состоящего из этих наборов символов в каждом diff (различии текста). Если на любой точке выявлена строка с высокой энтропией и длиной более 20 символов, то она будет выведена на экран.

Домашняя страница: https://github.com/dxa4481/truffleHog

Автор: Dylan Ayrey

Лицензия: GPLv2

Справка по truffleHog

Использование:

trufflehog [-h] [--json] [--regex] [--rules ПРАВИЛА]
                  [--entropy DO_ENTROPY] [--since_commit SINCE_COMMIT]
                  [--max_depth МАКСИМАЛЬНАЯ_ГЛУБИНА] [--branch ВЕТВЬ]
                  [-i INCLUDE_PATHS_FILE] [-x EXCLUDE_PATHS_FILE]
                  [--repo_path REPO_PATH] [--cleanup]
                  git_url

Опции:

Позиционные аргументы:
  git_url               URL для поиска паролей и ключей

Опциональные аргументы:
  -h, --help            показать справку и выйти
  --json                Вывод в JSON
  --regex               Включить проверки регулярными выражениями с высоким сигналом
  --rules ПРАВИЛА         Игнорировать регулярные выражения по умолчанию и списки исходников из файла json
  --entropy DO_ENTROPY  Включить проверки энтропии
  --since_commit SINCE_COMMIT
                        Хеш комита с которого начать сканирование
  --max_depth МАКСИМАЛЬНАЯ_ГЛУБИНА
                       Максимальная глубина комитов для аналилза истории при поиске 
                        паролей и ключей
  --branch ВЕТВЬ       Имя ветви для сканирования
  -i INCLUDE_PATHS_FILE, --include_paths INCLUDE_PATHS_FILE
                        Файл с регулярными выражениями (одно на строку), по крайней
                        одно из которых должно совпадать с путём объекта Git чтобы
                        он был просканирован; строки, начинающиеся с "#" трактуются
                        как комментарии и игнорируются. Если пустой или не указан
                        (по умолчанию), все пути объектов Git включены если
                        не исключены опцией --exclude_paths.
  -x EXCLUDE_PATHS_FILE, --exclude_paths EXCLUDE_PATHS_FILE
                        Файл с регулярными выражениями (одно на строку), ни одно
                        из которых не должно совпадать с путём объекта Git чтобы он
                        был просканирован; строки, начинающиеся с "#" трактуются
                        как комментарии и игнорируются. Если пустой или не указан
                        (по умолчанию), никакие пути объектов Git не исключаются если
                        они не исключены опцией --include_paths.
  --repo_path REPO_PATH
                        Путь до клонированного репозитория. Если указана, git_url не
                        используется
  --cleanup             Очистить все временные файлы результатов

Руководство по truffleHog

Страница man отсутствует.

Настройка

Можно создать файл с собственными регулярными выражениями и для добавления их к правилам сканирования, их можно указать опцией –rules /путь/до/правил. Это должен быть файл json следующего формата:

{
    "RSA private key": "-----BEGIN EC PRIVATE KEY-----"
}

Имеется большой простор для тонкой настройки: можно добавить такие вещи как перечисление субдоменов, выявление s3 bucket и другие полезные регулярные выражения.

Базовые правила truffleHog берутся из исходного файла https://github.com/dxa4481/truffleHogRegexes/blob/master/truffleHogRegexes/regexes.json

Примеры запуска truffleHog

Найти пароли и ключи в репозитории https://github.com/Mi-Al/WiFi-autopwner:

trufflehog https://github.com/Mi-Al/WiFi-autopwner

Раньше ruffleHog функционировал на работе проверок энтропии строк в git diff. Эта функциональность ещё существует, но были добавлены проверки по высоко сигнальным регулярным выражениям (high signal regex). Если вы хотите использовать только поиск по регулярным выражениям, то для этого случая добавлена возможность подавления проверок энтропии.

truffleHog --regex --entropy=False https://github.com/dxa4481/truffleHog.git

Или:

truffleHog file:///user/dxa4481/codeprojects/truffleHog/

С опциями –include_paths и –exclude_paths, также возможно ограничить сканирование поднабором объектов в истории Git перечислив в файле регулярные выражения (одно на строку), которые должны совпадать с путями целевых объектов. Для иллюстрации, взгляните на файлы включения и исключения ниже:

Содержимое файла include-patterns.txt:

src/
# lines beginning with "#" are treated as comments and are ignored
gradle/
# regexes must match the entire path, but can use python's regex syntax for
# case-insensitive matching and other advanced options
(?i).*\.(properties|conf|ini|txt|y(a)?ml)$
(.*/)?id_[rd]sa$

Содержимое файла exclude-patterns.txt:

(.*/)?\.classpath$
.*\.jmx$
(.*/)?test/(.*/)?resources/

Эти файлы фильтров можно задействовать следующим образом:

trufflehog --include_paths include-patterns.txt --exclude_paths exclude-patterns.txt file://путь/до/моего/репозитория.git

С этими фильтрами, проблемы, найденные в файлах в корневом уровне директории src, будут выведены на экран, кроме как если они содержат расширения .classpath или .jmx или они найдены в директории src/test/dev/resources/.

Эти возможности помогают сократить шум, и задействовать этот инструмент в конвейере разработки.

Установка truffleHog

Установка в Kali Linux

sudo pip3 install truffleHog

Установка в BlackArch

Программа предустановлена в BlackArch.

sudo pacman -S trufflehog

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты truffleHog

Инструкции по truffleHog

Ссылки на инструкции будут добавлены позже.

Близкие программы:

  • DumpsterDiver (100%)
  • LaZagne (72.4%)
  • hashID (57.5%)
  • HashTag (57.5%)
  • omnihash (56.4%)
  • WiFi-Pumpkin (ранее 3vilTwinAttacker) (RANDOM - 1.1%)
  • Рекомендуется Вам:

    Comments are Closed