jessicacastillo573352-source/iot-vulnerability-scanner
GitHub: jessicacastillo573352-source/iot-vulnerability-scanner
一款模块化的物联网设备漏洞扫描器,集成网络扫描、默认凭证检测、MQTT安全测试和CVE匹配功能,支持生成包含加固建议的PDF安全报告。
Stars: 0 | Forks: 0
# 🔍 IoT 设备漏洞扫描器
一款模块化、学术级的 IoT 漏洞扫描器,配备 Flask Web 前端、PDF 报告生成功能以及多向量漏洞分析。
## 📁 项目结构
```
iot-scanner/
├── src/
│ ├── scanner.py → Nmap network scanner
│ ├── credentials.py → Default credential checker (HTTP, SSH, Telnet)
│ ├── mqtt_checker.py → MQTT vulnerability tester
│ ├── web_checker.py → Web interface detector (HTTP/HTTPS)
│ ├── analyzer.py → CVE matching system
│ ├── risk.py → Risk scoring system (0–100)
│ ├── report.py → PDF report generator (ReportLab)
│ ├── app.py → Flask app (frontend + backend integration)
│ └── main.py → CLI entry point
│
├── data/
│ ├── credentials.csv → Sample default credentials database
│ └── cve_data.json → Sample CVE vulnerability dataset
│
├── reports/ → Generated PDF reports (auto-created)
├── docs/ → Project documentation / diagrams
├── templates/
│ ├── index.html → Scan input page
│ └── results.html → Results & PDF download page
├── static/
│ └── style.css → Dark-theme professional CSS
└── requirements.txt
```
## ⚙️ 设置与安装
### 1. 安装系统级 Nmap
**Linux (Debian/Ubuntu):**
```
sudo apt-get update && sudo apt-get install -y nmap
```
**macOS:**
```
brew install nmap
```
**Windows:**
从 https://nmap.org/download.html 下载
### 2. 安装 Python 依赖
```
cd iot-scanner
pip install -r requirements.txt
```
### 3. 运行 Flask 应用
```
python src/app.py
```
### 4. 在浏览器中打开
```
http://localhost:5000
```
## 🚀 使用方法
### Web 界面
1. 输入 IP 地址(例如 `192.168.1.1`)或子网(例如 `192.168.1.0/24`)
2. 选择扫描类型:**快速** 或 **深度**
3. 点击 **开始扫描**
4. 等待结果(显示加载指示器)
5. 查看设备列表、漏洞、CVE 和风险评分
6. 点击 **下载 PDF 报告** 以保存发现结果
### 命令行使用
```
# Quick scan
python src/main.py --target 192.168.1.0/24
# Deep scan with JSON output
python src/main.py --target 192.168.1.1 --scan-type deep --output-json results.json
```
## 🔧 功能特性
| 功能 | 描述 |
|---|---|
| 网络扫描器 | 基于 Nmap 的主机发现及端口/服务枚举 |
| 凭证检查器 | 使用默认凭证测试 HTTP Basic Auth、SSH 和 Telnet |
| MQTT 测试器 | 检查匿名 MQTT 访问和未加密代理 |
| Web 检测器 | 识别登录页面、缺失 HTTPS、暴露的标头 |
| CVE 匹配 | 将设备服务与本地 CVE 数据库进行匹配 |
| 风险评分 | 0–100 综合评分(低 / 中 / 高 / 严重) |
| PDF 报告 | 通过 ReportLab 生成包含修复建议的完整设备发现报告 |
| Flask 前端 | 深色主题、响应式 Web UI,支持实时轮询 |
## ⚠️ 免责声明
本工具仅用于**授权的安全研究和学术目的**。
在未获得所有者明确书面许可的情况下,请勿扫描网络或设备。
未经授权的扫描可能违反适用法律。
## 📦 依赖项
- `Flask` — Web 框架
- `python-nmap` — Nmap Python 封装库
- `requests` — HTTP 凭证测试
- `paramiko` — SSH 凭证测试
- `paho-mqtt` — MQTT 漏洞测试
- `reportlab` — PDF 报告生成
## 🎓 学术用途
本项目演示了:
- 网络侦察技术
- IoT 特定攻击面分析
- 风险量化方法论
- 通过自动化报告进行负责任的披露
标签:CTI, CVE分析, Flask, IoT安全, MQTT安全, Nmap, PDF报告生成, Python, SSH安全, Telnet检测, Web安全, 加密, 占用监测, 开源安全工具, 插件系统, 数据统计, 无后门, 漏洞扫描器, 物联网设备, 端口扫描, 网络安全, 自动化加固, 蓝队分析, 虚拟驱动器, 资产管理, 逆向工具, 逆向工程平台, 隐私保护, 默认凭证检测