
Libreria Python e CLI per l'API Bug Bounty Recon
Questo progetto non è più mantenuto e ho dismesso l'infrastruttura di crawling.
Il pubblico non era abbastanza ampio da giustificarne la manutenzione.
Bug Bounty Recon (bbrecon) è un Recon-as-a-Service gratuito per cacciatori di bug bounty e ricercatori di sicurezza. L'API mira a fornire una mappa continuamente aggiornata della superficie d'attacco "safe harbor" di Internet, escludendo i bersagli fuori scope.
Include una CLI ergonomica e una libreria Python.
Sebbene venga fatto lo sforzo di garantire che i risultati restituiti da bbrecon siano affidabili e degni di fiducia, questo servizio e i suoi operatori non sono in alcun modo responsabili per ciò che fai con i dati forniti.
Ricontrolla i tuoi scope e assicurati di rimanere all'interno dei safe harbor.
bbrecon è in una fase graduale di Beta; le funzionalità principali vengono rilasciate ogni poche settimane per ottenere feedback e correggere imperfezioni. Puoi registrarti e iniziare a usarlo, ma tieni presente che potrebbero essere distribuite modifiche sostanziali senza preavviso. Sebbene il servizio e l'infrastruttura siano progettati per scalare, attualmente non sono configurati per servire un vasto pubblico globale. Questo potrebbe cambiare, ma per ora il risultato può variare.
Per favore, usa i GitHub issues per segnalare bug.
Ottieni una chiave API dalla Console: https://console.bugbountyrecon.com
Al momento è supportato solo Google SSO.
$ pip3 install bbrecon
bbreconrichiede Python >= 3.8 – sepipti dice che non riesce a trovarebbreconprobabilmente è perchépipsta usando un'altra versione di Python. Controlla conpip3 --version.
Se intendi usare la CLI, dovresti configurare permanentemente la tua chiave:
$ bbrecon configure key
Enter your API key: LA_TUA_CHIAVE_API
In alternativa, puoi impostare la variabile d'ambiente BBRECON_KEY se preferisci.
Il comando seguente mostra tutti i programmi rilasciati nell'ultimo mese che hanno bersagli di tipo "web" (API/app 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
...
Per ottenere gli scope di programmi specifici, usa 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
Per ottenere i domini di programmi specifici, usa 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
...
Per creare notifiche webhook su Slack o Discord usa create notifications:
bbrecon create notifications --resources programs --program ALL --webhook https://URL_WEBHOOK_SLACK_O_DISCORD/
Puoi visualizzare le tue notifiche configurate con get notifications.
La maggior parte dei comandi può produrre output in JSON per facilitare l'integrazione con i tuoi script. Prova con --output json:
$ bbrecon get programs --output json
[
{
"url": "https://bugcrowd.com/optimizely",
"name": "Optimizely",
"platform": "bugcrowd",
"rewards": [
"cash",
"fame"
],
...
Puoi ottenere informazioni su programmi specifici passando uno o più slug al comando 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
Usa --help per ottenere un elenco di filtri per ogni comando:
$ bbrecon get programs --help
...
Formato dell'output. [default: wide]
-n, --name TEXT Filtra per nome.
-t, --type TEXT Filtra per tipo di scope. Può essere usato più
volte.
-r, --reward TEXT Filtra per tipo di ricompensa. Può essere usato più
volte.
-p, --platform TEXT Filtra per piattaforma. Può essere usato più
volte.
--exclude-platform TEXT Escludi una piattaforma specifica. Ignorato se
è stato passato --platform. Può essere usato più
volte.
-s, --since TEXT Filtra per bounty creati dopo una certa
data. Può essere fornita una data specifica nel formato
'%Y-%m-%d'. In alternativa, sono supportate le seguenti
parole chiave: 'yesterday', 'last-week', 'last-month',
'last-year' e anche 'last-X-days' (dove
'X' è un intero).
...
Nota che alcuni filtri sono liste e possono essere usati più volte! Se volessi ottenere tutti i programmi che hanno app mobili in scope, potresti eseguire:
$ 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
...
Sei invitato a esplorare il codice di questo repository per maggiori dettagli, ma per iniziare:
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)
Puoi interagire direttamente con l'API REST se preferisci. Dai un'occhiata alla documentazione dell'API qui.
I seguenti client per l'API Bug Bounty Recon non sono revisionati né approvati da me, ma potresti comunque trovarli interessanti. Molte grazie ai contributori!
Se vuoi far apparire il tuo qui, apri semplicemente una PR.