Basic Usage

Complete guide to using s3finder command-line options.

Command Syntax

bash
s3finder [flags]
s3finder [command]

Required Flags

At least one input source must be provided. All sources are decoupled and independent.

FlagShortDescription
--seed-sTarget keyword for bucket name generation (permuted)
--wordlist-wPath to wordlist file (raw mode)
--domain-dTarget domain for CT log discovery (as-is mode)

Input Options

s3finder features Decoupled Input Sources. Seeds, wordlists, and domains are processed independently to ensure precise scanning without unwanted combinations.

Seed Keyword (Permuted)

The seed is used to generate 780+ automatic name variations (prefixes, suffixes, regions, etc.):

bash
# Company name
s3finder -s acme-corp

# Domain without TLD
s3finder -s example

Wordlist (Raw Mode)

Wordlists are processed in raw mode. Entries are scanned exactly as they appear in the file, without permutations or seed mixing:

bash
# Use included wordlist
s3finder -w wordlists/common.txt

# Use custom wordlist
s3finder -w /path/to/custom-wordlist.txt

CT Log Subdomain Discovery (As-Is Mode)

Discovered subdomains are scanned exactly as found in Certificate Transparency logs. Additionally, unique words are extracted from subdomains to generate permutations for deeper scanning:

bash
# Fetch and scan subdomains from CT logs
s3finder -d acme.com

# Combine with a seed for even more coverage
s3finder -s acme -d acme.com

# Limit CT results (default: 100)
s3finder -d acme.com --ct-limit 50

CT logs query crt.sh to find subdomains like dev.acme.com and staging.acme.com. Each subdomain is scanned directly, and unique words (e.g., "dev", "staging") are extracted for additional permutation-based scanning.

Performance Options

FlagDefaultDescription
--threads, -t50Number of concurrent workers
--rps150Maximum requests per second
--timeout15Request timeout in seconds
bash
# Conservative scan (slower, less rate limiting)
s3finder -s acme -t 50 --rps 100

# Aggressive scan (faster, may trigger rate limiting)
s3finder -s acme -t 200 --rps 1000

# Custom timeout for slow networks
s3finder -s acme --timeout 30

Inspection Options

FlagDefaultDescription
--deeptruePerform deep inspection on found buckets

Deep inspection uses AWS SDK to gather:

  • Bucket region
  • ACL status (public-read, private)
  • Object count (for public buckets)
  • Sample object keys (first 10)
bash
# Disable deep inspection for faster scans
s3finder -s acme --deep=false

Output Options

FlagShortDefaultDescription
--output-oresults.jsonOutput file path
--format-fjsonOutput format (json, txt)
--no-colorfalseDisable colored output
--verbose-vfalseVerbose output
bash
# Save as JSON
s3finder -s acme -o scan-results.json

# Save as plain text
s3finder -s acme -o scan-results.txt -f txt

# Pipe-friendly output (no colors)
s3finder -s acme --no-color | tee output.log

# Verbose mode (shows errors)
s3finder -s acme -v

AI Options

See AI Providers for detailed configuration.

FlagDefaultDescription
--aifalseEnable AI-powered name generation
--ai-provideropenaiAI provider (openai, ollama, anthropic, gemini)
--ai-modelgpt-4o-miniAI model name
--ai-count50Number of AI-generated names

Commands

bash
# Show version
s3finder version

# Show help
s3finder --help

# Generate shell completions
s3finder completion bash > /etc/bash_completion.d/s3finder

Examples

Basic Penetration Test

bash
s3finder -s target-corp -w wordlists/common.txt -o pentest-results.json

Bug Bounty Hunting

bash
export OPENAI_API_KEY=sk-xxxxx
s3finder -s bugbounty-target --ai -t 200 --rps 800

Quiet Background Scan

bash
s3finder -s target --no-color -o results.json 2>/dev/null &