
gitGraber: мониторинг GitHub для поиска конфиденциальных данных в реальном времени для различных онлайн-сервисов, таких как: Google, Amazon, Paypal, Github, Mailgun, Facebook, Twitter, Heroku, Stripe...

gitGraber — это инструмент, разработанный на Python3 для мониторинга GitHub, поиска и обнаружения конфиденциальных данных в реальном времени для различных онлайн-сервисов, таких как: Google, Amazon (AWS), Paypal, Github, Mailgun, Facebook, Twitter, Heroku, Stripe, Twilio...

Важно понимать, что gitGraber не предназначен для проверки истории репозиториев — многие инструменты уже отлично справляются с этим. gitGraber изначально разрабатывался для мониторинга и анализа последних проиндексированных файлов на GitHub. Если gitGraber находит что-то интересное, вы получите уведомление в вашем канале Slack. Вы также можете использовать его для получения результатов непосредственно в командной строке.
Исходя из нашего опыта, мы убеждены, что утечки происходят не только от самих организаций, но и от поставщиков услуг и сотрудников, у которых не обязательно есть «профиль», указывающий на то, что они работают в конкретной организации.
Regex должны быть максимально точными. Иногда могут быть ложные срабатывания; не стесняйтесь вносить вклад в улучшение разведки и добавление новых regex для обнаружения шаблонов.
Мы предпочитаем уменьшать количество ложных срабатываний, а не отправлять уведомления на каждый «стандартный» ключ API, который может быть найден gitGraber, но не имеет значения для вашего мониторинга.
gitGraber отображает некоторые вещи непосредственно в CLI: запрос GitHub, обнаружение злоупотреблений по коду состояния (200 или 403)... и если вы не видите что-то вроде [+] POSSIBLE FOO TOKEN FOUND, это просто означает, что gitGraber не нашел секретных токенов для вашего заданного ключевого слова.
Это сообщение появляется, когда GitHub обнаруживает большое количество запросов от вашего собственного токена GitHub. Не волнуйтесь, gitGraber может справиться с этим и попытается использовать другой токен, определенный в файле config.py. Примечание: это временное ограничение, и вам не нужно создавать новый токен.
Нет, чтобы избежать этого, gitGraber сохраняет URL-адреса всех репозиториев в файле с именем rawGitUrls.txt. Если репозиторий уже был просканирован gitGraber и найден ключ API, вы не получите уведомление.
Вам нужно отредактировать файл tokens.py и добавить шаблон в качестве аргумента-списка при инициализации токена. Например, чтобы добавить шаблон XXXX к токену MAILCHIMP, строка tokensList.append(Token('MAILCHIMP', '\W(?:[a-f0-9]{32}(-us[0-9]{1,2}))\W')) становится tokensList.append(Token('MAILCHIMP', '\W(?:[a-f0-9]{32}(-us[0-9]{1,2}))\W', ['XXXX'])).
usage: gitGraber.py [-h] [-k KEYWORDSFILE] [-q QUERY] [-s] [-w WORDLIST]
optional arguments:
-h, --help Show this help message and exit
-k KEYWORDSFILE, --keyword KEYWORDSFILE Specify a keywords file (-k keywordsfile.txt)
-q QUERY, --query QUERY Specify your github query (-q "apikey")
-m, --monitor Enable monitoring of your search query by creating cron job [Every 30 mins]
-d, --discord Enable discord notifications
-s, --slack Enable slack notifications
-tg, --telegram Enable telegram notifications
-w WORDLIST, --wordlist WORDLIST Create a wordlist that fills dynamically with discovered filenames on GitHub
-l LIMIT_DAYS, --limit LIMIT_DAYS Limit the results to commits less than N days old
Например, для поиска определенного слова в github в сочетании с каждым словом из файла keywordsfile.txt и вывода результата в Slack:
python3 gitGraber.py -k keywordsfile.txt -q YOURWORD -s
Можно искать, например, конкретное доменное имя, но оно должно быть в двойных кавычках:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s
Если вы хотите создать собственный список слов на основе файлов, найденных на Github, чтобы затем использовать его с вашим любимым инструментом фаззинга, добавьте аргумент -w:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -w mysuperwordlist.txt
Если вы хотите отслеживать свой поисковый запрос каждые 30 минут, вы можете использовать флаг -m, который указывает gitGraber создать задачу cron на основе вашего запроса:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -m
Вышеуказанное будет искать секреты каждые 30 минут по вашему поисковому запросу и отправлять вам уведомление в Slack при обнаружении совпадений.
gitGraber требует некоторые зависимости; чтобы установить их в вашем окружении:
pip3 install -r requirements.txt
Перед запуском gitGraber необходимо изменить файл конфигурации config.py:
GITHUB_TOKENS = ['yourToken1Here','yourToken2Here']DISCORD_WEBHOOKURL = 'https://discordapp.com/api/webhooks/7XXXX/XXXXXX'SLACK_WEBHOOKURL = 'https://hooks.slack.com/services/TXXXX/BXXXX/XXXXXXX'TELEGRAM_CONFIG = { "token": "XXXXX:xXXXXXXXXXXXXX", "chat_id": -99999999 }Чтобы запустить gitGraber: python3 gitGraber.py -k wordlists/keywords.txt -q "uber" -s
В настоящее время gitGraber поддерживает 31 различный токен. Все эти модели обнаружения (regex) хранятся в файле tokens.py:
Некоторые списки слов и regex созданы нами, а другие вдохновлены другими репозиториями/исследователями:
Спасибо за ваш вклад и помощь в улучшении gitGraber:
Этот проект создан только для образовательных целей и этического тестирования. Использование этого инструмента для атак на цели без предварительного взаимного согласия незаконно. Разработчики не несут ответственности и не отвечают за любое неправильное использование или ущерб, причиненный этим инструментом.
| Сервис | Ссылка |
|---|
| GitHub | Как создать токен API GitHub |
| Discord | Как создать URL вебхука Discord |
| Slack | Как создать URL вебхука Slack |
| Telegram | Как создать бота Telegram |