
⚡ Профессиональный сканер уязвимостей — сканирование портов, обнаружение CVE, оценка рисков и PDF-отчеты в темной панели PyQt6

Профессиональный сканер уязвимостей кибербезопасности, созданный на Python 3.13 и PyQt6. Разработан для авторизованных оценок безопасности, образовательных исследований и защитной кибербезопасности.
Этот инструмент должен использоваться только на системах, которые вам принадлежат или на которые у вас есть явное письменное разрешение для тестирования. Несанкционированное сканирование систем, которые вам не принадлежат, является незаконным в большинстве юрисдикций. Авторы не несут ответственности за неправомерное использование.

# 1. Перейдите в каталог проекта
cd "VulnScan_Pro"
# 2. (Рекомендуется) Создайте виртуальное окружение
python -m venv venv
venv\Scripts\activate # Windows
# source venv/bin/activate # Linux / macOS
# 3. Установите зависимости
pip install -r requirements.txt
# 4. Запустите приложение
python main.py
192.168.1.1192.168.1.0/24192.168.1.1-254myserver.localРезультаты появляются автоматически на странице Результаты после каждого сканирования.
Каждая находка содержит:
Используйте строку фильтра в верхней части страницы «Результаты» для фильтрации по:
VulnScan_Pro/
├── main.py # Точка входа в приложение
├── requirements.txt
├── core/
│ ├── scanner.py # Многопоточный сканер портов (QThread)
│ ├── service_detector.py # Снятие баннеров и определение отпечатков служб
│ ├── vuln_engine.py # Движок сопоставления CVE
│ ├── risk_calculator.py # Взвешенная оценка риска по CVSS
│ └── scheduler.py # Планировщик повторяющихся сканирований
├── gui/
│ ├── main_window.py # Главное окно с боковой навигацией
│ ├── dashboard.py # Панель статистики с графиками
│ ├── scan_page.py # Конфигурация и выполнение сканирования
│ ├── results_page.py # Просмотр находок с фильтрацией
│ ├── history_page.py # Управление историей сканирований
│ ├── reports_page.py # Генерация PDF-отчётов
│ ├── settings_page.py # Настройки приложения
│ └── widgets/
│ ├── stat_card.py # Карточка сводной метрики
│ ├── charts.py # DonutChart, BarChart, LineChart
│ └── severity_badge.py# Значок серьёзности (пилюля)
├── database/
│ ├── db_manager.py # Операции CRUD с SQLite
│ └── vuln_db.py # Локальная база уязвимостей (40+ CVE)
├── reports/
│ └── pdf_generator.py # Построитель PDF-отчётов на ReportLab
└── utils/
├── validators.py # Проверка ввода
├── network_utils.py # Утилиты сокетов
└── logger.py # Централизованное логирование
Локальная база CVE охватывает распространённые службы, включая:
Этот инструмент создан для:
QThread с использованием ThreadPoolExecutor для параллельного опроса портов. Графический интерфейс никогда не блокируется.db_manager.py.| Возможность | Описание |
|---|
| Сканер портов | Быстрое многопоточное TCP-сканирование до 500 одновременных потоков |
| Определение служб | Снятие баннеров и определение отпечатков для 15+ распространённых служб |
| Движок уязвимостей | Локальная база CVE с 40+ известными уязвимостями |
| Система серьёзности | Рейтинги: Критический / Высокий / Средний / Низкий / Информационный с оценками CVSS |
| Панель управления | Интерактивные графики распределения серьёзности, трендов и статистики |
| История сканирований | История на базе SQLite с полным сохранением результатов |
| PDF-отчёты | Профессиональные отчёты об оценке, созданные с помощью ReportLab |
| Экспорт в CSV | Экспорт истории сканирований в CSV для дальнейшего анализа |
| Фильтрация | Фильтрация по серьёзности, хосту, порту и службе |
| Рекомендации | Практические советы по устранению для каждой находки |
| Планировщик | Планировщик повторяющихся сканирований |
| Служба | Охват CVE |
|---|
| 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 (бэкдор) |
| SMB | CVE-2017-0144 (EternalBlue) |
| RDP | CVE-2019-0708 (BlueKeep) |
| Telnet | Обнаружение незащищённого протокола |
| FTP | Предупреждение о передаче паролей в открытом виде |