
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.