kenderperez/CameraScanner
GitHub: kenderperez/CameraScanner
一款基于 Python 的 RTSP 监控摄像头安全审计套件,集成了并发扫描、指纹识别、凭证验证、RTP 流量嗅探与固件漏洞检测功能。
Stars: 4 | Forks: 2

# 🛰️ CameraScanner v0.1 beta
CameraScanner 是一款基于 RTSP (Real-Time Streaming Protocol) 协议的高级视频监控网络审计与边界强化(Hardening)套件。它采用 Python 开发,具备高性能并发架构,通过集成被动指纹识别(Fingerprinting)、防误报的混合验证、纯文本视频流量拦截(RTP Sniffing)以及自动化的 Web 固件漏洞(Exploit)检测,在战术表现上全面超越了 Cameradar 等传统工具。
## 🚀 主要特性 (vs Cameradar)
* **原生并发速度:** 通过 `ThreadPoolExecutor` 大规模扫描端口和 CIDR 子网(`/24`, `/16`),无需依赖 Nmap 或 Masscan 等外部二进制文件。
* **智能指纹识别 (Fingerprinting):** 被动检查 RTSP 标头(`Server:` / `WWW-Authenticate:`),在发起攻击前对摄像头制造商(Hikvision、Dahua、Axis、Bosch、Tapo)进行分类。
* **0% 误报率:** 两步混合验证。通过 TCP Socket 进行超快速检查,并使用 OpenCV 解码视频帧以确认实际访问权限。
* **视觉证据模块:** 自动从确认为漏洞的视频流中捕获图像(`.jpg`)。
* **集成 RTP Sniffer:** 如果未加密的本地网络传输,可在无需凭证的情况下被动拦截并在磁盘上重建 H.264 视频流。
* **固件漏洞检测器:** 对 Web 服务器的严重漏洞进行被动的非破坏性验证(例如 Hikvision 著名的未经身份验证的 RCE `CVE-2021-36260`)。
* **执行报告:** 自动生成基于 Bootstrap 的交互式 HTML 仪表盘,包含严重程度图表和证据查看器。
## 🛠️ 软件架构
```
camerascanner/
│
├── main.py # Orquestador principal y punto de entrada CLI
├── config.py # Manejador de argumentos de línea de comandos y ayuda
├── scanner.py # Descubrimiento masivo de puertos TCP (RTSP)
├── prober.py # Identificación de rutas válidas y fingerprinting de marcas
├── bruteforcer.py # Ataque de diccionario (Socket TCP + Validación OpenCV)
├── screenshot.py # Captura y guardado de fotogramas de evidencia
├── sniffer.py # Interceptación de paquetes UDP y reconstrucción RTP (.h264)
├── vuln_checker.py # Escáner de vulnerabilidades de código de firmware (RCE)
└── reporter.py # Generador del Dashboard HTML interactivo
```
## 📦 前置条件与安装说明
### 1. 克隆仓库并进入目录
```
git clone https://github.com
cd camerascanner
```
### 2. 安装 Python 依赖
```
pip install opencv-python scapy requests
```
## 📖 控制台参数与标志 (CLI)
运行 `python main.py --help` 以显示完整的可用选项菜单:
* `-t`, `--target` : **(必填)** 目标 IP、CIDR 子网(例如 `192.168.1.0/24`)或包含 IP 列表的 `.txt` 文件。
* `-p`, `--ports` : 要扫描的 RTSP 端口,以逗号分隔(默认:`554`)。例如:`554,8554,7554`。
* `-r`, `--routes` : 包含自定义 RTSP 路径字典的 `.txt` 文件路径。
* `-c`, `--creds` : 包含 `user:password` 格式凭证的 `.txt` 文件路径。
* `-w`, `--workers` : 并发线程数(默认:`20`)。
* `-timeout` : 网络连接超时时间,以秒为单位(默认:`3.0`)。
* `-o`, `--output` : 用于导出 JSON 格式结构化报告的文件名。
* `--sniff` : 如果发现易受攻击的目标,则自动激活被动 RTP 数据包嗅探器。
* `--iface` : 指定用于监听的物理网络接口的名称(例如:`"Wi-Fi"`, `"Ethernet"`)。
* `--duration` : 嗅探持续时间,以秒为单位(默认:`15`)。
## 🚀 实际使用示例
### 基础的完整子网审计
扫描本地网段并尝试猜测凭证,最后生成 JSON 报告:
```
python main.py -t 192.168.1.0/24 -p 554 --output resultados.json
```
### 使用字典并捕获流量的高级审计(需要管理员权限)
使用自定义字典。如果发现存在漏洞的 Hikvision 或 Tapo 摄像头,则通过 Wi-Fi 网卡拦截网络流量 30 秒以在磁盘上重建视频,并截取屏幕作为证据:
```
python main.py -t 192.168.1.100 --routes mis_rutas.txt --creds mis_claves.txt --sniff --iface "Wi-Fi" --duration 30
```
## 📊 输出格式
任何扫描结束后,该套件都会在根目录下强制生成两个文件:
1. **`reporte_auditoria.html`:** 一个现代的交互式仪表盘,可在任何浏览器中打开,用于查看设备的边界状态、制造商、风险级别以及作为证据捕获的帧。
2. **`stream_interceptado.h264`:** (仅在启用 `--sniff` 时生成)从网络流量中提取的原始视频片段,可在标准多媒体软件(如 VLC Media Player)中播放。
## 🛡️ 免责声明
本软件纯粹出于教育、安全审计及合法边界强化目的而开发。未经所有者事先书面同意,将 **CameraScanner** 用于目标或基础设施是非法的,并受到国际计算机犯罪法的惩罚。开发者不对本工具的不当使用或造成的损害承担任何责任。
标签:Python, RTSP协议, 多模态安全, 字符串匹配, 插件系统, 无后门, 物联网安全, 逆向工具, 防御绕过