
⚡ Escáner de vulnerabilidades profesional — escaneo de puertos, detección de CVE, puntuación de riesgos e informes PDF en un panel oscuro de PyQt6

Un escáner profesional de vulnerabilidades de ciberseguridad construido con Python 3.13 y PyQt6. Diseñado para evaluaciones de seguridad autorizadas, investigación educativa y ciberseguridad defensiva.
Esta herramienta solo debe utilizarse en sistemas de su propiedad o para los que tenga permiso explícito por escrito para realizar pruebas. El escaneo no autorizado de sistemas que no le pertenecen es ilegal en la mayoría de las jurisdicciones. Los autores no aceptan responsabilidad alguna por el uso indebido.

# 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.localLos resultados aparecen automáticamente en la página Resultados después de cada escaneo.
Cada hallazgo muestra:
Utilice la barra de filtros en la parte superior de la página de Resultados para filtrar por:
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
La base de datos local de CVE cubre servicios comunes como:
Esta herramienta está diseñada para:
QThread usando ThreadPoolExecutor para el sondeo paralelo de puertos. La GUI nunca se bloquea.db_manager.py.| Feature | Description |
|---|
| Port Scanner | Escaneo TCP rápido con subprocesos múltiples (hasta 500 hilos concurrentes) |
| Service Detection | Captura de banners y huella digital para más de 15 servicios comunes |
| Vulnerability Engine | Base de datos local de CVE con más de 40 vulnerabilidades conocidas |
| Severity System | Clasificaciones Crítica / Alta / Media / Baja / Informativa con puntuaciones CVSS |
| Dashboard | Gráficos en vivo que muestran distribución de gravedad, tendencias y estadísticas |
| Scan History | Historial respaldado por SQLite con persistencia completa de resultados |
| PDF Reports | Informes de evaluación profesionales generados con ReportLab |
| CSV Export | Exportar el historial de escaneo a CSV para análisis adicional |
| Filtering | Filtrar por gravedad, host, puerto y servicio |
| Recommendations | Consejos de remediación prácticos para cada hallazgo |
| Scheduling | Programador de escaneos recurrentes |
| Servicio | CVE cubiertos |
|---|
| 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 | Detección de protocolo inseguro |
| FTP | Advertencia de credenciales en texto plano |