Kousiksamanta1/VulnScan-Pro

GitHub: Kousiksamanta1/VulnScan-Pro

一款集端口扫描、DNS/TLS 情报收集与 Web 漏洞主动探测于一体的桌面及 CLI 安全扫描工具。

Stars: 0 | Forks: 0

VulnScan Pro social preview

# VulnScan Pro [![测试](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/650123461f081013.svg)](https://github.com/Kousiksamanta1/VulnScan-Pro/actions/workflows/tests.yml) [![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/) [![许可证: MIT](https://img.shields.io/badge/License-MIT-2cff88.svg)](LICENSE) [![作品集](https://img.shields.io/badge/Portfolio-Operator_Archive-66e3ff)](https://kousiksamanta1.github.io/PORTFOLIO/) VulnScan Pro 是一款使用 Python 和 `customtkinter` 构建的桌面漏洞扫描器。 它将 TCP 端口扫描、DNS 查询、TLS 检测、被动 Web 分析、 轻量级主动 Web 漏洞检查、扫描历史记录、丰富的扫描元数据以及 报告导出功能整合在一个桌面应用程序中。 ## 功能 - 具有实时进度、日志和安全取消功能的桌面界面 - 端口预设和自定义端口范围 - 并发执行 DNS、端口、TLS 和 Web 扫描 - 针对常见服务的 Banner 探测 - 针对重定向、响应头、安全头、cookie、表单和参数的被动 Web 分析 - 针对属性、标签、文本和脚本上下文使用多种 payload 的主动 XSS 探测 - 结合基于错误、基于布尔和基于时间的启发式方法的主动 SQL 注入探测 - 历史快照和扫描对比 - 用于可重复扫描和评估运行的无头 CLI 模式 - 嵌入在已保存扫描结果和导出报告中的可复现性元数据 - 导出为 `JSON`、`CSV`、`HTML` 和 `PDF` ## 架构 ![系统架构](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/6f443b059d081018.svg) ## 扫描流程 ![扫描流程](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/c0cf503f6d081024.svg) ## 项目布局 ``` . ├── build_release.py ├── benchmark_lab.py ├── benchmark_metrics.py ├── benchmark_runner.py ├── benchmarks/ │ ├── apps/ │ ├── docker-compose.yml │ ├── README.md │ └── targets.json ├── docs/ │ ├── scan-flowchart.svg │ └── system-architecture.svg ├── main.py ├── pyproject.toml ├── requirements-dev.txt ├── requirements.txt ├── scanner_app.py ├── scanner_cli.py ├── scanner_engine.py ├── scanner_metadata.py ├── scanner_reporting.py ├── scanner_session.py ├── scanner_storage.py ├── tests/ │ ├── test_scanner_cli.py │ ├── test_benchmark_metrics.py │ ├── test_benchmark_runner.py │ ├── test_scanner_engine.py │ ├── test_scanner_reporting.py │ ├── test_scanner_session.py │ └── test_scanner_storage.py └── README.md ``` ## 模块 - `main.py`:启动桌面应用程序,或在提供参数时切换到 CLI 模式 - `benchmark_lab.py`:启动和停止受控的本地基准测试实验室 - `benchmark_runner.py`:针对基准测试目标运行 VulnScan Pro 和可选的基线工具 - `benchmark_metrics.py`:根据基准测试运行计算精确率、召回率、误报率和平均扫描持续时间 - `scanner_app.py`:UI、扫描控制、队列处理、历史视图和导出操作 - `scanner_cli.py`:用于可重复和脚本化实验的无头扫描运行器 - `scanner_engine.py`:目标解析、DNS 检查、端口扫描、TLS 检查和上下文感知的 Web 检查 - `scanner_metadata.py`:用于可复现性和报告的运行时元数据助手 - `scanner_session.py`:GUI 和 CLI 使用的共享扫描 payload 助手 - `scanner_storage.py`:设置、历史记录、快照和对比助手 - `scanner_reporting.py`:为 `JSON`、`CSV`、`HTML` 和 `PDF` 生成报告 ## 快速开始 ### 前置条件 - Python 3.10 或更高版本 - `pip` - 用于 GUI 的桌面环境 - Docker,仅在您希望运行可选的本地基准测试实验室时需要 从项目根目录(包含 `main.py` 和 `requirements.txt` 的目录)运行以下所有命令。 ### macOS 或 Linux 1. 创建并激活虚拟环境: python3 -m venv .venv source .venv/bin/activate 2. 安装依赖项: python -m pip install --upgrade pip python -m pip install -r requirements.txt 3. 启动桌面应用程序: python main.py ### Windows PowerShell 1. 创建并激活虚拟环境: py -3.10 -m venv .venv .\.venv\Scripts\Activate.ps1 2. 安装依赖项: python -m pip install --upgrade pip python -m pip install -r requirements.txt 3. 启动桌面应用程序: python main.py 如果 PowerShell 阻止了虚拟环境的激活,请在 当前终端中运行一次以下命令,然后再次尝试激活: ``` Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass ``` ### 不激活环境运行 在 macOS 或 Linux 上: ``` .venv/bin/python main.py ``` 在 Windows 上: ``` .\.venv\Scripts\python.exe main.py ``` ## 命令行扫描 当您不想打开桌面界面时,请使用 CLI 模式: ``` python main.py scan https://example.com --ports web ``` 保存 HTML 报告: ``` python main.py scan https://example.com --ports web --output reports/example.html ``` 打印完整的 JSON 结果: ``` python scanner_cli.py example.com --ports common --print-json ``` 显示所有 CLI 选项: ``` python main.py --help ``` 常见的端口值包括 `common`、`top100`、`web`、`database`、`mail`、 `remote`,明确的列表如 `22,80,443`,以及范围如 `1-1024`。 ## 可选的可编辑安装 以可编辑模式安装项目会将命令快捷方式添加到活动的 虚拟环境中: ``` python -m pip install -e . vulnscan-pro ``` 之后,可以使用以下命令运行 CLI 扫描: ``` vulnscan-pro-scan https://example.com --ports web ``` 可以使用以下命令安装可选的打包依赖项: ``` python -m pip install -r requirements-dev.txt ``` ## 故障排除 - `ModuleNotFoundError`:激活 `.venv` 并运行 `python -m pip install -r requirements.txt`。 - `python: command not found`:在 macOS/Linux 上使用 `python3`,或在 Windows 上使用 `py`。 - GUI 无法在 Linux 上打开:安装您发行版的 Tk 软件包,通常是 `python3-tk`,如有必要,请重新创建虚拟环境。 - 扫描期间出现权限或连接错误:确认目标可达 且您已获得扫描授权。 ## 基准测试工作流 启动受控的基准测试实验室: ``` python3 benchmark_lab.py up ``` 使用 VulnScan Pro 和任何已安装的基线运行一次基准测试: ``` python3 benchmark_runner.py --skip-missing-tools ``` 为已保存的运行重新计算评估指标: ``` python3 benchmark_metrics.py benchmarks/results/run_YYYYMMDD_HHMMSS ``` 本地基准测试夹具和目标定义位于 `benchmarks/` 目录中。 ## 用法 1. 输入目标 IP、域名或 URL。 2. 选择一个预设,例如 `common`、`top100`、`web`、`database`、`mail` 或 `remote`。 3. 可选地输入自定义端口,例如 `1-1024,8080,8443`。 4. 设置超时、工作线程数和导出格式。 5. 点击 `Start Scan`。 6. 在 `Overview`、`Ports`、`Web`、`Intel`、`History` 和 `Settings` 中查看结果。 7. 点击 `Stop` 取消正在进行的扫描。 8. 在需要时导出当前扫描。 GUI 中的基准测试工作流: - 打开 `Benchmark` 标签页以查看目标定义、控制本地实验室、运行基准测试并检查评估摘要。 - 基准测试运行器使用主控制条中的当前超时和工作线程值。 - 基准测试运行完成后,GUI 会记录活动的运行目录,以便您以后可以从同一标签页重新评估它。 端口输入示例: - `common` - `top100` - `web` - `21,22,80,443` - `1-1024` - `1-1024,8080,8443` ## Web 分析覆盖范围 内置的 Web 扫描器将被动检查与轻量级主动探测相结合: - 被动检查收集重定向链、响应头、常见安全头、cookie 标志、表单和可注入参数。 - XSS 检查使用针对不同 HTML 上下文设计的多种反射 payload,然后在报告可能的问题之前检查 payload 出现的位置。 - SQL 注入检查结合了数据库错误检测、布尔响应比较和时间延迟启发式方法。 当前范围和限制: - 目前的主动 Web 探测主要集中在 URL 查询参数和发现的 `GET` 表单输入上。 - 结果旨在帮助对可能的问题进行分类的指示,而不是可利用性的证明。 - 扫描器不会在真实浏览器中执行 JavaScript,因此仅限 DOM 的 XSS 和复杂的客户端流程不在范围内。 - 经过身份验证的工作流、受 CSRF 保护的表单、自定义标头、JSON body 和多步应用程序逻辑未进行深入测试。 ## 数据和输出 - 设置存储在 `~/.vulnscan_pro/settings.json` 中 - 扫描历史记录存储在 `~/.vulnscan_pro/scan_history.json` 中 - 报告可以导出为 `JSON`、`CSV`、`HTML` 或 `PDF` - 保存的扫描和报告现在包括扫描器版本、运行时元数据、依赖版本、扫描配置和记录的错误 ## 测试 ``` python3 -m unittest discover -s tests -v ``` 持续集成配置在 `.github/workflows/tests.yml` 中。 ## 打包 ``` python3 build_release.py ``` 该项目还包含 `pyproject.toml`,因此可以作为标准的 Python 包进行安装和脚本化。 ## 注意事项 - Web 扫描发现应被视为供手动验证的强烈指示,而不是完整的 Web 应用程序渗透测试。 - 对于仅限 IP 的目标,将跳过 DNS 收集。 - TLS 分析依赖于可达的 TLS 服务。 - 某些开放服务可能不会返回有用的 banner。 ## 授权使用 仅在您拥有或获得明确授权评估的系统及网络上使用此工具。 ## 安全 根据 [SECURITY.md](SECURITY.md) 报告安全敏感的发现。 ## 许可证 MIT。请参阅 [LICENSE](LICENSE)。
标签:CISA项目, Python, UDP扫描, Web安全, 加密, 实时处理, 插件系统, 无后门, 桌面应用, 漏洞扫描器, 蓝队分析, 请求拦截, 逆向工具