KibouAkari/vScanner

GitHub: KibouAkari/vScanner

一个基于 Flask 与 Nmap 的自适应漏洞扫描平台,提供仪表板分析、风险趋势与可导出报告,专注项目级安全数据聚合。

Stars: 1 | Forks: 0

vScanner icon

vScanner

具有现代报告、自适应扫描引擎和项目级安全分析的专业漏洞扫描工作空间。

在线: vscanner.vercel.app

Python Flask Nmap License

## 为什么选择 vScanner vScanner 最初是一个简单的 Python 脚本,包含一个基础的 Flask 网站和几个基于 Nmap 的扫描选项,用于一个学校项目。 它已经发展成为一个更大的安全平台,具备模块化扫描引擎、去重发现智能、持久化项目分析、可导出报告以及生产就绪的部署选项。 ## 实时报告展示 vScanner 提供从首次扫描到执行仪表板视图的完整报告流程: - 可选择配置文件和策略的实时扫描执行 - 项目仪表板,包含风险趋势、严重性分布和顶级漏洞 - 聚合发现视图,支持过滤、排序和资产影响上下文 - 一键导出 PDF 和 CSV 报告,用于审计和利益相关者沟通 ### 实时报告预览 生产环境截图(从 https://vscanner.vercel.app 捕获),以匹配实际的在线 UI 设计。

vScanner live dashboard preview

生产链接: - 在线 UI: `https://vscanner.vercel.app` - 健康检查 API: `https://vscanner.vercel.app/api/health` - 示例仪表板端点: `https://vscanner.vercel.app/api/projects/default/dashboard?window_days=30` ## 报告审查工作流程 在与团队、教师或利益相关者一起审查生成的报告时,请使用以下结构: 1. 验证扫描范围 - 确认目标、配置文件和端口策略与批准的范围匹配。 - 确认扫描时间戳和环境(实验室、预发布、生产)。 2. 审查执行风险快照 - 从风险分布和趋势方向开始。 - 确定当前状态相对于之前的扫描是改善还是退化。 3. 优先处理可操作发现 - 首先关注具有暴露攻击面的关键和高严重性发现。 - 将跨多个资产的重复问题分组为一个修复工作流。 4. 验证技术证据 - 检查开放端口、服务版本、横幅和插件证据。 - 在分配修复工作之前确认信号质量。 5. 定义修复计划 - 为每个已接受发现分配负责人、优先级和截止日期。 - 使用简单的生命周期跟踪状态:打开、进行中、已验证、已关闭。 6. 重新扫描并闭环 - 修复后重新运行有针对性的扫描。 - 导出 PDF/CSV 以生成审计跟踪并附加到工单记录。 ## 功能概述 - 目标类型: - 单个 IP - 域名 - CIDR 网络(授权本地/实验室发现) - 扫描配置文件: - `light` 用于快速发现 - `deep` 用于更全面的服务和版本分析 - `stealth` 用于低噪声防御性扫描 - `network` 用于 CIDR 发现 - `advanced_v2` 用于自适应异步引擎和插件检查 - 端口策略: - `standard` - `aggressive` - 发现智能: - 每个资产的去重漏洞跟踪 - 跨资产的聚合弱点可见性 - 更清晰的风险分布(仅可操作发现) - 报告: - 单次扫描的 PDF 和 CSV - 项目发现的 PDF 和 CSV - 用于共享和审查的仪表板导出 ## 架构快照 - `vscanner.py`:主要后端、API、持久化、分析、扫描编排 - `scanner_v2/`:模块化异步扫描引擎、协议指纹识别、插件检查 - `scanner_v2/rust_bridge.py`:用于快速 TCP 探测的可选 Rust 工作者桥接 - `rust_worker/`:Rust 数据平面工作者(可选) - `templates/index.html` + `static/app.js` + `static/style.css`:Web UI 和仪表板体验 - `api/index.py` + `vercel.json`:无服务器部署入口点和路由 ## 快速入门 1. 安装 Nmap - macOS: `brew install nmap` - Linux: 包管理器,例如 `sudo apt install nmap` - Windows: https://nmap.org/download.html 2. 安装 Python 依赖 ``` pip install -r requirements.txt ``` 3. 启动应用程序 ``` python vscanner.py ``` 4. 打开 UI - `http://127.0.0.1:5000` ## API 亮点 - `POST /api/scan` - `POST /api/scan/v2` - `GET /api/projects` - `GET /api/projects//dashboard?window_days=30` - `GET /api/projects//findings?severity=all&since_days=90&sort_by=severity&sort_dir=desc&search=` - `GET /api/reports//pdf` - `POST /api/admin/reset-data` 示例扫描请求(`POST /api/scan` 或 `POST /api/scan/v2`): ``` { "target": "example.com", "profile": "deep", "port_strategy": "standard", "project_id": "default" } ``` ## 部署(Vercel) 此仓库开箱即用支持 Vercel 部署: - `api/index.py` 是无服务器入口点 - `vercel.json` 将传入流量路由到 Flask 推荐的环境变量: - `VSCANNER_PUBLIC_MODE=1` - `VSCANNER_FORCE_LIGHT_SCAN=1`(可选) - `DATABASE_URL=`(可选) - `MONGODB_URI=`(可选) - `MONGODB_DB_NAME=vscanner`(可选) ## 可选 Rust 数据平面(V2) 保持 Python 作为控制平面,使用 Rust 作为可选数据平面以实现更快的连接探测。 构建工作者: ``` cd rust_worker cargo build --release ``` 启用工作者: ``` export VSCANNER_USE_RUST_WORKER=1 export VSCANNER_RUST_WORKER_BIN="$(pwd)/rust_worker/target/release/vscanner-rust-worker" ``` 然后通过 `POST /api/scan/v2` 或 UI 中的高级 V2 模式运行扫描。 ## 工程验证 - 单元测试: ``` python -m unittest tests/test_scanner_v2.py ``` - 集成测试(容器堆栈): ``` python -m unittest tests/integration/test_container_stack.py ``` - 基准测试: ``` python scripts/benchmark_v2.py --host 127.0.0.1 --runs 3 --ports 400 ``` 架构说明位于 `docs/scanner_v2_architecture.md`。 ## 安全与法律 仅对您明确授权测试的系统和网络使用 vScanner。 未经授权的扫描可能违反法律、合同或策略。 `stealth` 意味着低噪声的防御行为。它不提供规避或绕过能力。
标签:AMSI绕过, CTI, Flask, GPT, HTTP API, Maven构建, Nmap, PDF报告, Python, V2扫描, Web安全, 企业审计, 可视化界面, 威胁检测, 安全仪表盘, 安全报告, 无后门, 漏洞管理, 生产就绪部署, 网络发现, 网络安全, 自适应扫描, 蓝队分析, 虚拟驱动器, 逆向工具, 隐私保护, 项目级分析