
Bug Bounty Recon API के लिए Python लाइब्रेरी और CLI
यह प्रोजेक्ट अब मेंटेन नहीं किया जाता है और मैंने क्रॉलिंग इंफ्रास्ट्रक्चर को ऑफलाइन कर दिया है।
दर्शकों की संख्या इसे बनाए रखने के लिए पर्याप्त नहीं थी।
Bug Bounty Recon (bbrecon) बग बाउंटी हंटर्स और सुरक्षा शोधकर्ताओं के लिए एक निःशुल्क Recon-as-a-Service है। API का उद्देश्य इंटरनेट के "safe harbor" आक्रमण सतह का लगातार अद्यतन मानचित्र प्रदान करना है, जिसमें दायरे से बाहर के लक्ष्य शामिल नहीं हैं।
यह एक एर्गोनोमिक CLI और Python लाइब्रेरी के साथ आता है।
जबकि bbrecon द्वारा लौटाए गए परिणामों को विश्वसनीय और भरोसेमंद बनाने का प्रयास किया जाता है, यह सेवा और इसके संचालक किसी भी तरह से आपके द्वारा प्रदान किए गए डेटा के साथ करने के लिए जिम्मेदार नहीं हैं।
अपने दायरों की दोबारा जाँच करें और सुनिश्चित करें कि आप safe harbors के भीतर रहें।
bbrecon क्रमिक बीटा रिलीज़ चरण में है; प्रमुख सुविधाएँ हर कुछ हफ्तों में फीडबैक लेने और समस्याओं को ठीक करने के लिए जारी की जाती हैं। आप साइन अप कर सकते हैं और इसका उपयोग शुरू कर सकते हैं, लेकिन ध्यान रखें कि ब्रेकिंग चेंजेस बिना सूचना के तैनात किए जा सकते हैं। जबकि सेवा और इंफ्रास्ट्रक्चर को स्केल करने के लिए डिज़ाइन किया गया है, यह वर्तमान में बड़े वैश्विक दर्शकों की सेवा के लिए कॉन्फ़िगर नहीं है। यह बदल सकता है, लेकिन अभी के लिए YMMV।
कृपया बग्स के लिए GitHub issues का उपयोग करें।
कंसोल से API कुंजी प्राप्त करें: https://console.bugbountyrecon.com
इस समय केवल Google SSO समर्थित है।
$ pip3 install bbrecon
bbreconके लिए Python >= 3.8 आवश्यक है - यदिpipआपको बताता है कि यहbbreconनहीं ढूँढ सकता, तो संभवतःpipकिसी अन्य Python संस्करण का उपयोग कर रहा है। इसेpip3 --versionसे जाँचें।
यदि आप CLI का उपयोग करने का इरादा रखते हैं, तो आपको अपनी कुंजी स्थायी रूप से कॉन्फ़िगर करनी चाहिए:
$ 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
...
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"
],
...
आप 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
...
Output format. [default: wide]
-n, --name TEXT Filter by name.
-t, --type TEXT Filter by scope type. Can be used multiple
times.
-r, --reward TEXT Filter by reward type. Can be used multiple
times.
-p, --platform TEXT Filter by platform. Can be used multiple
times.
--exclude-platform TEXT Exclude specific platform. Ignored if
--platform was passed. Can be used multiple
times.
-s, --since TEXT Filter by bounties created after a certain
date. A specific date in the format
'%Y-%m-%d' can be supplied. Alternatively,
the following keywords are supported:
'yesterday', 'last-week', 'last-month',
'last-year' as well as 'last-X-days' (where
'X' is an integer).
...
ध्यान दें कि कुछ फिल्टर सूचियाँ हैं, और इनका एकाधिक बार उपयोग किया जा सकता है! यदि आप उन सभी प्रोग्रामों को प्राप्त करना चाहते हैं जिनमें मोबाइल ऐप दायरे में हैं, तो आप चला सकते हैं:
$ 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 खोलें।