Bindu-115586/vulnerability-scanner

GitHub: Bindu-115586/vulnerability-scanner

一款零依赖的轻量级 Python 命令行漏洞扫描工具,通过端口扫描、Banner 抓取和本地漏洞签名比对来识别目标主机上的已知风险服务版本,并生成 HTML 与 JSON 格式的安全报告。

Stars: 0 | Forks: 0

# 🔍 漏洞扫描器(小型项目) 一款轻量级、无依赖的 Python CLI 工具,可用于扫描目标主机的 开放端口、抓取服务 Banner、标记已知的过期软件版本, 并生成清晰的 HTML + JSON 漏洞报告。 本项目旨在作为核心渗透测试概念的实践入门: 端口扫描、服务/Banner 枚举以及漏洞分类。 ## 功能 - **端口扫描** — 检查默认的常用端口列表、自定义 范围 (`1-1024`) 或逗号分隔的列表 (`22,80,443`) - **Banner 抓取** — 从发现的每个开放端口读取服务 Banner(SSH、HTTP、FTP 等) - **版本风险检查** — 将 Banner 与本地维护的已知过期/存在历史漏洞的 软件版本小型列表进行比对并标记 (例如 vsFTPd 2.3.4 后门、旧版 OpenSSH/Apache 发行版) - **报告生成** — 输出机器可读的 `.json` 文件以及 可在任意浏览器中打开的带有深色主题样式的 `.html` 报告 ## 项目结构 ``` vuln-scanner/ ├── scanner.py # CLI entry point — orchestrates the scan ├── port_scanner.py # TCP port scanning logic ├── version_checker.py # Banner grabbing + known-risk signature matching ├── report_generator.py # JSON + HTML report builder ├── requirements.txt # No external deps (stdlib only) ├── reports/ # Generated reports land here └── README.md ``` ## 用法 ``` # 扫描 target 上的 common ports (默认) python3 scanner.py scanme.nmap.org # 扫描特定 port 范围 python3 scanner.py 192.168.1.10 -p 1-1024 # 仅扫描特定 ports python3 scanner.py 192.168.1.10 -p 22,80,443 # 调整 per-port timeout (秒) 和输出路径 python3 scanner.py scanme.nmap.org -t 1.0 -o reports/my_scan ``` 扫描完成后,在浏览器中打开 `reports/.html` 查看 格式化后的报告,或查看 `reports/.json` 获取原始数据。 ## 示例输出 HTML 报告包含: - 开放端口、标记的发现结果以及无风险服务的摘要 - 针对每个端口的表格,包含服务猜测、原始 Banner 和风险徽章 (严重 / 高危 / 中危 / 无风险) ## 工作原理 1. `port_scanner.py` 使用 `connect_ex()` 向每个目标端口发起原始 TCP socket 连接 — 返回代码为 0 表示该端口开放。 2. `version_checker.py` 再次连接到每个开放端口,并尝试 读取服务发送的前几个字节(即其“Banner”),这通常会 透露软件名称和版本。 3. 该 Banner 会与 `KNOWN_RISKY_SIGNATURES` 进行比对,这是一个 包含具有详细记录 CVE 的软件版本的本地小型字典。 4. `report_generator.py` 将所有内容组装成 JSON 和带有样式的 HTML 报告。 ## 局限性与后续步骤 这是一个教育性质的小型项目,并非生产级扫描器。进一步扩展的思路: - 添加多线程以加快对大范围端口的扫描速度 - 从 [NVD API](https://nvd.nist.gov/developers) 获取实时 CVE 数据, 而不是使用静态本地表 - 添加 UDP 端口扫描 - 在现有模块之上添加一个简单的 Web UI(Flask/Streamlit) ## 免责声明 本工具仅供教育目的和授权的安全测试使用。对于任何滥用行为,作者概不负责。
标签:Python, 插件系统, 数据统计, 文档结构分析, 无后门, 端口扫描, 逆向工具