Paarth-agrawal/vulnerability-scanner

GitHub: Paarth-agrawal/vulnerability-scanner

一款基于 Python 标准库的教育性漏洞扫描工具,用于检测目标主机的开放端口、安全配置及过时软件,并生成可视化 HTML 报告。

Stars: 0 | Forks: 0

# 🔍 漏洞扫描器(小型项目) 一款教育性质的 Python 工具,用于扫描目标主机的开放端口、脆弱配置、过时的软件版本,并生成详细的 HTML 漏洞报告。 ## 功能 - **端口扫描器** — 使用多线程扫描常见端口(速度快) - **Banner Grabbing** — 从 banner 中检测服务版本 - **HTTP Header 分析** — 检查缺失的安全标头(HSTS、CSP、X-Frame-Options 等) - **TLS/SSL 检查** — 验证证书过期时间和协议版本 - **过时软件检测** — 标记 EOL(生命周期结束)的软件版本(PHP 5、Apache 2.2、OpenSSH 6 等) - **HTML 报告** — 生成简洁、带有颜色区分的漏洞报告 - **JSON 导出** — 可选地将原始结果导出为 JSON ## 环境要求 - Python 3.6 或更高版本 - 无需外部库 — 仅使用 Python 标准库 ## 安装 ``` git clone https://github.com/YOUR_USERNAME/vulnerability-scanner.git cd vulnerability-scanner python scanner.py --help ``` ## 用法 ### 扫描 localhost(安全默认) ``` python scanner.py localhost ``` ### 扫描域名 ``` python scanner.py example.com ``` ### 仅扫描特定端口 ``` python scanner.py localhost --ports 80 443 22 3306 ``` ### 全面扫描(所有已知的危险端口) ``` python scanner.py localhost --full ``` ### 使用自定义文件名保存报告 + 导出 JSON ``` python scanner.py localhost --output my-report.html --json ``` ## 输出 扫描完成后,在浏览器中打开 `report.html` 即可查看: | 栏目 | 显示内容 | |---------|--------------| | 总体风险 | Critical / High / Moderate / Low | | 摘要卡片 | 按严重程度统计的数量 | | 开放端口 | 端口、服务、风险等级、描述、banner | | 安全发现 | HTTP 标头、TLS 问题、过时的软件 | ## 项目结构 ``` vulnerability-scanner/ ├── scanner.py # Main script — all scanning logic ├── report.html # Generated after running a scan ├── README.md # This file └── .gitignore ``` ## 工作原理 ### 端口扫描 使用 Python 的 `socket` 模块结合多线程(`concurrent.futures`)并行连接端口。成功的 TCP 连接表示该端口已开放。 ### Banner 抓取 发现开放端口后,尝试读取前 200 字节的数据 — 许多服务(SSH、FTP、HTTP)会立即发送版本信息。 ### HTTP 标头分析 使用 `urllib` 发起 HTTP 请求,并根据安全最佳实践列表检查响应标头。 ### TLS 检查 使用 Python 内置的 `ssl` 模块执行 TLS 握手,并检查证书和协议版本。 ### 报告生成 使用纯 Python 字符串模板 — 无需外部库。生成一个包含内联 CSS 的独立 HTML 文件。 ## 严重程度等级 | 等级 | 颜色 | 含义 | |-------|-------|---------| | Critical | 🔴 红色 | 需要立即采取行动 | | High | 🟠 橙色 | 尽快修复 | | Medium | 🟡 黄色 | 应当予以处理 | | Info | 🔵 蓝色 | 仅供参考 | ## 预期学习成果 - 了解 TCP 端口扫描 - 掌握常见的危险端口及其风险原因 - 了解 HTTP 安全标头及其作用 - TLS/SSL 证书管理 - 渗透测试方法论基础 ## 许可证 MIT — 仅限教育用途。
标签:Banner抓取, HTTP安全, Python, 加密, 插件系统, 数据统计, 无后门, 漏洞扫描器, 端口扫描, 逆向工具