
⚡ 전문 취약점 스캐너 — 포트 스캐닝, CVE 탐지, 리스크 점수 산정 & 다크 PyQt6 대시보드의 PDF 보고서

Python 3.13과 PyQt6로 구축된 전문 사이버 보안 취약점 스캐너입니다. 승인된 보안 평가, 교육 연구 및 방어적 사이버 보안을 위해 설계되었습니다.
이 도구는 소유하고 있거나 명시적 서면 허가를 받은 시스템에서만 사용해야 합니다. 소유하지 않은 시스템에 대한 무단 스캐닝은 대부분의 관할권에서 불법입니다. 저자는 오용에 대해 어떠한 책임도 지지 않습니다.
| 기능 | 설명 |
|---|---|
| 포트 스캐너 | 최대 500개의 동시 스레드를 지원하는 고속 멀티스레드 TCP 스캐닝 |
| 서비스 탐지 | 15개 이상의 일반적인 서비스에 대한 배너 그래빙 및 핑거프린팅 |
| 취약점 엔진 | 40개 이상의 알려진 취약점을 포함한 로컬 CVE 데이터베이스 |
| 심각도 시스템 | CVSS 점수를 포함한 치명적 / 높음 / 중간 / 낮음 / 정보 제공 등급 |
| 대시보드 | 심각도 분포, 추세 및 통계를 보여주는 실시간 차트 |
| 스캔 기록 | 전체 결과 영속성을 지원하는 SQLite 기반 기록 |
| PDF 보고서 | ReportLab으로 생성된 전문 평가 보고서 |
| CSV 내보내기 | 추가 분석을 위해 스캔 기록을 CSV로 내보내기 |
| 필터링 | 심각도, 호스트, 포트 및 서비스별 필터링 |
| 권장 사항 | 모든 발견 사항에 대한 실행 가능한 수정 조언 |
| 스케줄링 | 반복 스캔 스케줄러 |

# 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.local각 스캔 후 결과가 결과 페이지에 자동으로 표시됩니다.
각 발견 사항에는 다음이 표시됩니다:
결과 페이지 상단의 필터 막대를 사용하여 다음 기준으로 필터링합니다:
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
로컬 CVE 데이터베이스는 다음을 포함한 일반적인 서비스를 다룹니다:
이 도구는 다음을 위해 제작되었습니다:
ThreadPoolExecutor를 사용하는 QThread 워커에서 실행됩니다. GUI는 절대 차단되지 않습니다.db_manager.py를 통해 WAL 모드와 외래 키 제약을 적용하는 SQLite.| 서비스 | 포함된 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 | 평문 자격 증명 경고 |