
Scansiona gli endpoint pubblici di object storage su Yandex, VK, Selectel, Sber, Alibaba, Tencent, Huawei e Baidu per individuare bucket listabili e oggetti esposti.
Scanner di esposizione di object storage cloud per test di sicurezza autorizzati, attività di bug bounty e infrastrutture di tua proprietà.
BucketBuster verifica nomi di bucket candidati su endpoint pubblici per Yandex Cloud, VK Cloud, Selectel, SberCloud, Alibaba OSS, Tencent COS, Huawei OBS e Baidu BOS. È in grado di identificare bucket pubblicamente elencabili, individuare nomi di oggetti correlati a certificati e, opzionalmente, scaricare oggetti pubblicamente accessibili tramite HTTP GET.
Autorizzazione richiesta: utilizza questo strumento solo su asset di tua proprietà o per i quali disponi di esplicita autorizzazione al test. La scansione o il download di dati da bucket di terze parti può essere illegale. Sei responsabile del rispetto delle leggi applicabili, dei contratti, delle regole di bug bounty e delle policy dei provider.
git clone <repository-url>
cd bucketbuster
python -m venv .venv
Attiva l'ambiente virtuale:
# Linux/macOS
source .venv/bin/activate
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
Installa le dipendenze:
python -m pip install -r requirements.txt
Crea una wordlist come buckets.txt:
example-company
example-company-backup
example-company-documents
Esegui il set di provider predefinito, Yandex Cloud e VK Cloud:
python bucketbuster.py --wordlist buckets.txt
Lo scanner segnala risposte HTTP 200, listing pubblici, nomi di oggetti corrispondenti ed endpoint con accesso negato che sembrano esistere. Una risposta 404 viene ignorata.
| Flag provider | Servizio | Famiglie di endpoint incluse |
|---|---|---|
yandex | Yandex Cloud | Endpoint Storage e website |
vk | VK Cloud | Endpoint vkcloud-storage.ru |
selectel | Selectel | Endpoint S3 e selstorage.ru |
sber | SberCloud | Endpoint OBS e s3.cloud.ru |
aliyun | Alibaba Cloud OSS | Regioni selezionate della Cina |
tencent | Tencent Cloud COS | Regioni selezionate di Cina e Asia |
huawei | Huawei Cloud OBS | Regioni selezionate della Cina |
baidu | Baidu Cloud BOS | Regioni selezionate di Cina e Asia |
Gruppi di provider:
--providers russia # yandex, vk, selectel, sber
--providers china # aliyun, tencent, huawei, baidu
--providers all # ogni provider supportato
Puoi anche fornire una lista separata da virgole, ad esempio:
python bucketbuster.py -w buckets.txt --providers aliyun,tencent
| Opzione | Predefinito | Descrizione |
|---|---|---|
-w, --wordlist PATH | Obbligatorio | File contenente i nomi di bucket candidati, uno per riga. Le righe vuote e i commenti che iniziano con # vengono ignorati. |
--providers VALUE | yandex,vk | Flag dei provider separati da virgole, oppure all, russia o china. |
--dns | Disabilitato | Esegue un controllo DNS passivo e salta gli hostname che non si risolvono. |
-t, --threads N | 12 | Numero di worker concorrenti per i bucket. |
--delay SECONDS | 0.12 | Ritardo tra le richieste HTTP. |
| Opzione | Descrizione |
|---|---|
--match-ext LIST | Estensioni separate da virgole come .pfx,.p12,.cer,.crt. Se il punto iniziale è omesso, viene aggiunto. |
--match-name LIST | Sottostringhe di nome/percorso separate da virgole, senza distinzione tra maiuscole e minuscole. È supportato un semplice wildcard *. |
--match-regex PATTERN | Espressione regolare senza distinzione tra maiuscole e minuscole confrontata con la chiave completa dell'oggetto. Passa l'opzione più volte per più pattern. |
--match-cert | Abilita le estensioni e le parole chiave integrate relative ai certificati, inclusi CryptoPro, GOST, signing, certificate e termini russi per certificato. |
Quando viene fornito uno o più filtri, questi utilizzano una logica OR: un oggetto corrisponde se soddisfa una qualsiasi condizione configurata tra estensione, nome, regex o --match-cert. Senza filtri, ogni oggetto elencato è considerato corrispondente per la segnalazione e la selezione dei download.
| Opzione | Descrizione |
|---|---|
-o, --output PATH | Scrive un report JSON. I risultati vengono trasmessi in streaming durante la scansione. |
--csv PATH | Scrive un report CSV. I risultati vengono trasmessi in streaming durante la scansione. |
| Opzione | Predefinito | Descrizione |
|---|---|---|
--download | Disabilitato | Scarica gli oggetti corrispondenti dai listing pubblici tramite richieste HTTP GET non autenticate. |
--download-all | Disabilitato | Con --download, tenta di scaricare ogni oggetto in ciascun listing pubblico analizzato e ignora i filtri di corrispondenza. |
--download-dir PATH | ./downloads | Directory radice per gli oggetti scaricati. |
--allow-private-keys | Disabilitato | Consente il download di oggetti .pfx, .p12, .key, .p8 e .pem. Usare solo quando esplicitamente autorizzati. |
--download-all richiede --download. I download sono limitati a 25 MiB per oggetto e le risposte vuote o non-200 non vengono salvate. I contenitori di chiavi private sono bloccati a meno che --allow-private-keys non sia esplicitamente fornito.
Scansiona i provider Russia/CIS con controlli DNS passivi:
python bucketbuster.py -w buckets.txt --providers russia --dns
Scansiona tutti i provider supportati e scrivi entrambi i formati di report:
python bucketbuster.py \
--wordlist buckets.txt \
--providers all \
--dns \
--output findings.json \
--csv findings.csv
Segnala probabili file di certificato per estensione:
python bucketbuster.py -w buckets.txt --match-ext .pfx,.p12,.cer,.crt,.der
Trova corrispondenze di nomi e percorsi usando sottostringhe e semplici wildcard:
python bucketbuster.py \
-w buckets.txt \
--match-name cryptopro,*keystore*,backups/*.sql
Usa più espressioni regolari:
python bucketbuster.py \
-w buckets.txt \
--match-regex '.*backup.*\.sql$' \
--match-regex 'config/.*\.ya?ml$'
Abilita la lista integrata di estensioni e parole chiave relative ai certificati:
python bucketbuster.py -w buckets.txt --match-cert
Scarica solo gli oggetti corrispondenti alle estensioni selezionate:
python bucketbuster.py \
-w buckets.txt \
--providers aliyun,tencent \
--match-ext .cer,.crt,.p7b \
--download \
--download-dir ./authorized-downloads
Scarica ogni oggetto visibile in un listing pubblico. Questa operazione ignora intenzionalmente tutti i filtri di corrispondenza e dovrebbe essere usata solo su un asset di test approvato:
python bucketbuster.py -w buckets.txt --download --download-all
L'input candidato può essere un nome di bucket semplice, un hostname, un URL di storage completo o un URL in stile path. I nomi vengono normalizzati e convalidati prima di qualsiasi operazione DNS o HTTP. I candidati duplicati e non validi vengono scartati.
I risultati JSON includono provider, bucket, URL, stato HTTP, elencabilità, file corrispondenti, tutti i file scoperti in un listing, stato DNS, note, un breve estratto del listing e i percorsi locali scaricati. Il CSV contiene i campi principali dei risultati; gli elenchi di file sono serializzati come valori separati da punto e virgola.
I download sono organizzati sotto la directory selezionata per provider e bucket:
downloads/
yandex/
example-company/
certificates/client.cer
I percorsi degli oggetti vengono sanitizzati prima di essere scritti localmente. Il download è sequenziale e limitato nel rate dal ritardo configurato.
--threads e aumenta --delay quando richiesto da un programma o dalla policy di un provider.--download, --download-all o --allow-private-keys a meno che l'autorizzazione non copra esplicitamente gli oggetti e la gestione dei dati pertinenti.BucketBuster è rilasciato sotto la BSD 2-Clause License.