Skip to main content

A tool to discover S3 buckets from subdomains by analyzing JavaScript files.

Project description

JSBucket: S3 Bucket Discovery Tool From Javascript Files

JSBucket is a Python-based tool designed to analyze subdomains for Amazon S3 bucket references in JavaScript files. It extracts S3 bucket names and URLs from subdomains and outputs them in a structured JSON format. The tool supports multi-threading, progress tracking, and silent mode for seamless integration with other tools like jq, s3scanner etc. This tool is specifically designed for Bug Bounty Hunters and Pentesters.


Features ⚙

usage: jsbucket.py [-h] [-u SUBDOMAIN] -d DOMAIN [-l LIST] [-t THREADS] [-timeout TIMEOUT] [-o OUTPUT] [-silent]

Analyze Javascript files from given subdomain(s) for S3 buckets.

options:
  -h, --help            show this help message and exit
  -u SUBDOMAIN, --subdomain SUBDOMAIN
                        single subdomain
  -d DOMAIN, --domain DOMAIN
                        base/root domain
  -l LIST, --list LIST  file containing a list of subdomains
  -t THREADS, --threads THREADS
                        number of threads (default: 10)
  -timeout TIMEOUT      timeout for HTTP requests (default: 10s)
  -o OUTPUT, --output OUTPUT
                        output file in JSON format
  -silent               suppress all output except raw JSON

Installation 🚀

Prerequisites

  1. Python 3.6+: Ensure Python is installed on your system.

Steps

git clone https://github.com/saeed0xf/jsbucket.git
cd jsbucket

Dependencies: Install the required libraries using pip:

pip install -r requirements.txt

Usage 📝

Run the script with the desired flags:

python jsbucket.py [FLAGS]

Flags

Flag Description
-u SUBDOMAIN Analyze a single subdomain (e.g., sub.example.com).
-d DOMAIN Base/root domain (mandatory).
-l FILE File containing a list of subdomains (one per line).
-t THREADS Number of threads for concurrent analysis (default: 10).
-timeout SECS Timeout for HTTP requests (default: 10 seconds).
-o OUTPUT Save results to a JSON file (e.g., output.json).
-silent Suppress all output except raw JSON (useful for piping into tools like jq or grep).

Examples 🕵️‍♀️

1. Analyze a Single Subdomain

python jsbucket.py -u sub.example.com -d example.com

2. Analyze a List of Subdomains

python jsbucket.py -l subdomains.txt -d example.com

3. Save Results to a JSON File

python jsbucket.py -l subdomains.txt -d example.com -o results.json

4. Use Silent Mode for Piping

python jsbucket.py -l subdomains.txt -d example.com -silent | jq '.[].s3_buckets[].bucket_name'

5. Customize Threads and Timeout

python jsbucket.py -l subdomains.txt -d example.com -t 20 -timeout 30

Output Format

Terminal Output (Non-Silent Mode)

Alert: S3 Bucket(s) found on subdomain https://sub.example.com!
{
  subdomain: https://sub.example.com,
  s3_buckets: [
    {
      bucket_name: my-bucket,
      bucket_url: https://my-bucket.s3.amazonaws.com
    }
  ]
}

✅ Analysis complete!

JSON Output (Silent Mode)

[
  {
    "subdomain": "https://sub.example.com",
    "s3_buckets": [
      {
        "bucket_name": "my-bucket",
        "bucket_url": "https://my-bucket.s3.amazonaws.com"
      }
    ]
  }
]

Notes

  1. Silent Mode: Use the -silent flag when integrating with tools like jq or s3scanner. This ensures only raw JSON is printed to stdout.
  2. Timeout: Adjust the -timeout value if subdomains take longer to respond.
  3. Threads: Increase the -t value for faster analysis, but be cautious with high thread counts to avoid overwhelming the network or server.

Contributing

Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact 💻

For questions, suggestions, or feedback, feel free to reach out:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jsbucket-1.0.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jsbucket-1.0.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file jsbucket-1.0.0.tar.gz.

File metadata

  • Download URL: jsbucket-1.0.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.5

File hashes

Hashes for jsbucket-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0829102b5f135ef563910fe85b5d17acff8b94606540f0edc354f3af5a2e26d4
MD5 29642dfd0372f578b23076599fb00f2c
BLAKE2b-256 0ff4c1f9afe501f62789ccd6d7e7d785cef149b1c8726fbfc2b48ed83304a91a

See more details on using hashes here.

File details

Details for the file jsbucket-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: jsbucket-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.5

File hashes

Hashes for jsbucket-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce26e139ac2f06bb6273e01ca0720840b5960659c6e622bbc5379b096ee59ba1
MD5 c83bb7ba1aeecc8f32d3f23ca46da1e1
BLAKE2b-256 7fa6620f04ef278ef8a8d69971784fd471c56093b023e7931922e5691822ffb3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page