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