
مكتبة بايثون وواجهة سطر أوامر لـ Bug Bounty Recon API
لم يعد هذا المشروع قيد الصيانة وقد أزلت البنية التحتية للزحف عن الإنترنت.
لم يكن الجمهور كبيرًا بما يكفي لتبرير صيانته.
Bug Bounty Recon (bbrecon) هي خدمة استطلاع مجانية (Recon-as-a-Service) لصائدي الثغرات الأمنية والباحثين في الأمن السيبراني. تهدف واجهة API إلى توفير خريطة محدثة باستمرار لسطح الهجوم "الملاذ الآمن" على الإنترنت، مع استبعاد الأهداف غير المصرح بها.
تأتي مع واجهة سطر أوامر (CLI) ومكتبة Python سهلة الاستخدام.
على الرغم من بذل الجهود لضمان موثوقية وجدارة النتائج التي يعيدها bbrecon، إلا أن هذه الخدمة ومشغليها ليسوا مسؤولين بأي شكل عما تفعله بالبيانات المقدمة. تحقق جيدًا من نطاقاتك وتأكد من بقائك داخل الملاذات الآمنة.
bbrecon في مرحلة Beta تدريجية؛ يتم إصدار الميزات الرئيسية كل بضعة أسابيع للحصول على ملاحظات وإصلاح المشكلات. يمكنك التسجيل والبدء في استخدامها، ولكن كن على علم بأن التغييرات الجذرية قد تُنشر دون إشعار. بينما صُممت الخدمة والبنية التحتية للتوسع، إلا أنها لم تُهيأ حاليًا لخدمة جمهور عالمي كبير. قد يتغير هذا، لكن في الوقت الحالي النتائج قد تختلف.
يرجى استخدام مشكلات GitHub للتقارير.
احصل على مفتاح API من وحدة التحكم: https://console.bugbountyrecon.com
يُدعم حاليًا تسجيل الدخول عبر Google SSO فقط.
$ pip3 install bbrecon
يتطلب
bbreconإصدار Python >= 3.8 – إذا أخبركpipأنه لا يمكنه العثور علىbbreconفغالبًا لأنpipيستخدم إصدار Python آخر. تحقق من ذلك باستخدامpip3 --version.
إذا كنت تُخطط لاستخدام واجهة سطر الأوامر، فيجب عليك تكوين مفتاحك بشكل دائم:
$ bbrecon configure key
Enter your API key: YOUR_API_KEY
يمكنك بدلاً من ذلك تعيين متغير البيئة BBRECON_KEY إذا كنت تُفضل ذلك.
سيؤدي الإجراء التالي إلى عرض جميع البرامج التي صدرت في الشهر الماضي والتي لها أهداف من نوع "web" (واجهات API / تطبيقات ويب):
$ bbrecon get programs --type web --since last-month
SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES
cybrary bugcrowd 2020-07-22 fame $0 $0 $0 6 android,ios,web
expressvpn bugcrowd 2020-07-14 cash,fame $150 $1047 $2500 17 android,ios,other,web
prestashop yeswehack 2020-07-23 cash $0 $0 $1000 1 web
...
للحصول على النطاقات المسموح بها لبرامج محددة، استخدم get scopes:
$ bbrecon get scopes rockset codefi-bbp
SLUG PLATFORM TYPE VALUE
rockset hackerone web console.rockset.com
rockset hackerone web docs.rockset.com
rockset hackerone web api.rs2.usw2.rockset.com
codefi-bbp hackerone web activate.codefi.network
للحصول على النطاقات لبرامج محددة، استخدم get domains:
$ bbrecon get domains dropcontact rebellion-defense
SLUG DOMAIN CREATED
dropcontact www.dropcontact.io 2020-08-23
rebellion-defense mooch.rip 2020-08-23
rebellion-defense www.rebelliondefense.com 2020-08-23
rebellion-defense rebelliondefense.com 2020-08-23
...
لإنشاء إشعارات webhook لـ Slack أو Discord استخدم create notifications:
bbrecon create notifications --resources programs --program ALL --webhook https://SLACK_OR_DISCORD_WEBHOOK_URL/
يمكنك عرض الإشعارات التي قمت بتكوينها باستخدام get notifications.
معظم الأوامر يمكنها إخراج JSON لتسهيل العمل مع نصوصك. جرب --output json:
$ bbrecon get programs --output json
[
{
"url": "https://bugcrowd.com/optimizely",
"name": "Optimizely",
"platform": "bugcrowd",
"rewards": [
"cash",
"fame"
],
...
يمكنك الحصول على معلومات حول برامج محددة عن طريق تمرير اسم مستعار (slug) واحد أو أكثر إلى الأمر get programs:
$ bbrecon get programs twago optimizely
SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES
twago intigriti 2020-04-09 $0 $0 $0 5 web
optimizely bugcrowd 2018-03-22 cash,fame $0 $750 $5000 6 web
استخدم --help للحصول على قائمة بعوامل التصفية لكل أمر:
$ bbrecon get programs --help
...
تنسيق الإخراج. [الافتراضي: wide]
-n, --name TEXT تصفية حسب الاسم.
-t, --type TEXT تصفية حسب نوع النطاق. يمكن استخدامها عدة
مرات.
-r, --reward TEXT تصفية حسب نوع المكافأة. يمكن استخدامها عدة
مرات.
-p, --platform TEXT تصفية حسب المنصة. يمكن استخدامها عدة
مرات.
--exclude-platform TEXT استبعاد منصة معينة. يتم تجاهلها إذا تم تمرير
--platform. يمكن استخدامها عدة مرات.
-s, --since TEXT تصفية الجوائز التي تم إنشاؤها بعد تاريخ
معين. يمكن تقديم تاريخ محدد بالتنسيق
'%Y-%m-%d'. بدلاً من ذلك، الكلمات المفتاحية
التالية مدعومة:
'yesterday', 'last-week', 'last-month',
'last-year' بالإضافة إلى 'last-X-days' (حيث
'X' عدد صحيح).
...
لاحظ أن بعض عوامل التصفية عبارة عن قوائم ويمكن استخدامها عدة مرات! إذا أردت الحصول على جميع البرامج التي تحتوي على تطبيقات جوال ضمن النطاق، يمكنك تشغيل:
$ bbrecon get programs --type android --type ios
SLUG PLATFORM CREATED REWARDS MIN.BOUNTY AVG.BOUNTY MAX.BOUNTY SCOPES TYPES
square bugcrowd 2018-03-22 cash,fame $300 $492 $5000 4 android,ios,other,web
gojek bugcrowd 2018-03-22 cash,fame $200 $618 $5000 4 android,ios,web
smartthings bugcrowd 2018-03-22 fame $0 $0 $0 5 android,hardware,ios,web
...
أنت مدعو لتفقد قاعدة كود هذا المستودع لمزيد من التفاصيل، لكن للبدء:
from bbrecon import BugBountyRecon
bb = BugBountyRecon(token="API_KEY")
programs = bb.programs(
types=["web", "ios"],
platforms=["hackerone"],
rewards=["cash"],
)
for program in programs:
print(f"{program.name} rewards up to ${program.maximum_bounty}!")
print(f"More information is available at: {program.url}")
for scope in program.in_scope:
if scope.type == "desktop":
print("Found a desktop app in scope for this program. Cool!")
domains = list(bb.domains(programs=[program.slug]))
print("Here are some domains for this program:")
for domain in domains[:3]:
print(domain.name)
يمكنك التفاعل مباشرة مع واجهة REST API إذا كنت تفضل ذلك. اطّلع على وثائق API هنا.
العملاء التاليون لواجهة Bug Bounty Recon API لم تتم مراجعتهم أو المصادقة عليهم من قبلي، ولكن قد تجدهم مثيرين للاهتمام على أي حال. شكر جزيل للمساهمين!
إذا كنت ترغب في إضافة عميلك إلى هذه القائمة، فقط افتح طلب سحب (PR).