
Поиск утекших секретов через GitHub
Поиск на GitHub — это довольно мощная и полезная функция, которую можно использовать для поиска конфиденциальных данных в репозиториях. Коллекция dork-запросов для GitHub может раскрыть конфиденциальную личную и/или организационную информацию, такую как закрытые ключи, учётные данные, токены аутентификации и т. д. Этот список предназначен для оценки безопасности и проведения пентеста систем.
github-dork.py — это простой инструмент на Python, который может выполнять поиск по вашему репозиторию или репозиториям вашей организации/пользователя. На данный момент это не идеальный инструмент, но он предоставляет базовую функциональность для автоматизации поиска по вашим репозиториям с использованием dork-запросов, указанных в текстовом файле.
Этот инструмент использует github3.py для взаимодействия с GitHub Search API.
Клонируйте этот репозиторий и выполните:
pip install .
Вы также можете запускать github-dorks с помощью Docker для единообразного окружения:
# Сборка Docker-образа
docker build -t github-dorks .
# Запуск с токеном GitHub (рекомендуется)
docker run -e GH_TOKEN=your_github_token github-dorks -u someuser
# Запуск с именем пользователя/паролем
docker run -e GH_USER=your_username -e GH_PWD=your_password github-dorks -u someuser
# Сохранение результатов в CSV-файл
docker run -v $(pwd)/output:/app/output -e GH_TOKEN=your_github_token github-dorks -u someuser -o /app/output/results.csv
GH_USER - Переменная окружения для указания пользователя GitHub
GH_PWD - Переменная окружения для указания пароля
GH_TOKEN - Переменная окружения для указания токена GitHub
GH_URL - Переменная окружения для указания базового URL GitHub Enterprise
Некоторые примеры использования приведены ниже:
github-dork.py -r techgaun/github-dorks # поиск в одном репозитории
github-dork.py -u techgaun # поиск во всех репозиториях пользователя
github-dork.py -u dev-nepal # поиск во всех репозиториях организации
GH_USER=techgaun GH_PWD=<mypass> github-dork.py -u dev-nepal # поиск как аутентифицированный пользователь
GH_TOKEN=<github_token> github-dork.py -u dev-nepal # поиск с использованием токена аутентификации
GH_URL=https://github.example.com github-dork.py -u dev-nepal # поиск в экземпляре GitHub Enterprise
Пожалуйста, рассмотрите возможность добавления dork-запросов, которые могут раскрывать потенциально конфиденциальную информацию на GitHub.
На данный момент я не распределяю их по категориям. Вместо этого я просто привожу список dork-запросов с описанием. Многие из dork-запросов можно изменить, чтобы сделать поиск более конкретным или общим. Больше опций можно найти здесь.
| Dork | Описание |
|---|
| filename:.npmrc _auth | Данные аутентификации реестра npm |
| filename:.dockercfg auth | Данные аутентификации реестра Docker |
| extension:pem private | Закрытые ключи |
| extension:ppk private | Закрытые ключи PuTTYgen |
| filename:id_rsa or filename:id_dsa | Закрытые SSH-ключи |
| extension:sql mysql dump | Дамп MySQL |
| extension:sql mysql dump password | Дамп MySQL с поиском пароля; можно пробовать разные варианты |
| filename:credentials aws_access_key_id | Может возвращать ложные отрицательные результаты с фиктивными значениями |
| filename:.s3cfg | Может возвращать ложные отрицательные результаты с фиктивными значениями |
| filename:wp-config.php | Конфигурационные файлы WordPress |
| filename:.htpasswd | Файлы htpasswd |
| filename:.env DB_USERNAME NOT homestead | Laravel .env (CI, а также различные Ruby-фреймворки) |
| filename:.env MAIL_HOST=smtp.gmail.com | Конфигурация SMTP Gmail (попробуйте также другие SMTP-сервисы) |
| filename:.git-credentials | Хранилище учётных данных Git, добавьте NOT username для более точных результатов |
| PT_TOKEN language:bash | Токены Pivotal Tracker |
| filename:.bashrc password | Поиск паролей и т.п. в .bashrc (попробуйте также с .bash_profile) |
| filename:.bashrc mailchimp | Вариация предыдущего (попробуйте больше вариаций) |
| filename:.bash_profile aws | Ключи доступа и секретные ключи AWS |
| rds.amazonaws.com password | Возможные учётные данные Amazon RDS |
| extension:json api.forecast.io | Попробуйте вариации, найдите ключи/секреты API |
| extension:json mongolab.com | Учётные данные Mongolab в JSON-конфигурациях |
| extension:yaml mongolab.com | Учётные данные Mongolab в YAML-конфигурациях (попробуйте с yml) |
| jsforce extension:js conn.login | Возможные учётные данные Salesforce в проектах Node.js |
| SF_USERNAME salesforce | Возможные учётные данные Salesforce |
| filename:.tugboat NOT _tugboat | Конфигурация Digital Ocean Tugboat |
| HEROKU_API_KEY language:shell | Ключи API Heroku |
| HEROKU_API_KEY language:json | Ключи API Heroku в JSON-файлах |
| filename:.netrc password | netrc, который может содержать чувствительные учётные данные |
| filename:_netrc password | netrc, который может содержать чувствительные учётные данные |
| filename:hub oauth_token | Конфигурация hub, хранящая токены GitHub |
| filename:robomongo.json | Файл учётных данных MongoDB, используемый Robomongo |
| filename:filezilla.xml Pass | Конфигурационный файл FileZilla с возможными пользователем/паролем для FTP |
| filename:recentservers.xml Pass | Конфигурационный файл FileZilla с возможными пользователем/паролем для FTP |
| filename:config.json auths | Данные аутентификации реестра Docker |
| filename:idea14.key | Ключ IntelliJ Idea 14, попробуйте вариации для других версий |
| filename:config irc_pass | Возможная конфигурация IRC |
| filename:connections.xml | Возможная конфигурация подключений к БД, попробуйте вариации для уточнения |
| filename:express.conf path:.openshift | Конфигурация OpenShift, только email и сервер |
| filename:.pgpass | Файл PostgreSQL, который может содержать пароли |
| filename:proftpdpasswd | Имена пользователей и пароли proftpd, созданные cPanel |
| filename:ventrilo_srv.ini | Конфигурация Ventrilo |
| [WFClient] Password= extension:ica | Информация WinFrame-Client, необходимая пользователям для подключения к серверам Citrix Application Servers |
| filename:server.cfg rcon password | Пароли RCON Counter Strike |
| JEKYLL_GITHUB_TOKEN | Токены GitHub, используемые для Jekyll |
| filename:.bash_history | Файл истории Bash |
| filename:.cshrc | RC-файл для оболочки csh |
| filename:.history | Файл истории (часто используется многими инструментами) |
| filename:.sh_history | История оболочки Korn |
| filename:sshd_config | Конфигурация сервера OpenSSH |
| filename:dhcpd.conf | Конфигурация службы DHCP |
| filename:prod.exs NOT prod.secret.exs | Файл конфигурации Phoenix для продакшна |
| filename:prod.secret.exs | Секретный файл Phoenix для продакшна |
| filename:configuration.php JConfig password | Конфигурационный файл Joomla |
| filename:config.php dbpasswd | Пароль базы данных PHP-приложения (например, phpBB) |
| path:sites databases password | Учётные данные базы данных Drupal |
| shodan_api_key language:python | Ключи API Shodan (попробуйте также другие языки) |
| filename:shadow path:etc | Содержит зашифрованные пароли и информацию об учётных записях новых Unix-систем |
| filename:passwd path:etc | Содержит информацию об учётных записях пользователей, включая зашифрованные пароли традиционных Unix-систем |
| extension:avastlic "support.avast.com" | Содержит лицензионные ключи для антивируса Avast! |
| filename:dbeaver-data-sources.xml | Конфигурация DBeaver, содержащая учётные данные MySQL |
| filename:.esmtprc password | Конфигурация esmtp |
| extension:json googleusercontent client_secret | Учётные данные OAuth для доступа к API Google |
| HOMEBREW_GITHUB_API_TOKEN language:shell | Токен GitHub, обычно устанавливаемый пользователями Homebrew |
| xoxp OR xoxb | Токены Slack для ботов и приватные токены |
| .mlab.com password | Учётные данные MongoDB, размещённой на MLAB |
| filename:logins.json | Коллекция сохранённых паролей Firefox (key3.db обычно находится в том же репозитории) |
| filename:CCCam.cfg | Конфигурационный файл сервера CCCam |
| msg nickserv identify filename:config | Возможные пароли для входа в IRC |
| filename:settings.py SECRET_KEY | Секретные ключи Django (обычно позволяют перехватить сессию, RCE и т.д.) |
| filename:secrets.yml password | Имена пользователей/пароли, приложения Rails |
| filename:master.key path:config | Главный ключ Rails (используется для расшифровки credentials.yml.enc в Rails 5.2+) |
| filename:deployment-config.json | Создаётся sftp-deployment для Atom, содержит данные сервера и учётные данные |
| filename:.ftpconfig | Создаётся remote-ssh для Atom, содержит данные сервера SFTP/SSH и учётные данные |
| filename:.remote-sync.json | Создаётся remote-sync для Atom, содержит данные сервера FTP и/или SCP/SFTP/SSH и учётные данные |
| filename:sftp.json path:.vscode | Создаётся vscode-sftp для VSCode, содержит данные сервера SFTP/SSH и учётные данные |
| filename:sftp-config.json | Создаётся SFTP для Sublime Text, содержит данные сервера FTP/FTPS или SFTP/SSH и учётные данные |
| filename:WebServers.xml | Создаётся IDE JetBrains, содержит учётные данные веб-сервера с закодированными паролями (не зашифрованы!) |
| "api_hash" "api_id" | Токен Telegram API |
| "https://hooks.slack.com/services/" | URL-адреса служб Slack, часто содержащие секретный токен API в суффиксе |
| filename:github-recovery-codes.txt | Ключ восстановления GitHub |
| filename:gitlab-recovery-codes.txt | Ключ восстановления GitLab |
| filename:discord_backup_codes.txt | Ключ восстановления Discord |
| extension:yaml cloud.redislabs.com | Учётные данные Redis, предоставленные Redis Labs, найденные в YAML-файле |
| extension:json cloud.redislabs.com | Учётные данные Redis, предоставленные Redis Labs, найденные в JSON-файле |