Здесь вы узнаете, как повысить свой уровень в OSINT, будут приведены примеры и готовые поисковые запросы.
(Вы можете дополнить меня, если я что-то забыл в комментариях).
Если вы знакомы с Google Dorking, то они очень похожи и служат одной цели - поиск по ключевым слов в системе.
Как использовать Github Dorking шаг за шагом
Чем крупнее и известнее компания, тем больше шума будет в поиске и похожих репозиториях
Возьмем для примера Google:
Выглядит устрашающи - 965K репозиториев, не так ли?
Но посмотрите внимательно на фильтры слева; вы увидите, что там меньше пользователей, что позволит вам быстрее найти основную компанию. (Компании часто создают отдельного пользователя(организационный аккаунт) на платформе для хранения своих данных и разработок).
Что касается ключей, то они подойдут, так как чаще всего уникальны.
После нахождения компании
https://github.com/google
Для поиска в организационном аккаунте можно использовать строку поиска в github:
Или воспользуйтесь строкой поиска Google и замените в ней TEST на то, что вы ищете (другие примеры будут показаны в этой форме) https://github.com/search?q=org%3Agoogle%20TEST&type=code
Затем изучите различные вкладки репозитория GitHub, чтобы обнаружить конечные точки API и потенциальные слабые места. Проанализируйте исходный код на вкладке Code, найдите ошибки на вкладке Issues и просмотрите предлагаемые изменения на вкладке Pull Requests.
На вкладке «Code» вы можете просмотреть код в его текущем виде или использовать ctrl-F для поиска интересующих вас терминов (таких как API, key и secret). Кроме того, можно просмотреть исторические изменения кода с помощью кнопки «history», расположенной в правом верхнем углу на изображении выше. Если вы столкнулись с проблемой или комментарием, который наводит вас на мысль, что с кодом когда-то были связаны уязвимости, вы можете просмотреть исторические коммиты, чтобы узнать, доступны ли эти уязвимости для просмотра.
При просмотре коммита воспользуйтесь кнопкой Split, чтобы просмотреть боковое сравнение версий файлов и найти точное место, где в код было внесено изменение.
Кнопка «Split» (вверху справа на изображении выше) позволяет разделить предыдущий код (слева) и обновленный код (справа).
На вкладке «issuse» разработчики могут отслеживать ошибки, задачи и запросы на функции. Если проблема открыта, велика вероятность того, что уязвимость все еще присутствует в коде.
Вкладка Pull requests - это место, позволяющее разработчикам совместно вносить изменения в код. Если вы просмотрите предложенные изменения, иногда вам может повезти и вы найдете проблему.
(Вы можете дополнить меня, если я что-то забыл в комментариях).
Что это такое и для чего оно служит?
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:
Выглядит устрашающи - 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:
Или воспользуйтесь строкой поиска 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.
На вкладке «Code» вы можете просмотреть код в его текущем виде или использовать ctrl-F для поиска интересующих вас терминов (таких как API, key и secret). Кроме того, можно просмотреть исторические изменения кода с помощью кнопки «history», расположенной в правом верхнем углу на изображении выше. Если вы столкнулись с проблемой или комментарием, который наводит вас на мысль, что с кодом когда-то были связаны уязвимости, вы можете просмотреть исторические коммиты, чтобы узнать, доступны ли эти уязвимости для просмотра.
При просмотре коммита воспользуйтесь кнопкой Split, чтобы просмотреть боковое сравнение версий файлов и найти точное место, где в код было внесено изменение.
Кнопка «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