用途
IoT Camera Recon 是一个针对 IP 摄像头的安全评估技能,用于在授权测试中识别和验证摄像头的暴露面。它覆盖 RTSP 暴露、厂商配置端点、ONVIF 服务枚举、认证控制以及固件识别。
何时使用
- 端口批量扫描发现 RTSP(554)或摄像头 HTTP 端口(80、8010、8011)。
- 目标属于物理安防公司、交通管理或政府监控领域。
- Shodan 搜索在目标 IP 段内发现摄像头设备。
- 端口服务发现找到 Axis/Hikvision/Dahua 的 ONVIF 服务之后。
前置条件
- 终端环境,具备 curl、python3。
- 批量扫描需要 masscan 或 RustScan(参见 port-mass-scan)。
- 流验证可选 VLC 或 ffmpeg。
主要能力
技能提供品牌速查表,列出各品牌的默认 HTTP 端口、快照 URL、配置 URL 与默认凭据:
- Axis:端口 80、8010;快照 /axis-cgi/jpg/image.cgi;配置 /axis-cgi/admin/param.cgi?action=list;默认凭据 root:pass、root:admin。
- Hikvision:端口 80、554;快照 /ISAPI/Streaming/channels/101/picture;配置 /System/configurationFile?auth=...;默认凭据 admin:12345、admin:admin。
- Dahua:端口 80、554;快照 /cgi-bin/snapshot.cgi;配置 /cgi-bin/configManager.cgi?action=getConfig;默认凭据 admin:admin、admin:password。
- Intelbras:端口 80;快照 /cgi-bin/snapshot.cgi;配置 /web/cgi-bin/hi3510/param.cgi;默认凭据 admin:admin、admin:123456。
- ONVIF:端口 80、8899;快照 N/A(SOAP);配置 /onvif/device_service;默认凭据 admin:admin。
使用方式
技能按四个阶段组织流程,并提供可直接运行的命令示例。
阶段一:批量摄像头发现
使用 masscan 扫描 RTSP 与摄像头 HTTP 端口(554、80、8010、8011、8899),从 JSON 输出中提取开放端口的 IP,再用 curl 逐个探测:Axis 快照、Axis 配置转储(提取品牌、型号、固件、序列号)、通用 RTSP 端口响应、ONVIF 设备信息服务。
阶段二:Axis 摄像头完整利用
针对单个 Axis 摄像头:保存快照、转储完整配置(示例中 Axis P1378-LE 有 988 个参数)、提取敏感参数(password、user、token、key、serial、license、cert、network.eth0.IP)、抓取 MJPG 视频流、枚举可用服务(admin、viewer、operator、ptz、applications、local)。
阶段三:默认凭据测试
按品牌选择默认凭据列表与认证 URL,用 curl 带 -u 参数测试,HTTP 200 表示默认凭据有效,401 表示认证失败。
阶段四:RTSP 流访问
枚举常见 RTSP 路径(/live、/stream、/cam/realmonitor、/h264、/h264/ch1/main/av_stream、/Streaming/Channels/101、/ISAPI/Streaming/channels/101、/axis-media/media.amp、/onvif1、/onvif2),用 ffprobe 以 TCP 传输探测,并尝试默认凭据访问。
适用场景
- 对物理安防、交通管理、政府监控目标进行授权安全评估。
- 在端口扫描发现摄像头端口后,进一步验证暴露面与认证控制。
- 识别摄像头品牌、型号、固件版本与网络配置。
限制与注意事项
- CGNAT 会阻断直接摄像头访问,许多摄像头位于运营商级 NAT 之后,无法从互联网访问。
- RTSP over UDP 不可靠,应使用 -rtsp_transport tcp 进行可靠的流测试。
- 配置转储可能很大,Axis 配置为 50-200KB,应使用 --max-time 避免慢连接挂起。
- 视频流带宽消耗大,应先测试快照,再进行短时流探测。
- 摄像头固件很少更新,2026 年扫描到 2020 年固件很常见,不要假设已打补丁。
验证标准
- 快照 URL 必须返回有效 JPEG 图像(用 file 命令检查)。
- 配置转储必须包含摄像头特定参数(品牌、型号、序列号、固件版本)。
- RTSP 流必须产生视频帧(用 ffprobe 或 VLC 验证)。
- 默认凭据必须能访问受保护端点(带认证返回 HTTP 200,不带返回 401)。
- 所有暴露参数必须记录:品牌、型号、序列号、固件版本、网络配置、发现的凭据。