Skip to content

Latest commit

 

History

History
66 lines (40 loc) · 1.9 KB

File metadata and controls

66 lines (40 loc) · 1.9 KB

🛡️ VTScan: VirusTotal URL Scanner

VTScan is a command-line tool for scanning URLs using the VirusTotal API and generating reports.

Features

  • Scan multiple URLs against VirusTotal.
  • Provide your API key as an option or when prompted.
  • Generate results as an Excel file (results.xlsx) and an HTML report (report.html).
  • Clear progress updates and error handling.

🛠 Prerequisites

  • 🐍 Python 3.7+
  • VirusTotal API Key (available for free from VirusTotal)
  • Python packages: typer, typing_extensions, vt, pandas, jinja2

Installation

  1. Clone the repository or download the files.

  2. Navigate to the project directory.

  3. Install the required dependencies:

    pip install typer typing_extensions vt pandas jinja2

Usage

Run the tool using the following command:

python3 main.py <url1> <url2> ... [options]

To see the available options, run:

python3 main.py --help

Contributions

Contributions are welcome! Here are some suggestions:

  • Add support for reading URLs from input files (.txt, .csv), or via stdin.

  • Add additional output formats: e.g., JSON, CSV, or a Markdown summary for GitHub Actions.

  • Improve the HTML template: add charts (e.g., bar chart of verdict counts) using libraries like plotly or matplotlib.

  • Add multi‐threading or asynchronous calls for faster scanning of large lists (while still respecting rate limits).

  • Add integration with a SIEM or Slack notification when malicious URLs are found.

  • Write additional tests for scan.py, generate.py and improve error-handling coverage.

If you submit a pull request:

  • Fork the repository, create a feature branch, write unit tests when applicable.

  • Ensure compatibility with Python 3.7+ and include any new dependencies in requirements.txt.

License

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