Раздел OSINT (разведка): Что такое Github Dorking?

Добро пожаловать на наш форум!

Спасибо за посещение нашего сообщества. Пожалуйста, зарегистрируйтесь или войдите, чтобы получить доступ ко всем функциям.


Gibby

Автор
Команда проекта

Регистрация
Сообщений
1,635
Репутация
45
Сделок
3.png
Здесь вы узнаете, как повысить свой уровень в OSINT, будут приведены примеры и готовые поисковые запросы.

(Вы можете дополнить меня, если я что-то забыл в комментариях).


Что это такое и для чего оно служит?​

Github Dorking - чрезвычайно важная часть программы разведки сайтов или BugBounty.

Если вы знакомы с Google Dorking, то они очень похожи и служат одной цели - поиск по ключевым слов в системе.

Что можно найти с помощью Github Dorking?​

1. Sensitive authorization data:​

  • Токены доступа (OAuth, JWT и т. д.).
  • Ключи API (Google, AWS, Azure, Twitter, Stripe и т. д.).
  • Логины и пароли в коде или конфигурационных файлах.
  • Ключи SSH (особенно закрытые ключи).
  • Файлы .env, содержащие секреты.

2. Confidential Files:​

  • Файлы конфигурации приложения (config.php, .env, web.config).
  • Журналы ошибок или развертывания (error.log, debug.log).
  • Файлы баз данных (database.sql, .sqlite).

3. server information:​

  • IP-адреса серверов или внутренних узлов.
  • Секреты развертывания (например, Ansible Vault или Kubernetes Secrets).
  • Логины/пароли для серверов или баз данных.

4. Sensitive company data:​

  • Внутренние документы или служебные записки.
  • Названия внутренних проектов.
  • Данные о внутренней инфраструктуре (например, доменные имена, поддомены).

5. Error or vulnerability codes:​

  • Стационарные токены или тестовые учетные записи.
  • Жестко закодированные ключи шифрования.
  • Уязвимый код или устаревшие библиотеки.

6. Personal information:​

  • Адреса электронной почты сотрудников.
  • Файлы с личными данными (user_data.json, credentials.txt).
  • Фотографии или документы (например, случайно загруженные сканы).

7. Vulnerable or unprotected components:​

  • Данные CI/CD (например, файлы из Jenkins или GitLab CI/CD).
  • Скрипты, содержащие уязвимости.
  • Логины и пароли для облачных сервисов.

Как использовать Github Dorking шаг за шагом 👣.​

1. Первое, что нужно сделать, - найти свою «цель» в github, для чего можно использовать несколько подходов:1.1 по названию компании/сайта .​

Основной и самый простой способ - ввести название компании или сайта и найти их репозиторий (target - заменить на любой сайт): https://github.com/search?q=target&type=repositories.
Чем крупнее и известнее компания, тем больше шума будет в поиске и похожих репозиториях

Возьмем для примера Google:

4.png

Выглядит устрашающи - 965K репозиториев, не так ли?

Но посмотрите внимательно на фильтры слева; вы увидите, что там меньше пользователей, что позволит вам быстрее найти основную компанию. (Компании часто создают отдельного пользователя(организационный аккаунт) на платформе для хранения своих данных и разработок).

Но, как вы видите, результатов все равно много, ниже я приведу другой способ.

1.2 Поиск по исходному коду или коду с сайта​

Здесь все индивидуально, нужно открыть ваш target:target.com и попытаться найти исходный код, используя fuzz и находя директории (пример target.com/login/FUZZ Здесь мы пытаемся найти .js файл, который отвечает за авторизацию) или уникальные строки кода/ключа на сайте. После их нахождения мы вводим в адрес Code и заменяем их на найденный код/ключ https://github.com/search?q=Code&type=code.
Что касается ключей, то они подойдут, так как чаще всего уникальны.

2 Поиск внутри репозитория/компании (Github Dorking)​

После нахождения компании🏢:​

Некоторые проекты и сайты разрабатываются сторонними организациями и фрилансерами, поэтому не всегда стоит спускаться в организационный аккаунт, но если вы уверены что аккаунт принадлежит компании , то можете спуститься в него и начальную разведку производить там. но для простоты объяснения я покажу пример с организационным аккаунтом.
Откройте организационный счет компании:
https://github.com/google
Для поиска в организационном аккаунте можно использовать строку поиска в github:

5.png

6.png

Или воспользуйтесь строкой поиска Google и замените в ней TEST на то, что вы ищете (другие примеры будут показаны в этой форме) https://github.com/search?q=org%3Agoogle%20TEST&type=code

Как искать скрытые данные в git? Github Dorking в помощь!​

Начните с поиска на GitHub названия вашей целевой организации в сочетании с такими потенциально конфиденциальными типами информации, как «api key», «api keys», «apikey», «authorization: Bearer», „access_token“, „secret“ или „token“. (Более полный список Github Dorking приведен ниже в конце статьи).

Затем изучите различные вкладки репозитория GitHub, чтобы обнаружить конечные точки API и потенциальные слабые места. Проанализируйте исходный код на вкладке Code, найдите ошибки на вкладке Issues и просмотрите предлагаемые изменения на вкладке Pull Requests.

7.png

На вкладке «Code» вы можете просмотреть код в его текущем виде или использовать ctrl-F для поиска интересующих вас терминов (таких как API, key и secret). Кроме того, можно просмотреть исторические изменения кода с помощью кнопки «history», расположенной в правом верхнем углу на изображении выше. Если вы столкнулись с проблемой или комментарием, который наводит вас на мысль, что с кодом когда-то были связаны уязвимости, вы можете просмотреть исторические коммиты, чтобы узнать, доступны ли эти уязвимости для просмотра.

При просмотре коммита воспользуйтесь кнопкой Split, чтобы просмотреть боковое сравнение версий файлов и найти точное место, где в код было внесено изменение.

8.png
Кнопка «Split» (вверху справа на изображении выше) позволяет разделить предыдущий код (слева) и обновленный код (справа).

На вкладке «issuse» разработчики могут отслеживать ошибки, задачи и запросы на функции. Если проблема открыта, велика вероятность того, что уязвимость все еще присутствует в коде.

Вкладка Pull requests - это место, позволяющее разработчикам совместно вносить изменения в код. Если вы просмотрите предложенные изменения, иногда вам может повезти и вы найдете проблему.

Обратите внимание на используемые языки программирования, информацию о конечных точках API и документацию по использованию - все это пригодится вам в будущем.

Дорки:​

Код:
".mlab.com password"
"access_key"
"access_token"
"amazonaws"
"api.googlemaps AIza"
"api_key"
"api_secret"
"apidocs"
"apikey"
"apiSecret"
"app_key"
"app_secret"
"appkey"
"appkeysecret"
"application_key"
"appsecret"
"appspot"
"auth"
"auth_token"
"authorizationToken"
"aws_access"
"aws_access_key_id"
"aws_key"
"aws_secret"
"aws_token"
"AWSSecretKey"
"bashrc password"
"bucket_password"
"client_secret"
"cloudfront"
"codecov_token"
"config"
"conn.login"
"connectionstring"
"consumer_key"
"credentials"
"database_password"
"db_password"
"db_username"
"dbpasswd"
"dbpassword"
"dbuser"
"dot-files"
"dotfiles"
"encryption_key"
"fabricApiSecret"
"fb_secret"
"firebase"
"ftp"
"gh_token"
"github_key"
"github_token"
"gitlab"
"gmail_password"
"gmail_username"
"herokuapp"
"internal"
"irc_pass"
"JEKYLL_GITHUB_TOKEN"
"key"
"keyPassword"
"ldap_password"
"ldap_username"
"login"
"mailchimp"
"mailgun"
"master_key"
"mydotfiles"
"mysql"
"node_env"
"npmrc _auth"
"oauth_token"
"pass"
"passwd"
"password"
"passwords"
"pem private"
"preprod"
"private_key"
"prod"
"pwd"
"pwds"
"rds.amazonaws.com password"
"redis_password"
"root_password"
"secret"
"secret.password"
"secret_access_key"
"secret_key"
"secret_token"
"secrets"
"secure"
"security_credentials"
"send.keys"
"send_keys"
"sendkeys"
"SF_USERNAME salesforce"
"sf_username"
"site.com" FIREBASE_API_JSON=
"site.com" vim_settings.xml
"slack_api"
"slack_token"
"sql_password"
"ssh"
"ssh2_auth_password"
"sshpass"
"staging"
"stg"
"storePassword"
"stripe"
"swagger"
"testuser"
"token"
"x-api-key"
"xoxb "
"xoxp"
[WFClient] Password= extension:ica
access_key
bucket_password
dbpassword
dbuser
extension:avastlic "support.avast.com"
extension:bat
extension:cfg
extension:env
extension:exs
extension:ini
extension:json api.forecast.io
extension:json googleusercontent client_secret
extension:json mongolab.com
extension:pem
extension:pem private
extension:ppk
extension:ppk private
extension:properties
extension:sh
extension:sls
extension:sql
extension:sql mysql dump
extension:sql mysql dump password
extension:yaml mongolab.com
extension:zsh
filename:.bash_history
filename:.bash_history DOMAIN-NAME
filename:.bash_profile aws
filename:.bashrc mailchimp
filename:.bashrc password
filename:.cshrc
filename:.dockercfg auth
filename:.env DB_USERNAME NOT homestead
filename:.env MAIL_HOST=smtp.gmail.com
filename:.esmtprc password
filename:.ftpconfig
filename:.git-credentials
filename:.history
filename:.htpasswd
filename:.netrc password
filename:.npmrc _auth
filename:.pgpass
filename:.remote-sync.json
filename:.s3cfg
filename:.sh_history
filename:.tugboat NOT _tugboat
filename:_netrc password
filename:apikey
filename:bash
filename:bash_history
filename:bash_profile
filename:bashrc
filename:beanstalkd.yml
filename:CCCam.cfg
filename:composer.json
filename:config
filename:config irc_pass
filename:config.json auths
filename:config.php dbpasswd
filename:configuration.php JConfig password
filename:connections
filename:connections.xml
filename:constants
filename:credentials
filename:credentials aws_access_key_id
filename:cshrc
filename:database
filename:dbeaver-data-sources.xml
filename:deployment-config.json
filename:dhcpd.conf
filename:dockercfg
filename:environment
filename:express.conf
filename:express.conf path:.openshift
filename:filezilla.xml
filename:filezilla.xml Pass
filename:git-credentials
filename:gitconfig
filename:global
filename:history
filename:htpasswd
filename:hub oauth_token
filename:id_dsa
filename:id_rsa
filename:id_rsa or filename:id_dsa
filename:idea14.key
filename:known_hosts
filename:logins.json
filename:makefile
filename:master.key path:config
filename:netrc
filename:npmrc
filename:pass
filename:passwd path:etc
filename:pgpass
filename:prod.exs
filename:prod.exs NOT prod.secret.exs
filename:prod.secret.exs
filename:proftpdpasswd
filename:recentservers.xml
filename:recentservers.xml Pass
filename:robomongo.json
filename:s3cfg
filename:secrets.yml password
filename:server.cfg
filename:server.cfg rcon password
filename:settings
filename:settings.py SECRET_KEY
filename:sftp-config.json
filename:sftp-config.json password
filename:sftp.json path:.vscode
filename:shadow
filename:shadow path:etc
filename:spec
filename:sshd_config
filename:token
filename:tugboat
filename:ventrilo_srv.ini
filename:WebServers.xml
filename:wp-config
filename:wp-config.php
filename:zhrc
HEROKU_API_KEY language:json
HEROKU_API_KEY language:shell
HOMEBREW_GITHUB_API_TOKEN language:shell
jsforce extension:js conn.login
language:yaml -filename:travis
msg nickserv identify filename:config
org:Target "AWS_ACCESS_KEY_ID"
org:Target "list_aws_accounts"
org:Target "aws_access_key"
org:Target "aws_secret_key"
org:Target "bucket_name"
org:Target "S3_ACCESS_KEY_ID"
org:Target "S3_BUCKET"
org:Target "S3_ENDPOINT"
org:Target "S3_SECRET_ACCESS_KEY"
password
path:sites databases password
private -language:java
PT_TOKEN language:bash
redis_password
root_password
secret_access_key
SECRET_KEY_BASE=
shodan_api_key language:python
WORDPRESS_DB_PASSWORD=
xoxp OR xoxb OR xoxa
s3.yml
.exs
beanstalkd.yml
deploy.rake
.sls
AWS_SECRET_ACCESS_KEY
API KEY
API SECRET
API TOKEN
ROOT PASSWORD
ADMIN PASSWORD
GCP SECRET
AWS SECRET
"private" extension:pgp
 
Сверху