MaciejKrupa-1/openvas-vulnerability-scanner
GitHub: MaciejKrupa-1/openvas-vulnerability-scanner
基于 GVM/OpenVAS 的自动化漏洞扫描器,支持定时扫描并按 CVSS 生成 PDF 报告和邮件通知。
Stars: 0 | Forks: 0
# GVM/OpenVAS 自动化报告漏洞扫描器
本项目为华沙理工大学 (WEiTI) **系统与软件安全 (BSO)** 课程作业。
**作者:** Maciej Krupa, Wojciech Sondej
## 描述
## 功能
- 使用 OpenVAS (`Full and fast`) 自动扫描网络
- 生成按 CVSS 排序的漏洞 PDF 报告
- 两种报告模式:**概述** (OGÓLNY) 和 **详细** (SZCZEGÓŁOWY)
- 根据最低 CVSS 等级过滤漏洞
- 通过 SMTP 发送电子邮件报告
- 每 24 小时定时扫描(可选)
- 通过 `.env` 文件进行配置
## 项目结构
```
GVM-SCANNER/
├── config/
│ ├── .env.example # Szablon konfiguracji (bez danych wrażliwych)
│ └── .env # Konfiguracja lokalna — NIE jest w repo
├── controller/
│ ├── Dockerfile
│ ├── main.py # Główna pętla — skan, raport, e-mail, scheduler
│ ├── scanner.py # Komunikacja z GVM przez Unix socket
│ ├── report.py # Parsowanie XML i generowanie PDF (reportlab)
│ ├── mailer.py # Wysyłanie e-mail przez SMTP
│ └── requirements.txt
├── reports/ # Wygenerowane raporty PDF (nie są w repo)
├── compose.yaml # Docker Compose — Greenbone Community Edition
├── docker-compose.dev.yml # Docker Compose — kontroler skanera
└── install.sh # Skrypt instalacyjny i konfiguracyjny
```
## 环境要求
- Docker
- Docker Compose
- 已运行的 Greenbone Community Edition 栈 (`compose.yaml`)
## 运行说明
脚本将引导您逐步完成配置:
- 收件人电子邮件地址
- 待扫描的网络范围(默认自动检测)
- 扫描计划(单次 / 每 24 小时)
- 报告类型(概述 (OGÓLNY) / 详细 (SZCZEGÓŁOWY))
- 最低 CVSS 等级(默认为 7.0)
- Greenbone 密码
## 配置
配置通过 `config/.env` 文件完成。模板位于 `config/.env.example`:
```
NETWORK=192.168.1.0/24
GVM_PASSWORD=
EMAIL=odbiorca@example.com
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
SCHEDULE=TAK
REPORT=OGÓLNY
MIN_SEVERITY=7.0
LOGIN=user_1
```
## PDF 报告
报告包含:
- 根据等级划分的漏洞摘要(CRITICAL / HIGH / MEDIUM / LOW)
- 每个漏洞的详细信息:主机、端口、描述、解决方案、CVE 参考
- 详细模式 (SZCZEGÓŁOWY) 下包含:解决方案类型、影响、受影响系统、QoD、检测结果
CVSS 等级:
| 等级 | CVSS |
|----------|------------|
| CRITICAL | ≥ 9.0 |
| HIGH | 7.0 – 8.9 |
| MEDIUM | 4.0 – 6.9 |
| LOW | < 4.0 |
## 使用的技术
- Python 3.11
- GVM/OpenVAS (Greenbone Community Edition)
- Docker, Docker Compose
- `python-gvm` — 通过 Unix socket 与 GVM 通信
- `reportlab` — 生成 PDF
- `apscheduler` — 扫描计划程序
- `python-dotenv` — 通过 `.env` 进行配置
- `smtplib` — 通过 SMTP 发送电子邮件
标签:版权保护, 请求拦截, 逆向工具