kenderperez/CameraScanner

GitHub: kenderperez/CameraScanner

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

Stars: 4 | Forks: 2

![CameraScanner 预览图](https://static.pigsec.cn/wp-content/uploads/repos/cas/ee/ee08fcc69a9fad3eac602c3e36bca2274a437102a21c869261bc7a2186c44568.png) # 🛰️ 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协议, 多模态安全, 字符串匹配, 插件系统, 无后门, 物联网安全, 逆向工具, 防御绕过