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.
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.