S3Scanner: Scan for open S3 buckets and dump

S3Scanner

A tool to find open S3 buckets in AWS or other cloud providers:

  • AWS
  • DigitalOcean
  • DreamHost
  • GCP
  • Linode
  • Custom

The tool takes in a list of bucket names to check. Found S3 buckets are output to file. The tool will also dump or list the contents of ‘open’ buckets locally.

dump buckets

Features

  • ⚡️ Multi-threaded scanning
  • ? Supports many built-in S3 storage providers or custom
  • ?️‍♀️ Scans all bucket permissions to find misconfigurations
  • ? Save results to Postgres database
  • ? Connect to RabbitMQ for automated scanning at scale
  • ? Docker support

Interpreting Results

This tool will attempt to get all available information about a bucket, but it’s up to you to interpret the results.

Possible permissions for buckets:

  • Read – List and view all files
  • Write – Write files to bucket
  • Read ACP – Read all Access Control Policies attached to bucket
  • Write ACP – Write Access Control Policies to bucket
  • Full Control – All above permissions

Any or all of these permissions can be set for the 2 main user groups:

  • Authenticated Users
  • Public Users (those without AWS credentials set)
  • Individual users/groups (out of scope of this tool)

What this means: Just because a bucket doesn’t allow reading/writing ACLs doesn’t mean you can’t read/write files in the bucket. Conversely, you may be able to list ACLs but not read/write to the bucket

Installation

Go

# replace version with latest release
go install -v github.com/sa7mon/s3scanner@v3.0.1
# or
go install -v github.com/sa7mon/s3scanner@latest

Docker

docker run –rm -it ghcr.io/sa7mon/s3scanner:latest -bucket my-bucket

Build from source

git clone git@github.com:sa7mon/S3Scanner.git && cd S3Scanner
go build -o s3scanner .
./s3scanner -bucket my-bucket

Using

[pastacode lang=”markup” message=”” highlight=”” provider=”manual” manual=”usage%3A%20s3scanner%20%5B-h%5D%20%5B–version%5D%20%5B–threads%20n%5D%20%5B–endpoint-url%20ENDPOINT_URL%5D%20%5B–endpoint-address-style%20%7Bpath%2Cvhost%7D%5D%20%5B–insecure%5D%20%7Bscan%2Cdump%7D%20…%0A%0As3scanner%3A%20Audit%20unsecured%20S3%20buckets%0A%20%20%20%20%20%20%20%20%20%20%20by%20Dan%20Salmon%20-%20github.com%2Fsa7mon%2C%20%40bltjetpack%0A%0Aoptional%20arguments%3A%0A%20%20-h%2C%20–help%20%20%20%20%20%20%20%20%20%20%20%20show%20this%20help%20message%20and%20exit%0A%20%20–version%20%20%20%20%20%20%20%20%20%20%20%20%20Display%20the%20current%20version%20of%20this%20tool%0A%20%20–threads%20n%2C%20-t%20n%20%20%20%20%20Number%20of%20threads%20to%20use.%20Default%3A%204%0A%20%20–endpoint-url%20ENDPOINT_URL%2C%20-u%20ENDPOINT_URL%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20URL%20of%20S3-compliant%20API.%20Default%3A%20https%3A%2F%2Fs3.amazonaws.com%0A%20%20–endpoint-address-style%20%7Bpath%2Cvhost%7D%2C%20-s%20%7Bpath%2Cvhost%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Address%20style%20to%20use%20for%20the%20endpoint.%20Default%3A%20path%0A%20%20–insecure%2C%20-i%20%20%20%20%20%20%20%20Do%20not%20verify%20SSL%0A%0Amode%3A%0A%20%20%7Bscan%2Cdump%7D%20%20%20%20%20%20%20%20%20%20%20(Must%20choose%20one)%0A%20%20%20%20scan%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Scan%20bucket%20permissions%0A%20%20%20%20dump%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Dump%20the%20contents%20of%20buckets”/]

S3Scanner can scan and dump buckets in S3-compatible APIs services other than AWS by using the –endpoint-url argument. Depending on the service, you may also need the –endpoint-address-style or –insecure arguments as well.

Copyright (c) 2019 Dan Salmon

Source: https://github.com/sa7mon

Support Our Threat Intelligence

If you find our technology report and cybersecurity news helpful, consider supporting our work.

Crypto QR Code
USDT (TRC20):
TN8BdV8cp4T1Cd28gK9qTAnZknzzuwyUtm
USDT (ERC20):
0x3725e1a7d3bc5765499fa6aaafe307fabcd75bce