hfs-ch/network-vulnerability-scanner

GitHub: hfs-ch/network-vulnerability-scanner

一款集成主机发现、端口扫描、CVE 关联查询与风险评分的自动化网络漏洞扫描器,提供 CLI 和 Streamlit Web 双界面。

Stars: 1 | Forks: 0

# 网络漏洞扫描器 自动化扫描器,用于检测网络上的活动主机和开放服务,通过 NIST 的 NVD API 搜索相关的 CVE(已知漏洞),计算每个主机的风险评分,并生成报告(Markdown + PDF + JSON)。支持命令行和 Web 界面(Streamlit)。 ## 功能 - **全面扫描**:端口、服务版本、相关 CVE、风险评分 - **快速模式** (`--fast`):仅扫描开放端口,不进行 CVE 查询 - **网络发现** (`--discover`):快速列出活动设备 (ping scan) - **设备视图** (`--devices`):每个设备的名称、制造商、MAC 和端口,并检测前所未见的新设备 - **Streamlit Web 界面**:包含表单、表格和报告下载 - 支持生成 **Markdown、PDF 和 JSON** 格式的**报告** - **10 个单元测试** (pytest) ## 安装说明 ``` pip install -r requirements.txt --break-system-packages ``` 系统必须安装 `nmap`(Kali Linux 已预装): ``` sudo apt install nmap ``` 为了在每次扫描时无需使用 `sudo`(推荐): ``` sudo setcap cap_net_raw,cap_net_admin+eip $(which nmap) ``` ## 使用说明 — 命令行 ``` # 扫描单个 IP(完整,包含 CVE) python main.py --target 192.168.1.10 # 扫描完整的网段 python main.py --target 192.168.1.0/24 # 快速模式(无 CVE 查询,仅显示开放端口) python main.py --target 192.168.1.0/24 --fast # 仅列出活跃设备(ping scan,非常快速) python main.py --target 192.168.1.0/24 --discover # 每台设备的名称 + 端口,并对新设备发出警报 python main.py --target 192.168.1.0/24 --devices # 选择报告名称 python main.py --target 192.168.1.0/24 --output audit_reseau_local ``` 报告将生成在 `reports/` 目录中(格式为 `.md`、`.pdf`、`.json`)。 ## 使用说明 — Web 界面 ``` streamlit run app.py ``` 打开 `http://localhost:8501`,包含两个标签页:漏洞扫描和已连接设备。 ## 测试 ``` python -m pytest tests/ -v ``` ## 警告 此扫描器仅可用于您已获得明确授权的网络或机器。未经授权扫描网络在某些司法管辖区可能属于违法行为。 ## 已知限制 - 未使用密钥的 NVD API 限制为每 30 秒 5 次请求——扫描大量服务可能需要较长时间。 - 产品/版本到 CVE 的匹配基于关键字搜索 (`keywordSearch`),而非精确的 CPE 标识符——可能会出现误报或漏报。 - 网络发现 (`-sn`) 以及 MAC/制造商解析需要 nmap 权限(参见上文的 `setcap`,或使用 `sudo`)。
标签:CVE查询, Facebook API, Kubernetes, Python, Streamlit, 云存储安全, 加密, 安全规则引擎, 实时处理, 插件系统, 无后门, 漏洞扫描器, 网络扫描, 访问控制, 逆向工具