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, 云存储安全, 加密, 安全规则引擎, 实时处理, 插件系统, 无后门, 漏洞扫描器, 网络扫描, 访问控制, 逆向工具