
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) دقيقة قدر الإمكان. في بعض الأحيان، قد تحصل على نتائج إيجابية خاطئة، فلا تتردد في المساهمة لتحسين الاستقصاء وإضافة تعبيرات منتظمة جديدة لاكتشاف الأنماط.
نحن نفضل تقليل النتائج الإيجابية الخاطئة بدلاً من إرسال إشعار لكل مفاتيح 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 إظهار رسالة المساعدة هذه والخروج
-k KEYWORDSFILE, --keyword KEYWORDSFILE تحديد ملف الكلمات المفتاحية (-k keywordsfile.txt)
-q QUERY, --query QUERY تحديد استعلام جيت هاب الخاص بك (-q "apikey")
-m, --monitor تفعيل مراقبة استعلام البحث الخاص بك عن طريق إنشاء مهمة كرون [كل 30 دقيقة]
-d, --discord تفعيل إشعارات ديسكورد
-s, --slack تفعيل إشعارات سلاك
-tg, --telegram تفعيل إشعارات تليغرام
-w WORDLIST, --wordlist WORDLIST إنشاء قائمة كلمات يتم تعبئتها ديناميكيًا بأسماء الملفات المكتشفة على GitHub
-l LIMIT_DAYS, --limit LIMIT_DAYS تقييد النتائج إلى الالتزامات الأقل من N يومًا
على سبيل المثال، للبحث عن كلمة محددة في جيت هاب مع كل كلمة من ملف keywordsfile.txt وإخراجها إلى سلاك:
python3 gitGraber.py -k keywordsfile.txt -q كلمتك -s
من الممكن البحث عن اسم نطاق محدد مثلاً، ولكن يجب وضعه بين علامتي اقتباس مزدوجة:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s
إذا كنت ترغب في بناء قائمة كلمات مخصصة بناءً على الملفات الموجودة على جيت هاب لاستخدامها لاحقًا مع أداة الفازينغ المفضلة لديك، أضف الوسيطة -w:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -w mysuperwordlist.txt
إذا كنت ترغب في مراقبة استعلام البحث الخاص بك كل 30 دقيقة، يمكنك استخدام العلم -m الذي يطلب من gitGraber إنشاء مهمة كرون بناءً على استعلامك:
python3 gitGraber.py -k keywordsfile.txt -q \"yahoo.com\" -s -m
ما سبق سيبحث عن الأسرار كل 30 دقيقة على استعلام البحث الخاص بك وسيرسل لك إشعار سلاك عندما يكون هناك أي نتائج.
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:
تم إنشاء بعض قوائم الكلمات والتعبيرات المنتظمة بواسطتنا، والبعض الآخر مستوحى من مستودعات / باحثين آخرين:
شكرًا لمساهمتكم ومساعدتكم في تحسين gitGraber:
هذا المشروع مخصص للأغراض التعليمية واختبارات الأخلاقيات فقط. استخدام هذه الأداة لمهاجمة أهداف دون موافقة مسبقة هو غير قانوني. لا يتحمل المطورون أي مسؤولية ولا يتحملون أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذه الأداة.
| الخدمة | الرابط |
|---|
| GitHub | كيفية إنشاء رمز GitHub API |
| Discord | كيفية إنشاء رابط ويبهوك ديسكورد |
| Slack | كيفية إنشاء رابط ويبهوك سلاك |
| Telegram | كيفية إنشاء بوت تليغرام |