Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
S3Scanner — Varra por buckets S3 mal configurados em APIs compatíveis com S3! | Kitploit
Ferramentas/GitHubGitHub/sa7mon/s3scanner
Scanners de VulnerabilidadesColeta de InformaçõesSegurança na NuvemConfiguração Incorreta
GitHubsa7mon/s3scanner

S3Scanner

Varra por buckets S3 mal configurados em APIs compatíveis com S3!

Ver Repositório
3.2k414há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

S3Scanner

Funcionalidades - Uso - Guia Rápido - Instalação - Discutir


Uma ferramenta para encontrar buckets S3 abertos na AWS ou em outros provedores de nuvem:
  • AWS
  • DigitalOcean
  • DreamHost
  • GCP
  • Linode
  • Scaleway
  • Personalizado
demo

Funcionalidades

  • ⚡️ Varredura multi-thread
  • 🔭 Suporta muitos provedores S3 integrados ou personalizados
  • 🕵️‍♀️ Varre todas as permissões do bucket para encontrar más configurações
  • 💾 Salva resultados em banco de dados Postgres
  • 🐇 Conecta-se ao RabbitMQ para varredura automatizada em escala
  • 🐳 Suporte Docker

Utilizado Por

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

Uso

root@kitploit:~
INPUT: (1 obrigatório)
  -bucket        string  Nome do bucket a ser verificado.
  -bucket-file   string  Arquivo com nomes de buckets a serem verificados.
  -mq                    Conectar ao RabbitMQ para obter buckets. Requer a chave "mq" no arquivo de configuração. Padrão: "false"

OUTPUT:
  -db       Salvar resultados em um banco de dados Postgres. Requer a chave "db.uri" no arquivo de configuração. Padrão: "false"
  -json     Imprimir logs no stdout em formato JSON em vez de legível. Padrão: "false"

OPÇÕES:
  -enumerate           Enumerar objetos do bucket (pode consumir tempo). Padrão: "false"
  -provider    string  Provedor de armazenamento de objetos: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom requer arquivo de configuração. Padrão: "aws"
  -threads     int     Número de threads para varredura. Padrão: "4"

DEBUG:
  -verbose     Habilitar log detalhado. Padrão: "false"
  -version     Exibir versão. Padrão: "false"

Se o arquivo de configuração for necessário, estes locais serão pesquisados por config.yml: "." "/etc/s3scanner/" "$HOME/.s3scanner/"

🚀 Apoio

Se você achou esta ferramenta útil, considere doar para apoiar seu desenvolvimento. Você pode encontrar opções de patrocínio na lateral desta página do repositório ou em FUNDING.yml

Muito obrigado à Tines por ser um patrocinador contínuo deste projeto.

Guia Rápido

Varrer AWS por nomes de buckets listados em um arquivo, enumerar todos os objetos

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

Varrer um bucket no GCP, enumerar todos os objetos e salvar resultados no banco de dados

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

Instalação

Usando

Entrada

s3scanner requer exatamente um tipo de entrada: -bucket, -bucket-file ou -mq.

root@kitploit:~
INPUT: (1 obrigatório)
  -bucket        string  Nome do bucket a ser verificado.
  -bucket-file   string  Arquivo com nomes de buckets a serem verificados.
  -mq                    Conectar ao RabbitMQ para obter buckets. Requer a chave "mq" no arquivo de configuração. Padrão: "false"

-bucket

Varrer um único bucket

root@kitploit:~
s3scanner -bucket uploads_secretos

-bucket-file

Varrer todos os nomes de bucket listados no arquivo

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

onde nomes.txt contém um nome de bucket por linha

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

Nomes de bucket listados várias vezes serão varridos apenas uma vez.

-mq

Conecta a um servidor RabbitMQ e consome mensagens contendo nomes de buckets para varrer.

root@kitploit:~
s3scanner -mq

As mensagens devem ser objetos Bucket codificados em JSON - consulte mqingest para um exemplo de publicação em Golang.

-mq requer as chaves mq.uri e mq.queue_name no arquivo de configuração. Veja a seção Arquivo de Configuração para exemplo.

Saída

root@kitploit:~
OUTPUT:
  -db       Salvar resultados em um banco de dados Postgres. Requer a chave "db.uri" no arquivo de configuração. Padrão: "false"
  -json     Imprimir logs no stdout em formato JSON em vez de legível. Padrão: "false"

-db

Salva todos os resultados da varredura em um banco de dados PostgreSQL

root@kitploit:~
s3scanner -bucket imagens -db
  • Requer a chave db.uri no arquivo de configuração. Veja a seção Arquivo de Configuração para exemplo.
  • Se usar -db, os resultados também serão impressos no console se usar -json ou o modo de saída legível padrão.
  • O s3scanner executa o recurso Auto Migration do Gorm sempre que se conecta ao banco de dados. Se o esquema já tiver tabelas com nomes esperados pelo Gorm, ele pode alterar a estrutura dessas tabelas. Recomenda-se criar um esquema PostgreSQL dedicado aos resultados do s3scanner.

-json

Em vez de exibir resultados da varredura no console em formato legível, exibe JSON legível por máquina.

root@kitploit:~
s3scanner -bucket imagens -json

Isso imprimirá um objeto JSON por linha no console, que pode ser redirecionado para jq ou outras ferramentas que aceitam entrada JSON.

Exemplo: Imprimir nome do bucket e região para todos os buckets que existem

root@kitploit:~
$ s3scanner -bucket-file nomes.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

Opções

root@kitploit:~
OPÇÕES:
  -enumerate           Enumerar objetos do bucket (pode consumir tempo). Padrão: "false"
  -provider    string  Provedor de armazenamento de objetos: aws, custom, digitalocean, dreamhost, gcp, linode, scaleway - custom requer arquivo de configuração. Padrão: "aws"
  -threads     int     Número de threads para varredura. Padrão: "4"

-enumerate

Enumerar todos os objetos armazenados no bucket. Por padrão, o s3scanner apenas verifica as permissões dos buckets.

root@kitploit:~
s3scanner -bucket anexos -enumerate
  • Observação: Isso pode levar muito tempo se houver um grande número de objetos armazenados.
  • Ao enumerar, o s3scanner solicitará "páginas" de 1.000 objetos. Se houver mais de 5.000 páginas de objetos, ele ignorará o restante.

-provider

Nome do provedor de armazenamento a ser usado ao verificar buckets.

root@kitploit:~
s3scanner -bucket assets -provider gcp
  • Use "custom" ao segmentar um provedor de armazenamento atualmente não suportado ou de rede local.
  • O provedor "custom" requer chaves no arquivo de configuração sob providers.custom listadas na seção Arquivo de Configuração.

-threads

Número de threads para varredura.

root@kitploit:~
s3scanner -bucket docs_secretos -threads 8
  • Aumentar threads aumentará o número de buckets sendo varridos simultaneamente, mas não acelerará a enumeração de objetos. A enumeração é atualmente single-thread por bucket.

Debug

root@kitploit:~
DEBUG:
  -verbose     Habilitar log detalhado. Padrão: "false"
  -version     Exibir versão. Padrão: "false"

-verbose

Habilita log detalhado de mensagens de depuração. Esta opção produzirá muitos logs e não é recomendada a menos que esteja reportando um bug.

root@kitploit:~
s3scanner -bucket planilhas -verbose

-version

Exibe as informações de versão e sai.

root@kitploit:~
s3scanner -version
  • Exibirá dev se compilado a partir do código-fonte.

Desenvolvimento

Um arquivo docker compose está incluído que cria 4 contêineres:

  • rabbitmq
  • postgres
  • app
  • mitm

2 perfis estão configurados:

  • dev - Ambiente de desenvolvimento padrão
  • dev-mitm - Ambiente configurado com mitmproxy para observação mais fácil do tráfego HTTP ao depurar ou adicionar novos provedores.

Para iniciar o ambiente de desenvolvimento execute make dev ou make dev-mitm. Entre no contêiner app com docker exec -it -w /app app_dev sh, depois go run . Se estiver usando o perfil dev-mitm, abra http://127.0.0.1:8081 em um navegador para visualizar e manipular chamadas HTTP feitas a partir do contêiner app.

Arquivo de Configuração

Se estiver usando flags que exigem opções de configuração, o s3scanner pesquisará por config.yml em:

  • (diretório atual)
  • /etc/s3scanner/
  • $HOME/.s3scanner/
root@kitploit:~
# Necessário por -db
db:
  uri: "postgresql://usuario:[email protected]:5432/nome_esquema"

# Necessário por -mq
mq:
  queue_name: "aws"
  uri: "amqp://usuario:senha@localhost:5672"

# providers.custom necessário por `-provider custom`
#   address_style - Estilo de endereçamento usado pelos endpoints.
#     tipo: string
#     valores: "path" ou "vhost"
#   endpoint_format - Formato das URLs de endpoint. Deve conter '$REGION' como espaço reservado para o nome da região
#     tipo: string
#   insecure - Ignorar erros SSL
#     tipo: boolean
# regions deve conter pelo menos uma opção
providers:
  custom: 
    address_style: "path"
    endpoint_format: "https://$REGION.vultrobjects.com"
    insecure: false
    regions:
      - "ewr1"

Quando o s3scanner analisa o arquivo de configuração, ele pegará o endpoint_format e substituirá $REGION por todas as regions listadas para criar uma lista de URLs de endpoint.

APIs compatíveis com S3

Nota: O S3Scanner atualmente só suporta varredura de permissões de usuários anônimos para serviços não AWS

📚 Mais informações sobre APIs não AWS podem ser encontradas na wiki do projeto.

Permissões

Esta ferramenta tentará obter todas as informações disponíveis sobre um bucket, mas cabe a você interpretar os resultados.

Permissões possíveis para buckets:

  • Read - Listar e visualizar todos os arquivos
  • Write - Escrever arquivos no bucket
  • Read ACP - Ler todas as Políticas de Controle de Acesso anexadas ao bucket
  • Write ACP - Escrever Políticas de Controle de Acesso no bucket
  • Full Control - Todas as permissões acima

Qualquer uma ou todas essas permissões podem ser definidas para os 2 grupos principais de usuários:

  • Usuários Autenticados
  • Usuários Públicos (aqueles sem credenciais AWS definidas)
  • Usuários/grupos individuais (fora do escopo desta ferramenta)

O que isso significa: O fato de um bucket não permitir leitura/escrita de ACLs não significa que você não pode ler/escrever arquivos no bucket. Inversamente, você pode ser capaz de listar ACLs mas não ler/escrever no bucket.

Licença

MIT

Baixar ferramenta
PlataformaVersãoPassos
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 packagenix-shell -p s3scanner
NixOS unstablenixpkgs unstable packagenix-shell -p s3scanner
Outro - Compilar a partir do código-fonteGitHub releasegit clone [email protected]:sa7mon/S3Scanner.git && cd S3Scanner && go build -o s3scanner .