كيفية الحصول على معلومات حساسة باستخدام Github dorks ؟

Cyber Attacks
أغلبنا يعلم ما هو مجتمع الـ Github ولكن هل سألت نفسك كيف تستخدم هذه الأداة كمختبر اختراق للحصول على المعلومات الحساسة!
Mostafa Tamam
Dec. 12, 2022, 7:03 p.m.
mostafa_tamam
كيفية الحصول على معلومات حساسة باستخدام Github dorks ؟

ما هو Github ؟

مجتمع الـ Github هو أكبر مجمع للبرامج الـ Open source متاحة للجميع بشكل مجاني فهي تضم حوالي 56 مليون مبرمج, مبدأها قائم على الـGit repository الذي تتيح نشر وتعديل الأكواد باستخدام الـ Command Line وبينما الـ Git أداة تتحكم بها عن طريق سطر الأوامر إلا أن Github تقدم واجهة GUI سهلة الاستخدام تحتوي على ملايين الأكواد والمشاريع فأنها أيضا تحتوي على API Keys , passwords وبيانات للعملاء وما إلى ذلك فهذه المشاريع تحتوي على معلومات حساسة تكون مفيدة للـ Penetration Tester ممكن أن تكلف تلك البيانات الكثير من المال للشركات فلذا دعونا نتعرف على المفهوم الأساسي للـ Github Recon


تستطيع أن تجمع معلومات حساسة عن الـ Target الخاص بك على Github باستخدام طريقتين :
 1- بشكل يدوي (Manual)
 2- بشكل أوتوماتيك (Automation)

1- الـ Manual Search || Github Dorks

1- الـ Simple search
تستطيع أن تبحث عن الـ Target بطريقة مبسطة على Github مثلا سنبحث عن xyz.com في https://github.com/search ستجد عن كل ما يخص الموقع من الـ rebo , commit وبنية الموقع ولغة البرمجة الخاصة به ولكن ستبحر في كل المعلومات التي ستجدها ولن يستطيع البحث العادي أن يخدمك في ما تبحث عنه كمختبر اختراق وهنا يأتي دور الـ Github Dorks أن تساعدك في جلب قواعد البيانات والملفات المهمة والباسورد والخ ....

2- البحث باستخدام Github dorks
1- سنبدأ بالمثال الأول بالبحث عن "user_password" داخل الـ repository


2- الآن ادخل على الـ repo وابحث عن الـ passwords أو قاعدة البيانات أو اى بيانات هامة تجدها داخل الكود


3- تستطيع أيضا أن تبحث باستخدام اللغة في البحث اكتب مثلا "language:PHP" مع خبرة بسيطة في اللغة التي تبحث عنها تستطيع أن تخرج المعلومات المهمة لكي تستخدمها في عملية اختبار الاختراق


4- تستطيع أيضا أن تجمع بين ال quarry مع بعضهم فمثلا تبحث عن موقع facebook.com وتبحث عن إعدادات ملف vim بلغه PHP فتبحث بـ facebook.com filename:vim_settings.xml language:PHP فمن خلال البحث ستجد ملف vim_settings.xml الذي يحتوي على إعدادات ملف الـ vim

مثال آخر نريد أن نبحث عن موقع xyz.com عن ملف امتداده exs. الذي تريد أن تجلب معلومات عنه بالتحديد فتستخدم Not) query) فتكتب في البحث xyz.com filename:prod.exs NOT prod.secret.exs

نعلم أنه ليس من السهل أن تجد المعلومات الحساسة فستقضى الكثير من الوقت في الملفات والأكواد حتى تجد ما تبحث عنه فأنت يجب أن تبحث في الـ code, commits, issues, discussions, packages, marketplace, topics, wikis, users لكي تجلب تقييم شامل عن الـ Target الذي تبحث عنه ولكن تذكر Github dorks توفر عليك الجهد والوقت في البحث :)


الآن سنعرض عليك بعض الـ Dorks الذي سوف تستخدمها يدويا لتسهيل عملية البحث عليك فيحب عليك البحث عن الـ API Keys , passwords , usernames ,url وتقضى المزيد من الوقت في البحث عن هذه المعلومات لكي تحصل على عملية Recon ناجحة .

GitHub Dork List :

GitHub Dorks for Finding Files

filename:manifest.xml
filename:travis.yml
filename:vim_settings.xml
filename:database
filename:prod.exs NOT prod.secret.exs
filename:prod.secret.exs
filename:.npmrc _auth
filename:.dockercfg auth
filename:WebServers.xml
filename:.bash_history <Domain name>
filename:sftp-config.json
filename:sftp.json path:.vscode
filename:secrets.yml password
filename:.esmtprc password
filename:passwd path:etc
filename:dbeaver-data-sources.xml
path:sites databases password
filename:config.php dbpasswd
filename:prod.secret.exs
filename:configuration.php JConfig password
filename:.sh_history
shodan_api_key language:python
filename:shadow path:etc
JEKYLL_GITHUB_TOKEN
filename:proftpdpasswd
filename:.pgpass
filename:idea14.key
filename:hub oauth_token
HEROKU_API_KEY language:json
HEROKU_API_KEY language:shell
SF_USERNAME salesforce
filename:.bash_profile aws
extension:json api.forecast.io
filename:.env MAIL_HOST=smtp.gmail.com
filename:wp-config.php
extension:sql mysql dump
filename:credentials aws_access_key_id
filename:id_rsa or filename:id_dsa

GitHub Dorks for Finding Languages

language:python username
language:php username
language:sql username
language:html password
language:perl password
language:shell username
language:java api
HOMEBREW_GITHUB_API_TOKEN language:shell

GiHub Dorks for Finding API Keys, Tokens and Passwords

api_key
“api keys”
authorization_bearer:
oauth
auth
authentication
client_secret
api_token:
“api token”
client_id
password
user_password
user_pass
passcode
client_secret
secret
password hash
OTP
user auth

GitHub Dorks for Finding Usernames

user:name (user:admin)
org:name (org:google type:users)
in:login (<username> in:login)
in:name (<username> in:name)
fullname:firstname lastname (fullname:<name> <surname>)
in:email (data in:email)

GitHub Dorks for Finding Information using Dates

created:<2012–04–05
created:>=2011–06–12
created:2016–02–07 location:iceland
created:2011–04–06..2013–01–14 <user> in:username

GitHub Dorks for Finding Information using Extension

extension:pem private
extension:ppk private
extension:sql mysql dump
extension:sql mysql dump password
extension:json api.forecast.io
extension:json mongolab.com
extension:yaml mongolab.com
[WFClient] Password= extension:ica
extension:avastlic “support.avast.com”
extension:json googleusercontent client_secret

والآن تستطيع أن تجعل هذه الـ Dorks هي مرجعا لك للحصول على المعلومات الحساسة والآن ننتقل عن البحث باستخدام الـ Tools بشكل Automatic

2-الـ Automated Technique - Using Tools

لا شك أن الطريقة اليدوية للبحث بالـ Dorks أفضل في البحث عن الـ Target الخاص بك والحصول على عملية Recon شاملة البيانات الحساسة التي تبحث عنها ولكنها تسهل عليك إتمام البحث بسرعة وإذا كنت تريد تقرير سريع للبحث فننصحك باستخدام هذه الـ Tools ولكن هذه الأدوات لها عيب في النتائج فهي أحيانا تعطي نتائج False-positive أو نتائج خاطئة فهي ترسل 30 طلب في الدقيقة فلذا دعنا نستعرض عليك بعضهم :

1- أداة GitDorker
الـ GitDorker هي أداة تستخدم GitHub Search API وقائمة شاملة من GitHub dorks التي جمعتها من مصادر مختلفة لتقديم نظرة عامة على المعلومات الحساسة المخزنة على github
طريقة الاستخدام :
1- حمل الأداة من هنا https://github.com/obheda12/GitDorker

 

2- استخدم هذا الـ Command لتحصل على النتيجة التي تريدها python3 GitDorker.py -tf TOKENSFILE -q tesla.com -d Dorks/DORKFILE -o tesla

2- أداة TruggleHog
هي أيضا أداة سهلة الاستخدام تبحث داخل الـ repo والـ commit , branches داخل ملفات الـ Target ومحاولة الحصول على البيانات الحساسة
طريقة الاستخدام :
1- حمل الأداة من هنا https://github.com/trufflesecurity/trufflehog
2- استخدم هذا الـ Command لتحصل على النتيجة التي تريدها <python3 trufflehog.py --regex --entropy=False https://github.com/<yourTargetRepo

أدوات أخرى من الممكن استخدامها :


[Github dorks] https://github.com/techgaun/github-dorks
[GitGot] https://github.com/BishopFox/GitGot
[GitMonitor] https://github.com/Talkaboutcybersecurity/GitMonitor
[gitrob] https://github.com/michenriksen/gitrob
[git-hound] https://github.com/tillson/git-hound
[gittyleaks] https://github.com/kootenpv/gittyleaks

يمكنك أيضا أن تتصفح ال reports على موقع hackerone التي استخدمت فيها الـ Github dorks عن طريق البحث بـ github dork site:hackerone.com

وبهذا عزيزي القارئ نكون قد انتهينا من هذا المقال ولكن لم ننتهي من كتابة مقالاتنا انتظرنا في الأجزاء القادمة من الـ Cyber attacks لتتعلم أهم الأجزاء حول هذا الموضوع ^_^ يسعدنا تعليقك بالبحث باستخدام Github dorks وكتابة لنا في البحث ما وجدته , انظر أيضا في مقالة الـ Google dorks من هنا
,,,,,, والسلام ختام ,,,,,,

References :
https://shahjerry33.medium.com/recon-my-way-or-high-way-58a18dab5c95
https://infosecwriteups.com/github-dork-553b7b84bcf4
https://shahjerry33.medium.com/github-recon-its-really-deep-6553d6dfbb1f
https://shahjerry33.medium.com/clear-text-transmission-of-sensitive-data-everything-is-visible-4f2e8bc6673f


Github dorks attacks senstive_info root-x