
⚡ Professional vulnerability scanner — port scanning, CVE detection, risk scoring & PDF reports in a dark PyQt6 dashboard

A professional cybersecurity vulnerability scanner built with Python 3.13 and PyQt6. Designed for authorised security assessments, educational research, and defensive cybersecurity.
This tool must only be used on systems you own or have explicit written permission to test. Unauthorised scanning of systems you do not own is illegal in most jurisdictions. The authors accept no liability for misuse.

# 1. Navigate to the project directory
cd "VulnScan_Pro"
# 2. (Recommended) Create a virtual environment
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux / macOS
# 3. Install dependencies
pip install -r requirements.txt
# 4. Launch the application
python main.py
192.168.1.1192.168.1.0/24192.168.1.1-254myserver.localResults appear automatically in the Results page after each scan.
Each finding shows:
Use the filter bar at the top of the Results page to filter by:
VulnScan_Pro/
├── main.py # Application entry point
├── requirements.txt
├── core/
│ ├── scanner.py # Multithreaded port scanner (QThread)
│ ├── service_detector.py # Banner grabbing & service fingerprinting
│ ├── vuln_engine.py # CVE matching engine
│ ├── risk_calculator.py # CVSS-weighted risk score
│ └── scheduler.py # Recurring scan scheduler
├── gui/
│ ├── main_window.py # Main window with sidebar navigation
│ ├── dashboard.py # Statistics dashboard with charts
│ ├── scan_page.py # Scan configuration & execution
│ ├── results_page.py # Findings browser with filtering
│ ├── history_page.py # Historical scan management
│ ├── reports_page.py # PDF report generation
│ ├── settings_page.py # Application preferences
│ └── widgets/
│ ├── stat_card.py # Metric summary card
│ ├── charts.py # DonutChart, BarChart, LineChart
│ └── severity_badge.py# Severity pill badge
├── database/
│ ├── db_manager.py # SQLite CRUD operations
│ └── vuln_db.py # Local vulnerability database (40+ CVEs)
├── reports/
│ └── pdf_generator.py # ReportLab PDF report builder
└── utils/
├── validators.py # Input validation
├── network_utils.py # Socket utilities
└── logger.py # Centralised logging
The local CVE database covers common services including:
This tool is built for:
QThread workers using ThreadPoolExecutor for parallel port probing. The GUI never blocks.db_manager.py.| Feature | Description |
|---|
| Port Scanner | Fast multithreaded TCP scanning with up to 500 concurrent threads |
| Service Detection | Banner grabbing and fingerprinting for 15+ common services |
| Vulnerability Engine | Local CVE database with 40+ known vulnerabilities |
| Severity System | Critical / High / Medium / Low / Informational ratings with CVSS scores |
| Dashboard | Live charts showing severity distribution, trends, and statistics |
| Scan History | SQLite-backed history with full results persistence |
| PDF Reports | Professional ReportLab-generated assessment reports |
| CSV Export | Export scan history to CSV for further analysis |
| Filtering | Filter by severity, host, port, and service |
| Recommendations | Actionable remediation advice for every finding |
| Scheduling | Recurring scan scheduler |
| Service | CVEs Covered |
|---|
| OpenSSH | CVE-2023-38408, CVE-2021-41617, CVE-2018-15473 |
| Apache HTTP | CVE-2021-41773, CVE-2021-42013, CVE-2021-40438, CVE-2022-22720 |
| Nginx | CVE-2021-23017, CVE-2022-41741 |
| MySQL | CVE-2023-21980, CVE-2022-21589 |
| PostgreSQL | CVE-2022-1552, CVE-2022-41862 |
| Redis | CVE-2021-32626, CVE-2022-24736 |
| vsftpd | CVE-2011-2523 (backdoor) |
| SMB | CVE-2017-0144 (EternalBlue) |
| RDP | CVE-2019-0708 (BlueKeep) |
| Telnet | Insecure protocol detection |
| FTP | Cleartext credential warning |