
Bibliothèque Python et CLI pour l'API Bug Bounty Recon
Ce projet n'est plus maintenu et j'ai mis hors ligne l'infrastructure de crawling.
L'audience n'était pas assez importante pour justifier son maintien.
Bug Bounty Recon (bbrecon) est un service gratuit de Recon-as-a-Service pour les chasseurs de bug bounty et les chercheurs en sécurité. L'API vise à fournir une carte continuellement à jour de la surface d'attaque « safe harbor » d'Internet, excluant les cibles hors périmètre.
Il est livré avec une CLI ergonomique et une bibliothèque Python.
Bien que des efforts soient faits pour garantir que les résultats renvoyés par bbrecon soient fiables et dignes de confiance, ce service et ses opérateurs ne sont en aucun cas responsables de ce que vous faites avec les données fournies.
Vérifiez vos périmètres et assurez-vous de rester dans les « safe harbors ».
bbrecon est en phase de déploiement progressif en Beta ; les fonctionnalités majeures sont publiées toutes les quelques semaines pour recueillir des retours et corriger les bugs. Vous pouvez vous inscrire et commencer à l'utiliser, mais sachez que des changements cassants peuvent être déployés sans préavis. Bien que le service et l'infrastructure soient conçus pour passer à l'échelle, ils ne sont actuellement pas configurés pour servir un large public mondial. Cela pourrait changer, mais pour l'instant, votre expérience peut varier.
Veuillez utiliser les issues GitHub du projet.
Obtenez une clé API depuis la Console : https://console.bugbountyrecon.com
Seul Google SSO est pris en charge pour le moment.
$ pip3 install bbrecon
bbreconnécessite Python >= 3.8 – sipipvous indique qu'il ne trouve pasbbrecon, c'est probablement parce quepiputilise une autre version de Python. Vérifiez cela avecpip3 --version.
Si vous avez l'intention d'utiliser la CLI, vous devez configurer votre clé de manière permanente :
$ bbrecon configure key
Enter your API key: YOUR_API_KEY
Vous pouvez également définir la variable d'environnement BBRECON_KEY si vous préférez.
La commande suivante affiche tous les programmes publiés au cours du dernier mois avec des cibles de type « web » (API/applications web) :
$ 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
...
Pour obtenir les périmètres de programmes spécifiques, utilisez 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
Pour obtenir les domaines de programmes spécifiques, utilisez 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
...
Pour créer des notifications webhook Slack ou Discord, utilisez create notifications :
bbrecon create notifications --resources programs --program ALL --webhook https://SLACK_OR_DISCORD_WEBHOOK_URL/
Vous pouvez consulter vos notifications configurées avec get notifications.
La plupart des commandes peuvent afficher du JSON pour faciliter l'utilisation dans vos scripts. Essayez --output json :
$ bbrecon get programs --output json
[
{
"url": "https://bugcrowd.com/optimizely",
"name": "Optimizely",
"platform": "bugcrowd",
"rewards": [
"cash",
"fame"
],
...
Vous pouvez obtenir des informations sur des programmes spécifiques en passant un ou plusieurs slugs à la commande 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
Utilisez --help pour obtenir la liste des filtres de chaque commande :
$ 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).
...
Notez que certains filtres sont des listes, et peuvent être utilisés plusieurs fois ! Si vous voulez obtenir tous les programmes qui ont des applications mobiles dans leur périmètre, vous pouvez exécuter :
$ 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
...
Vous êtes invité à consulter le code source de ce dépôt pour plus de détails, mais pour commencer :
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)
Vous pouvez interagir directement avec l'API REST si vous préférez. Consultez la documentation de l'API ici.
Les clients suivants pour l'API Bug Bounty Recon ne sont ni examinés ni approuvés par moi, mais ils peuvent néanmoins vous intéresser. Un grand merci aux contributeurs !
Si vous souhaitez que le vôtre soit listé ici, ouvrez simplement une PR.