SoftwareBuster is a Python tool designed to scan websites for outdated JavaScript libraries. It resolves domain names, checks software versions, and identifies potential security vulnerabilities using Snyk's vulnerability database. The tool can process single URLs or a batch of URLs, providing detailed reports in markdown or color-coded formats.
- Domain Resolution: Resolves domains to their respective IP addresses.
- JavaScript Library Detection: Scans websites for known JavaScript libraries and checks their versions.
- Vulnerability Detection: Retrieves the latest version of npm packages and checks for associated CVEs (Common Vulnerabilities and Exposures) using Snyk.
- Threaded Scanning: Supports multithreading for faster results.
- Formatted Output: Provides results in a markdown table or a color-coded terminal table.
- Python 3.x
- This tool was designed to be run on a Mac
- HomeBrew needs to be installed
- May need GeckoDriver: SoftwareBuster uses Selenium with Firefox. Download the latest version of GeckoDriver and ensure it's in your PATH.
SoftwareBuster includes a setup script (setup) to automate the installation of dependencies and configuration.
- Clone the repository or download the script.
git clone https://github.com/JackMason1/SoftwareBuster.git- Run the setup script:
cd SoftwareBuster
./setup.shThis script will:
- Upgrade
pip. - Install required Python packages from
requirements.txt. - Move the
SoftwareBusterexecutable to/usr/local/binand make it executable.
Alternatively, you can manually install dependencies and configure the script:
pip3 install --upgrade pip
pip3 install -r requirements.txt
# Move SoftwareBuster to /usr/local/bin and make it executable
cp SoftwareBuster /usr/local/bin/
chmod +x /usr/local/bin/SoftwareBusterAfter installation, you can run SoftwareBuster directly from the terminal.
SoftwareBuster [OPTIONS]Or
SB [OPTIONS]--url<URL>: Scan a single URL.--file<filename>: Provide a file containing a list of URLs to scan.--timeout<seconds>: Set the timeout for each request (default: 10 seconds).--threads<num_threads>: Set the number of threads for concurrent scanning (default: 4).--delay<milliseconds>: Set the delay between requests (default: 100 ms).--cookie<cookie_string>: Add a session cookie (optional).--show: Show the browser window (default: headless).
-
Scan a Single URL:
SoftwareBuster --url https://example.com
-
Scan Multiple URLs from a File:
SoftwareBuster --file urls.txt
-
Scan with Session Cookie:
SoftwareBuster --url https://example.com --cookie "sessionid=abcd1234"
SoftwareBuster generates two types of outputs:
- Markdown Table: A table in markdown format listing outdated software and their associated CVEs.
- Color-Coded Terminal Output: A color-coded table showing software versions and severity of CVEs.
| Host | Port | Software Discovered | Version Found | Latest Version | CVE |
|-----------|------|---------------------|---------------|----------------|---------|
| example.com | 443 | Lodash | 4.17.15 | 4.17.21 | CVE-2020-1234 |
The terminal output will be color-coded, showing outdated libraries in red and displaying severity levels for CVEs using different colors.
To remove SoftwareBuster from your system, run the following commands:
rm /usr/local/bin/SoftwareBuster
pip3 uninstall -r requirements.txt- Jack Mason
This README explains the basic usage and up of SoftwareBuster. For more detailed information on how the tool works, refer to the comments in the source code.
