Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
S3Scanner — Scansiona i bucket S3 malconfigurati su API S3-compatibili! | Kitploit
Strumenti/GitHubGitHub/sa7mon/s3scanner
Scanner di VulnerabilitàRaccolta InformazioniSicurezza CloudConfigurazione Errata
GitHubsa7mon/s3scanner

S3Scanner

Scansiona i bucket S3 malconfigurati su API S3-compatibili!

Vedi Repository
3.2k41441 mese faRevisionato da Kitploit
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

S3Scanner

Caratteristiche - Utilizzo - Avvio Rapido - Installazione - Discussioni


Uno strumento per trovare bucket S3 aperti in AWS o altri provider cloud:
  • AWS
  • DigitalOcean
  • DreamHost
  • GCP
  • Linode
  • Scaleway
  • Personalizzato
demo

Caratteristiche

  • ⚡️ Scansione multi-thread
  • 🔭 Supporta molti provider di archiviazione S3 integrati o personalizzati
  • 🕵️‍♀️ Scansiona tutti i permessi dei bucket per trovare misconfigurazioni
  • 💾 Salva i risultati in un database Postgres
  • 🐇 Connettiti a RabbitMQ per scansioni automatizzate su larga scala
Scarica lo strumento
  • 🐳 Supporto Docker
  • Usato da

    banner per six2dez/reconftw banner per yogeshojha/rengine banner per pry0cc/axiom - legge 'the dynamic infrastructure framework for everybody'

    Utilizzo

    root@kitploit:~
    INPUT: (1 richiesto)
      -bucket        string  Nome del bucket da controllare.
      -bucket-file   string  File con i nomi dei bucket da controllare.
      -mq                    Connetti a RabbitMQ per ottenere bucket. Richiede la chiave "mq" nel file di configurazione. Default: "false"
    
    OUTPUT:
      -db       Salva i risultati in un database Postgres. Richiede la chiave "db.uri" nel file di configurazione. Default: "false"
      -json     Stampa i log su stdout in formato JSON anziché leggibile. Default: "false"
    
    OPZIONI:
      -enumerate           Enumera gli oggetti del bucket (può richiedere tempo). Default: "false"
      -provider    string  Provider di archiviazione oggetti: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom richiede file di configurazione. Default: "aws"
      -threads     int     Numero di thread per la scansione. Default: "4"
    
    DEBUG:
      -verbose     Abilita log dettagliati. Default: "false"
      -version     Stampa la versione. Default: "false"
    
    Se è richiesto un file di configurazione, verranno cercati questi percorsi per config.yml: "." "/etc/s3scanner/" "$HOME/.s3scanner/"
    

    🚀 Supporto

    Se hai trovato utile questo strumento, considera di fare una donazione per supportarne lo sviluppo. Puoi trovare le opzioni di sponsorizzazione a lato di questa pagina del repository o in FUNDING.yml

    Un enorme ringraziamento a tines per essere uno sponsor continuo di questo progetto.

    Avvio Rapido

    Scansiona AWS per nomi di bucket elencati in un file, enumera tutti gli oggetti

    root@kitploit:~
    $ s3scanner -bucket-file nomi.txt -enumerate
    

    Scansiona un bucket su GCP, enumera tutti gli oggetti e salva i risultati nel database

    root@kitploit:~
    $ s3scanner -provider gcp -db -bucket my-bucket -enumerate
    

    Installazione

    PiattaformaVersioneComandi
    BlackArchBlackArch packagepacman -S s3scanner
    DockerDocker releasedocker run ghcr.io/sa7mon/s3scanner
    GoGolanggo install -v github.com/sa7mon/s3scanner@latest
    Kali LinuxKali packageapt install s3scanner
    MacOShomebrew versionbrew install s3scanner
    Parrot OSParrot packageapt install s3scanner
    Windows - wingetwinget install s3scanner
    NixOS stablenixpkgs unstable package

    Utilizzo

    Input

    s3scanner richiede esattamente un tipo di input: -bucket, -bucket-file o -mq.

    root@kitploit:~
    INPUT: (1 richiesto)
      -bucket        string  Nome del bucket da controllare.
      -bucket-file   string  File con i nomi dei bucket da controllare.
      -mq                    Connetti a RabbitMQ per ottenere bucket. Richiede la chiave "mq" nel file di configurazione. Default: "false"
    

    -bucket

    Scansiona un singolo bucket

    root@kitploit:~
    s3scanner -bucket upload_segreti
    

    -bucket-file

    Scansiona ogni nome di bucket elencato nel file

    root@kitploit:~
    s3scanner -bucket-file nomi.txt
    

    dove nomi.txt contiene un nome di bucket per riga

    root@kitploit:~
    $ cat nomi.txt
    bucket123
    assets
    image-uploads
    

    I nomi di bucket elencati più volte verranno scansionati una sola volta.

    -mq

    Si connette a un server RabbitMQ e consuma messaggi contenenti nomi di bucket da scansionare.

    root@kitploit:~
    s3scanner -mq
    

    I messaggi devono essere oggetti Bucket codificati in JSON - fare riferimento a mqingest per un esempio di pubblicazione in Golang.

    -mq richiede le chiavi mq.uri e mq.queue_name nel file di configurazione. Vedere la sezione File di Configurazione per un esempio.

    Output

    root@kitploit:~
    OUTPUT:
      -db       Salva i risultati in un database Postgres. Richiede la chiave "db.uri" nel file di configurazione. Default: "false"
      -json     Stampa i log su stdout in formato JSON anziché leggibile. Default: "false"
    

    -db

    Salva tutti i risultati della scansione in un database PostgreSQL

    root@kitploit:~
    s3scanner -bucket immagini -db
    
    • Richiede la chiave db.uri nel file di configurazione. Vedere la sezione File di Configurazione per un esempio.
    • Se si utilizza -db, i risultati verranno anche stampati sulla console se si utilizza -json o la modalità di output leggibile predefinita.
    • s3scanner esegue la funzione di Migrazione Automatica di Gorm ogni volta che si connette al database. Se lo schema ha già tabelle con nomi che Gorm si aspetta, potrebbe modificare la struttura di queste tabelle. Si consiglia di creare uno schema Postgres dedicato ai risultati di s3scanner.

    -json

    Invece di stampare i risultati della scansione sulla console in formato leggibile, output in JSON machine-readable.

    root@kitploit:~
    s3scanner -bucket immagini -json
    

    Questo stamperà un oggetto JSON per riga sulla console, che può quindi essere passato a jq o altri strumenti che accettano input JSON.

    Esempio: Stampa il nome del bucket e la regione per tutti i bucket esistenti

    root@kitploit:~
    $ s3scanner -bucket-file nomi.txt -json | jq -r '. | select(.bucket.exists==1) | [.bucket.name, .bucket.region] | join(" - ")'       
    10000 - eu-west-1
    10000.pizza - ap-southeast-1
    images_staging - us-west-2
    

    Opzioni

    root@kitploit:~
    OPZIONI:
      -enumerate           Enumera gli oggetti del bucket (può richiedere tempo). Default: "false"
      -provider    string  Provider di archiviazione oggetti: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom richiede file di configurazione. Default: "aws"
      -threads     int     Numero di thread per la scansione. Default: "4"
    

    -enumerate

    Enumera tutti gli oggetti memorizzati nel bucket. Per impostazione predefinita, s3scanner controlla solo i permessi dei bucket.

    root@kitploit:~
    s3scanner -bucket allegati -enumerate
    
    • Nota: Questa operazione può richiedere molto tempo se ci sono molti oggetti archiviati.
    • Durante l'enumerazione, s3scanner richiederà "pagine" di 1.000 oggetti. Se ci sono più di 5.000 pagine di oggetti, salterà le successive.

    -provider

    Nome del provider di archiviazione da utilizzare durante il controllo dei bucket.

    root@kitploit:~
    s3scanner -bucket assets -provider gcp
    
    • Utilizzare "custom" quando si punta a un provider di archiviazione di rete attualmente non supportato o locale.
    • Il provider "custom" richiede le chiavi del file di configurazione sotto providers.custom elencate nella sezione File di Configurazione.

    -threads

    Numero di thread per la scansione.

    root@kitploit:~
    s3scanner -bucket documenti_segreti -threads 8
    
    • Aumentare i thread aumenterà il numero di bucket scansionati contemporaneamente, ma non velocizzerà l'enumerazione degli oggetti. L'enumerazione è attualmente single-thread per bucket.

    Debug

    root@kitploit:~
    DEBUG:
      -verbose     Abilita log dettagliati. Default: "false"
      -version     Stampa la versione. Default: "false"
    

    -verbose

    Abilita la registrazione dettagliata dei messaggi di debug. Questa opzione produrrà molti log e non è consigliata a meno che non si stia segnalando un bug.

    root@kitploit:~
    s3scanner -bucket fogli_di_calcolo -verbose
    

    -version

    Stampa le informazioni sulla versione ed esce.

    root@kitploit:~
    s3scanner -version
    
    • Stamperà dev se compilato da sorgente.

    Sviluppo

    Un file docker compose è incluso che crea 4 contenitori:

    • rabbitmq
    • postgres
    • app
    • mitm

    Sono configurati 2 profili:

    • dev - Ambiente di sviluppo standard
    • dev-mitm - Ambiente configurato con mitmproxy per una più facile osservazione del traffico HTTP durante il debug o l'aggiunta di nuovi provider.

    Per avviare l'ambiente di sviluppo esegui make dev o make dev-mitm. Entra nel contenitore app con docker exec -it -w /app app_dev sh, poi go run . Se si utilizza il profilo dev-mitm, apri http://127.0.0.1:8081 in un browser per visualizzare e manipolare le chiamate HTTP effettuate dal contenitore app.

    File di Configurazione

    Se si utilizzano flag che richiedono opzioni di configurazione, s3scanner cercherà config.yml in:

    • (directory corrente)
    • /etc/s3scanner/
    • $HOME/.s3scanner/
    root@kitploit:~
    # Richiesto da -db
    db:
      uri: "postgresql://utente:[email protected]:5432/nome_schema"
    
    # Richiesto da -mq
    mq:
      queue_name: "aws"
      uri: "amqp://utente:password@localhost:5672"
    
    # providers.custom richiesto da `-provider custom`
    #   address_style - Stile di indirizzamento utilizzato dagli endpoint.
    #     tipo: stringa
    #     valori: "path" o "vhost"
    #   endpoint_format - Formato degli URL degli endpoint. Dovrebbe contenere '$REGION' come segnaposto per il nome della regione
    #     tipo: stringa
    #   insecure - Ignora errori SSL
    #     tipo: booleano
    # regions deve contenere almeno un'opzione
    providers:
      custom: 
        address_style: "path"
        endpoint_format: "https://$REGION.vultrobjects.com"
        insecure: false
        regions:
          - "ewr1"
    

    Quando s3scanner analizza il file di configurazione, prenderà endpoint_format e sostituirà $REGION per tutte le regions elencate per creare un elenco di URL endpoint.

    API compatibili con S3

    Nota: S3Scanner attualmente supporta solo la scansione per permessi utente anonimi di servizi non AWS

    📚 Ulteriori informazioni sulle API non AWS sono disponibili nel wiki del progetto.

    Permessi

    Questo strumento tenterà di ottenere tutte le informazioni disponibili su un bucket, ma spetta a te interpretare i risultati.

    Possibili permessi per i bucket:

    • Lettura (Read) - Elenca e visualizza tutti i file
    • Scrittura (Write) - Scrive file nel bucket
    • Lettura ACP (Read ACP) - Legge tutte le Policy di Controllo degli Accessi allegate al bucket
    • Scrittura ACP (Write ACP) - Scrive Policy di Controllo degli Accessi nel bucket
    • Controllo completo (Full Control) - Tutti i permessi sopra

    Qualsiasi o tutti questi permessi possono essere impostati per i 2 principali gruppi di utenti:

    • Utenti autenticati
    • Utenti pubblici (quelli senza credenziali AWS impostate)
    • Singoli utenti/gruppi (fuori dallo scopo di questo strumento)

    Cosa significa: Solo perché un bucket non consente la lettura/scrittura delle ACL non significa che non puoi leggere/scrivere file nel bucket. Al contrario, potresti essere in grado di elencare le ACL ma non leggere/scrivere nel bucket.

    Licenza

    MIT

    nix-shell -p s3scanner
    NixOS unstablenixpkgs unstable packagenix-shell -p s3scanner
    Altro - Compila da sorgenteGitHub releasegit clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner .