
أداة استطلاع سريعة لـ GitHub. تفحص عن الأسرار المسربة عبر جميع GitHub، وليس فقط المستودعات والمنظمات المعروفة. تدعم استعلامات GitHub dorks.
يقوم GitHound بتعقب مفاتيح API المكشوفة والأسرار وبيانات الاعتماد عبر GitHub من خلال الجمع بين استعلامات GitHub (dorks) ومطابقة الأنماط والكشف السياقي وتحليل سجل الالتزامات. أدخل استعلام GitHub في GitHound، وسيقوم بمسح أي ملفات ومستودعات تطابق استعلامك بحثًا عن الأسرار. على عكس الماسحات النمطية، يستفيد GitHound من واجهة برمجة تطبيقات البحث في GitHub، مما يمنحك رؤية كاملة عبر جميع المستودعات العامة، وليس فقط بعض الأهداف. تتوفر مزيد من المعلومات في منشور المدونة المصاحب.
تصور وأدر نتائج بحثك في الوقت الفعلي باستخدام لوحة تحكم GitHound Explore الجديدة. ابدأ الآن مجانًا على https://githoundexplore.com أو باستخدام الخيار --dashboard. تعلم كيفية استخدام هذا مع تثبيت محلي لـ GitHound أو TruffleHog في صفحة الويكي. ضع في اعتبارك أنه لا يزال بإمكانك استخدام GitHound بدون لوحة التحكم.
لقد بدأنا أيضًا قاعدة بيانات استعلامات GitHub، حيث يمكنك تصفح والبحث عن الاستعلامات لمختلف كلمات API الرئيسية والحصول على أفكار لاستعلامات جديدة! تحقق منها على https://githoundexplore.com/github-dorks.
🔍 بحث عالمي على GitHub – ابحث عن الأسرار عبر كل GitHub، بما في ذلك Gists
🔑 كشف ذكي لمفاتيح API – تعابير منتظمة + إنتروبيا + مطابقة سياقية
🕵️ التنقيب في تاريخ الالتزامات – كشف بيانات الاعتماد المحذوفة أو المتراجعة
🧮 تسجيل تكيفي – يقوم بتصفية الإيجابيات الكاذبة
🧰 فك تشفير Base64 واستخراج الأسرار المشفرة
💻 مخرجات JSON وقواعد تعبيرات منتظمة مخصصة لخطوط الأتمتة
echo "AKIA" | git-hound أو git-hound --query "AKIA"
config.yml./git-hound للاختبار (تأكد من أنك في الدليل الصحيح!)التكوين:
يستخدم GitHound بشكل أساسي config.yml (الموجود في الدليل الحالي أو $HOME/.githound/) للتكوين. راجع config.example.yml للحصول على مثال.
بدلاً من ذلك، يمكنك استخدام متغيرات البيئة، والتي ستتجاوز القيم في config.yml:
GITHOUND_GITHUB_TOKEN: يضبط رمز الوصول لواجهة برمجة تطبيقات GitHub.GITHOUND_INSERT_KEY: يضبط مفتاح الإدراج لـ GitHoundExplore لميزة --dashboard.يستخدم GitHound قاعدة بيانات لتعبيرات مفتاح API التي يحتفظ بها مؤلفو Gitleaks.
تتيح لك معرفة نمط مفاتيح API لخدمة معينة البحث عن هذه المفاتيح على GitHub. يمكنك بعد ذلك توجيه المطابقات لتعبير مفتاحك المخصص إلى برنامجك النصي الخاص لاختبار مفتاح API مقابل الخدمة وتحديد الحساب المعرض للخطر.
echo "api.halcorp.biz" | githound --dig-files --dig-commits --many-results --rules halcorp-api-regexes.txt --results-only | python halapitester.py
للكشف عن تسريبات مفاتيح API المستقبلية، يوفر GitHub فحص الرمز المميز للدفع للكشف الفوري عن مفاتيح API عند نشرها.
استخدامي الأساسي لـ GitHound هو إيجاد معلومات حساسة لبرامج مكافآت الأخطاء. بالنسبة للأهداف البارزة، فإن خدعة --many-results وخيار --languages مفيدة لجمع أكثر من 100 صفحة من النتائج.
echo "\"uberinternal.com\"" | githound --dig-files --dig-commits --many-results --languages common-languages.txt --threads 100
https://github.com/tillson/git-hound/blob/master/internal/app/keyword_scan.go يجد GitHound مفاتيح API من خلال مزيج من التعبيرات المنتظمة الدقيقة للخدمات الشائعة مثل Slack و AWS وتعبير منتظم عام حساس للسياق. وهذا يجد سلاسل طويلة تبدو مثل مفاتيح API محاطة بكلمات رئيسية مثل "Authorization" و "API-Token". يفترض GitHound أن هذه إيجابيات كاذبة ثم يثبت شرعيتها باستخدام إنتروبيا شانون، وفحص كلمات القاموس، وحسابات التفرد، وكشف الترميز. ثم يقوم GitHound بإخراج الإيجابيات عالية اليقين. بالنسبة للملفات التي تشفر الأسرار، يقوم بفك تشفير سلاسل base64 والبحث في السلاسل المشفرة عن مفاتيح API.
تحقق من منشور المدونة هذا لمزيد من التفاصيل حول حالات الاستخدام والمنهجيات.
يجعل GitHound من السهل العثور على مفاتيح API المكشوفة على GitHub باستخدام مطابقة الأنماط، والاستعلام المستهدف، ونظام تسجيل قوي.
Usage:
-h, --help help for githound
--dashboard Stream results to web dashboard (see https://githoundexplore.com)
--all-results Print all results, even if they do not contain secrets
--api-debug Prints details about GitHub API requests and counts them.
--config-file string Supply the path to a config file.
--debug Enables verbose debug logging.
--dig-commits Dig through commit history to find more secrets (CPU intensive).
--dig-files Dig through the repo's files to find more secrets (CPU intensive).
--fast Skip file grepping and only return search preview
--json Print results in JSON format
--many-results Search >100 pages with filtering hack
--no-api-keys Don't search for generic API keys.
--no-files Don't search for interesting files.
--no-gists Don't search Gists
--no-keywords Don't search for built-in keywords
--no-repos Don't search repos
--no-scoring Don't use scoring to filter out false positives.
--otp-code string Github account 2FA token used for sign-in. (Only use if you have 2FA enabled on your account via authenticator app)
--pages int Maximum pages to search per query (default 100)
--profile Enable pprof profiling on localhost:6060
--profile-addr string Address to serve pprof profiles (default "localhost:6060")
--query string A query string (default: stdin)
--query-file string A file containing a list of subdomains (or other queries).
--results-only Only print match strings.
--rules string Path to a list of regexes or a GitLeaks rules folder. (default "rules/")
--search-type api Search interface (api or `ui`).
--threads int Threads to dig with (default 20)
على launch.json أرسل الخيارات المطلوبة كوسائط "args": [ "searchKeyword", "tillsongalloway.com", "--regex-file", "regexes.txt" ]
من المجلد الرئيسي: go build .
لبناء صورة Docker لـ Git-Hound، استخدم الأمر التالي:
docker build -t my-githound-container .
يبني هذا الأمر صورة Docker بالعلامة my-githound-container. يمكنك تغيير اسم العلامة حسب رغبتك.
لتشغيل حاوية Docker لـ Git-Hound، ستحتاج إلى توفير ملف config.yaml الخاص بك وأي ملفات إدخال (مثل subdomains.txt) عبر وحدات تخزين Docker.
config.yamlضع ملف config.yaml الخاص بك في موقع معروف على جهاز المضيف. يجب أن يحتوي هذا الملف على تكوين Git-Hound الخاص بك، بما في ذلك بيانات اعتماد GitHub.
مثال config.yaml:
# config.yaml
github_username: "your_username"
github_password: "your_password"
# Optional: GitHub TOTP seed
# github_totp_seed: "ABCDEF1234567890"
إذا كان لديك ملف مثل subdomains.txt، فضعه في دليل على جهاز المضيف.
استخدم الأمر التالي لتشغيل الحاوية مع ملفات التكوين والإدخال الخاصة بك:
docker run -v /path/to/config.yaml:/root/.githound/config.yaml -v $(pwd)/data:/data my-githound-container --subdomain-file /data/subdomains.txt
استبدل /path/to/config.yaml بالمسار الفعلي لملف config.yaml الخاص بك. الجزء -v $(pwd)/data:/data يقوم بتحميل دليل يحتوي على ملفات الإدخال الخاصة بك (subdomains.txt) في الحاوية.