
⚡ Scanner professionale di vulnerabilità — scansione delle porte, rilevamento CVE, valutazione del rischio e report PDF in una dashboard scura PyQt6

Uno scanner professionale di vulnerabilità informatiche realizzato con Python 3.13 e PyQt6. Progettato per valutazioni di sicurezza autorizzate, ricerca didattica e cybersecurity difensiva.
Questo strumento deve essere utilizzato esclusivamente su sistemi di tua proprietà o per i quali hai ricevuto esplicita autorizzazione scritta a testarli. La scansione non autorizzata di sistemi che non possiedi è illegale nella maggior parte delle giurisdizioni. Gli autori non si assumono alcuna responsabilità per un uso improprio.

# 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.localI risultati appaiono automaticamente nella pagina Risultati dopo ogni scansione.
Ogni risultato mostra:
Utilizza la barra dei filtri in cima alla pagina Risultati per filtrare per:
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
Il database CVE locale copre i servizi comuni, tra cui:
Questo strumento è stato realizzato per:
QThread utilizzando ThreadPoolExecutor per il probing parallelo delle porte. La GUI non si blocca mai.db_manager.py.| Funzionalità | Descrizione |
|---|
| Scanner di porte | Scansione TCP multithread veloce con fino a 500 thread concorrenti |
| Rilevamento servizi | Banner grabbing e fingerprinting per oltre 15 servizi comuni |
| Motore di vulnerabilità | Database CVE locale con oltre 40 vulnerabilità note |
| Sistema di gravità | Classificazioni Critica / Alta / Media / Bassa / Informativa con punteggi CVSS |
| Dashboard | Grafici in tempo reale che mostrano distribuzione della gravità, tendenze e statistiche |
| Cronologia scansioni | Cronologia basata su SQLite con persistenza completa dei risultati |
| Report PDF | Report di valutazione professionali generati con ReportLab |
| Esportazione CSV | Esporta la cronologia delle scansioni in CSV per ulteriori analisi |
| Filtri | Filtra per gravità, host, porta e servizio |
| Raccomandazioni | Consigli di rimedio attuabili per ogni risultato |
| Pianificazione | Pianificatore di scansioni ricorrenti |
| Servizio | CVE Coperti |
|---|
| 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 | Rilevamento protocollo non sicuro |
| FTP | Avviso credenziali in chiaro |