Skip to content

S3#

The methodaws s3 family of commands provide information about an account's S3 buckets and their contents.

Usage#

methodaws s3 [command]

Available Commands#

  • enumerate: Gather information about all S3 buckets the provided credentials have access to
  • list: List all objects in a single S3 bucket
  • external: Enumerate a public facing S3 bucket from an external perspective

Commands#

Enumerate#

The enumerate command will gather information about all of the S3 buckets that the provided credentials have access to.

Access and Encryption Signals#

configuration.accessControl.allowPublicList describes bucket-level listing permissions from the collected ACL and policy. allowPublicRead describes object-read permissions from the bucket policy, not listing or individual object ACLs. Bucket ACL READ and FULL_CONTROL grants populate listing permissions, including allowAuthenticatedUsersList for the AuthenticatedUsers group. These are configuration assessments, not proof of successful access to every object.

Each encryption rule retains the reported kmsKeyIdentifier, including aliases and bare key IDs. The separate kmsKey reference is populated only for a concrete key ARN; aliases are not resolved or treated as key ARNs.

Usage#

methodaws s3 enumerate --regions us-east-1 --output json

Help Text#

$ methodaws s3 enumerate -h
Enumerate all S3 buckets in your AWS account.

Usage:
  methodaws s3 enumerate [flags]

Flags:
  -h, --help   help for enumerate

Global Flags:
      --http-proxy string     HTTP/HTTPS proxy URL (e.g., http://proxy.example.com:8080)
  -o, --output string         Output format (signal, json, yaml). Default value is signal (default "signal")
  -f, --output-file string    Path to output file. If blank, will output to STDOUT
  -q, --quiet                 Suppress output
  -r, --regions stringArray   AWS Regions to search for resources. You can specify multiple regions by providing the flag multiple times. If blank, will search all regions.
      --socks-proxy string    SOCKS proxy URL (e.g., socks5://proxy.example.com:1080)
  -v, --verbose               Verbose output

list#

Usage#

methodaws s3 list --regions us-east-1 --output json --name <bucket name>

Help Text#

$ methodaws s3 list -h
List all objects in a single S3 bucket.

Usage:
  methodaws s3 list [flags]

Flags:
  -h, --help          help for list
      --name string   Name of the S3 bucket

Global Flags:
      --http-proxy string     HTTP/HTTPS proxy URL (e.g., http://proxy.example.com:8080)
  -o, --output string         Output format (signal, json, yaml). Default value is signal (default "signal")
  -f, --output-file string    Path to output file. If blank, will output to STDOUT
  -q, --quiet                 Suppress output
  -r, --regions stringArray   AWS Regions to search for resources. You can specify multiple regions by providing the flag multiple times. If blank, will search all regions.
      --socks-proxy string    SOCKS proxy URL (e.g., socks5://proxy.example.com:1080)
  -v, --verbose               Verbose output

external#

The external command attempts to enumerate a public-facing S3 bucket with anonymous credentials from an external perspective. Provide exactly one of --url or --target-seed.

allowDirectoryListing and allowAnonymousRead report anonymous probe results. Entries in acls describe the returned bucket ACL grants, not effective access after all applicable controls. A missing bucket policy is normal; failed optional policy or ACL requests are reported without discarding the identified bucket.

Usage#

methodaws s3 external --url https://bucketname.s3.amazonaws.com --output json

# Generate and probe candidate bucket names
methodaws s3 external --target-seed example.com --max-candidates 100

Help Text#

$ methodaws s3 external -h
Enumerate public-facing S3 buckets from an external perspective.

Usage:
  methodaws s3 external [flags]

Flags:
  -h, --help                 help for external
      --max-candidates int   Max candidate bucket names to probe when --target-seed is set (cap 500) (default 50)
      --target-seed string   Org/domain seed used to generate and probe candidate bucket names
      --url string           URL of a single S3 bucket to enumerate

Global Flags:
      --http-proxy string     HTTP/HTTPS proxy URL (e.g., http://proxy.example.com:8080)
  -o, --output string         Output format (signal, json, yaml). Default value is signal (default "signal")
  -f, --output-file string    Path to output file. If blank, will output to STDOUT
  -q, --quiet                 Suppress output
  -r, --regions stringArray   AWS Regions to search for resources. You can specify multiple regions by providing the flag multiple times. If blank, will search all regions.
      --socks-proxy string    SOCKS proxy URL (e.g., socks5://proxy.example.com:1080)
  -v, --verbose               Verbose output