A lightweight Python vulnerability scanner that maps open ports and service banners to known CVEs using the official NVD (National Vulnerability Database) API.
- Fast multi-threaded port scanning — scan hundreds of ports in seconds
- Automatic banner grabbing — identifies service names and versions (SSH, HTTP, FTP, SMTP, and more)
- Real CVE lookup — matches discovered services against the official NIST NVD database
- Clean CLI — colored, severity-ranked output, right in your terminal
- Zero heavy dependencies — just Python's standard library +
requests
git clone https://github.com/Crow-developers/vulnscope.git
cd vulnscope
pip install -r requirements.txtRequires Python 3.7+.
Basic scan with CVE lookup:
python cli.py 192.168.1.1Scan a specific port range:
python cli.py 192.168.1.1 -p 1-1000Scan specific ports only:
python cli.py example.com -p 22,80,443Fast scan without CVE lookup:
python cli.py 192.168.1.1 --no-cveSave the report to a file:
python cli.py 192.168.1.1 -o report.txtUse an NVD API key for faster CVE lookups (optional — get one free here):
python cli.py 192.168.1.1 --api-key YOUR_API_KEY| Flag | Description |
|---|---|
-p, --ports |
Ports to scan, e.g. 1-1000 or 22,80,443 (default: 1-1024) |
-t, --timeout |
Socket timeout per port in seconds (default: 0.5) |
--threads |
Max concurrent scan threads (default: 100) |
--no-cve |
Skip CVE lookup, scan ports only (much faster) |
--api-key |
NVD API key for higher rate limits |
--no-color |
Disable colored output |
-o, --output |
Save the report to a text file |
- Port scanning (
scanner.py) — opens TCP connections across a port range using a thread pool, and grabs service banners where possible (passive listening or active probing for HTTP). - CVE lookup (
cve_lookup.py) — builds a search keyword from the detected service and version, then queries the NVD API v2.0 for matching CVEs, extracting CVSS scores and severity. - Engine (
vulnscope_engine.py) — ties the two together: for every open port found, it automatically looks up associated CVEs and builds a unified report. - CLI (
cli.py) — a user-friendly command-line wrapper around the engine, with colored severity output and file export.
vulnscope/
├── scanner.py # Port scanning engine
├── cve_lookup.py # NVD API integration
├── vulnscope_engine.py # Combines scanning + CVE lookup
├── cli.py # Command-line interface
├── requirements.txt
├── .gitignore
└── README.md
Only scan systems you own or have explicit permission to test. Scanning networks or devices without authorization may violate local laws. This tool is intended for educational purposes, authorized security assessments, and personal lab environments.
MIT