
Быстрый инструмент для разведки GitHub. Сканирует на утечки секретов по всему GitHub, не только в известных репозиториях и организациях. Поддержка GitHub дорков.
GitHound ищет раскрытые ключи API, секреты и учётные данные на GitHub, комбинируя GitHub-дорки с сопоставлением шаблонов, контекстным анализом и анализом истории коммитов. Укажите GitHub-дорк для GitHound, и он просканирует все файлы и репозитории, соответствующие вашему запросу, на наличие секретов. В отличие от типичных сканеров, GitHound использует GitHub Code Search API, что обеспечивает полную видимость во всех публичных репозиториях, а не только в нескольких целях. Дополнительная информация доступна в сопровождающей статье блога.
Визуализируйте и управляйте результатами поиска в реальном времени с помощью новой приборной панели GitHound Explore. Начните работу бесплатно прямо сейчас на https://githoundexplore.com или используя флаг --dashboard. Узнайте, как использовать это с локальной установкой GitHound или TruffleHog, на странице Wiki. Имейте в виду, что вы можете продолжать использовать GitHound без приборной панели.
Мы также запустили Базу данных GitHub-дорков, где вы можете просматривать и искать дорки для различных ключевых слов API и получать идеи для новых дорков! Ознакомьтесь с ней на https://githoundexplore.com/github-dorks.
🔍 Глобальный поиск по GitHub – находите секреты по всему GitHub, включая Gist'ы
🔑 Умное обнаружение ключей API – regex + энтропия + контекстный анализ
🕵️ Копание в истории коммитов – обнаружение удалённых или отменённых учётных данных
🧮 Адаптивная оценка – отсеивает ложные срабатывания
🧰 Декодирование Base64 и извлечение закодированных секретов
💻 Вывод в JSON и пользовательские правила regex для конвейеров автоматизации
echo "AKIA" | git-hound или git-hound --query "AKIA"
config.yml установлен ключ API../git-hound для проверки (убедитесь, что вы находитесь в правильном каталоге!)Конфигурация:
GitHound в основном использует config.yml (находится в текущем каталоге или $HOME/.githound/) для конфигурации. Смотрите config.example.yml для примера.
Кроме того, вы можете использовать переменные окружения, которые переопределяют значения в config.yml:
GITHOUND_GITHUB_TOKEN: Устанавливает токен доступа к GitHub API.GITHOUND_INSERT_KEY: Устанавливает ключ вставки GitHoundExplore для функции --dashboard.GitHound использует базу данных регулярных выражений для ключей API, поддерживаемую авторами Gitleaks.
Зная шаблон ключей API для конкретного сервиса, вы можете искать эти ключи на GitHub. Затем вы можете перенаправить совпадения для вашего пользовательского регулярного выражения в собственный скрипт для проверки ключа API на сервисе и для идентификации скомпрометированной учётной записи.
echo "api.halcorp.biz" | githound --dig-files --dig-commits --many-results --rules halcorp-api-regexes.txt --results-only | python halapitester.py
Для обнаружения будущих утечек ключей API GitHub предлагает Защитное сканирование при пуше для немедленного обнаружения ключей API при их публикации.
Моё основное использование GitHound — поиск конфиденциальной информации для программ Bug Bounty. Для высокоприоритетных целей полезны хак --many-results и флаг --languages для сбора >100 страниц результатов.
echo "\"uberinternal.com\"" | githound --dig-files --dig-commits --many-results --languages common-languages.txt --threads 100
https://github.com/tillson/git-hound/blob/master/internal/app/keyword_scan.go GitHound находит ключи API с помощью комбинации точных регулярных выражений для распространённых сервисов, таких как Slack и AWS, и контекстно-зависимого общего регулярного выражения для API. Это находит длинные строки, похожие на ключи API, окружённые такими ключевыми словами, как "Authorization" и "API-Token". GitHound считает их ложными срабатываниями, а затем подтверждает их легитимность с помощью энтропии Шеннона, проверки по словарным словам, вычисления уникальности и обнаружения кодировок. Затем GitHound выводит положительные результаты с высокой степенью уверенности. Для файлов, содержащих закодированные секреты, декодирует строки base64 и ищет в декодированных строках ключи API.
Ознакомьтесь с этой статьёй блога для получения более подробной информации о вариантах использования и методологиях.
GitHound упрощает поиск раскрытых ключей API на GitHub с помощью сопоставления шаблонов, целенаправленных запросов и надёжной системы оценки.
Usage:
-h, --help справочная информация для githound
--dashboard Потоковая передача результатов на веб-панель (см. https://githoundexplore.com)
--all-results Печатать все результаты, даже если они не содержат секретов
--api-debug Выводит подробную информацию о запросах к GitHub API и подсчитывает их.
--config-file string Укажите путь к файлу конфигурации.
--debug Включает подробное отладочное логирование.
--dig-commits Копаться в истории коммитов для поиска дополнительных секретов (интенсивно по CPU).
--dig-files Копаться в файлах репозитория для поиска дополнительных секретов (интенсивно по CPU).
--fast Пропустить просмотр файлов и вернуть только предварительный просмотр поиска.
--json Печатать результаты в формате JSON
--many-results Поиск >100 страниц с использованием хака фильтрации
--no-api-keys Не искать общие ключи API.
--no-files Не искать интересные файлы.
--no-gists Не искать Gist'ы
--no-keywords Не искать встроенные ключевые слова
--no-repos Не искать в репозиториях
--no-scoring Не использовать оценку для фильтрации ложных срабатываний.
--otp-code string Токен двухфакторной аутентификации учётной записи GitHub, используемый для входа. (Используйте только если у вас включена 2FA на учётной записи через приложение-аутентификатор)
--pages int Максимальное количество страниц для поиска на запрос (по умолчанию 100)
--profile Включить профилирование pprof на localhost:6060
--profile-addr string Адрес для обслуживания профилей pprof (по умолчанию "localhost:6060")
--query string Строка запроса (по умолчанию: stdin)
--query-file string Файл, содержащий список поддоменов (или других запросов).
--results-only Печатать только строки совпадений.
--rules string Путь к списку регулярных выражений или к папке с правилами GitLeaks. (по умолчанию "rules/")
--search-type api Интерфейс поиска (api или `ui`).
--threads int Количество потоков для раскопок (по умолчанию 20)
В файле launch.json передайте необходимые флаги в качестве аргументов "args": [ "searchKeyword", "tillsongalloway.com", "--regex-file", "regexes.txt" ]
Из главной папки: go build .
Чтобы собрать Docker-образ для Git-Hound, используйте следующую команду:
docker build -t my-githound-container .
Эта команда собирает Docker-образ с тегом my-githound-container. Вы можете сменить имя тега на своё усмотрение.
Чтобы запустить Docker-контейнер Git-Hound, вам нужно предоставить ваш файл config.yaml и любые входные файлы (например, subdomains.txt) через Docker-тома.
config.yamlРазместите ваш файл config.yaml в известном месте на хост-машине. Этот файл должен содержать вашу конфигурацию Git-Hound, включая учётные данные GitHub.
Пример config.yaml:
# config.yaml
github_username: "your_username"
github_password: "your_password"
# Необязательно: GitHub TOTP seed
# github_totp_seed: "ABCDEF1234567890"
Если у вас есть файл, например, subdomains.txt, разместите его в каталоге на хост-машине.
Используйте следующую команду для запуска контейнера с вашей конфигурацией и входными файлами:
docker run -v /path/to/config.yaml:/root/.githound/config.yaml -v $(pwd)/data:/data my-githound-container --subdomain-file /data/subdomains.txt
Замените /path/to/config.yaml на фактический путь к вашему файлу config.yaml. Часть -v $(pwd)/data:/data монтирует каталог, содержащий ваши входные файлы (subdomains.txt), в контейнер.