vtino17/vuln-scanner
GitHub: vtino17/vuln-scanner
一款模块化网络漏洞扫描器,将服务发现结果与NVD的CVE进行关联,支持定时调度、多格式报告和通知集成。
Stars: 0 | Forks: 0
# 漏洞扫描器
用于网络设备和服务的模块化漏洞扫描器。将发现的服务与已知的 CVE 进行关联,生成多种格式的报告,并支持带有通知集成的定时扫描。
## 功能
- 服务发现和指纹识别
- 通过 NVD 数据库进行 CVE 关联
- 用于自定义检查的模块化插件架构
- 支持 JSON、HTML、CSV 和 SARIF 格式的报告
- 支持可配置间隔的定时扫描
- 支持 Email、Slack 和 webhook 通知
- 基于 CIDR 的目标设定
- 速率限制和并发控制
- 用于 CI/CD pipeline 的退出代码集成
## 安装
```
pip install vuln-scanner
```
或从源码安装:
```
git clone https://github.com/vtino17/vuln-scanner.git
cd vuln-scanner
pip install -e .
```
## 快速开始
```
# 扫描单个主机
vuln-scan scan 192.168.1.1
# 扫描 CIDR 范围并生成 HTML 报告
vuln-scan scan 10.0.0.0/24 --output report.html --format html
# 通过完整漏洞关联进行扫描
vuln-scan scan target.example.com --cve --severity high
# 每日定时扫描
vuln-scan schedule 10.0.0.0/24 --interval daily --notify slack
# 列出可用插件
vuln-scan plugins --list
```
## 架构
```
vuln-scan
core/ Engine, target parser, scheduler
plugins/ CVE check modules
reporters/ Output format handlers
notifiers/ Alert integrations
```
## 插件开发
```
from vuln_scanner.core.plugin import BasePlugin
class CustomCheck(BasePlugin):
name = "custom-ssl-check"
description = "Checks SSL certificate expiration"
def run(self, target):
result = self.check_cert(target.host, target.port)
return {"cert_expiry_days": result}
```
## 支持的输出格式
- JSON(机器可读)
- HTML(适用于浏览器的报告)
- CSV(电子表格导入)
- SARIF(兼容 GitHub Advanced Security)
## 通知
- SMTP Email
- Slack webhook
- 通用 webhook(自定义集成)
## 测试
```
pytest tests/ --cov=vuln_scanner
```
## 许可证
MIT
标签:安全规则引擎, 逆向工具