S3Scanner: encontrando buckets de storage em nuvem expostos

S3Scanner · MIT

O S3Scanner verifica se buckets de storage em nuvem existem e quais permissões eles expõem. Cobre S3 e provedores compatíveis com S3, e lê permissões sem precisar de credenciais da conta alvo.

Instalação

pipx install s3scanner
# ou
docker run --rm ghcr.io/sa7mon/s3scanner scan --bucket example-assets

Comandos principais

# um bucket
s3scanner scan --bucket example-assets

# uma lista de candidatos
s3scanner scan --buckets-file candidates.txt

# gera candidatos a partir de um nome de empresa
s3scanner scan --bucket-name-file names.txt --enumerate

# saída JSON
s3scanner --json scan --buckets-file candidates.txt > buckets.json

# provedores não-AWS
s3scanner --endpoint-url https://storage.googleapis.com scan --bucket example-assets

Saída

{"bucket":"example-assets","exists":true,"region":"us-east-1",
 "permissions":{"AuthUsers":{"read":true,"write":false},"AllUsers":{"read":true,"write":false}}}

AllUsers.read: true significa leitura anônima. Esse é o finding.

Onde ele entra no Tandera

O S3Scanner é o núcleo do recon_cloud_enum — o fluxo de footprint em nuvem não autenticado que roda a partir de uma seed de domínio e não precisa de acesso à conta de nuvem do cliente. Isso o distingue do recon_cloud, que roda prowler e scoutsuite contra uma conta autenticada e já conectada.

Ele roda em discovery, ao lado do cdncheck.

Usando em um pentest

Leia a permissão, não a exercite. Confirmar AllUsers.read é o finding. Baixar o conteúdo é manipulação de dados que você provavelmente não estava autorizado a fazer, e muda a postura legal do engajamento. Capture o estado da permissão como evidência e pare.

Permissão de escrita é um crítico, sempre. AllUsers.write num bucket que serve um site é defacement de site ou comprometimento de supply chain. Supera quase qualquer outra coisa que você vai achar naquele dia.

Adivinhe nomes a partir do que você já tem. Nomes de bucket espelham a organização: example-assets, example-backups, example-prod-logs. Construa a lista de candidatos a partir dos hostnames que seu recon já produziu em vez de uma lista genérica.

Buckets pertencem a contas, não a domínios. Verifique que um bucket é de fato do cliente antes de reportá-lo. Semelhança de nome não é posse.

acesso antecipado

Garanta a Tandera antes do próximo engagement.

Entre na waitlist para acesso antecipado. Estamos integrando times de pentest em ondas.

Onboarding prioritário para times de pentest.
Linha direta com quem está construindo.
Preço de acesso antecipado, garantido.

Sem spam, sem cartão. Cancele quando quiser.

enespt-br