SuperAPI AI 工具集

scada-hikvision-isapi

安全与审计

查看项目

更新于 10-16 03:33

技能介绍

用途

该技能面向工业控制与视频监控场景,用于在 SCADA 与物联网 Web 界面上枚举海康威视 ISAPI 端点,从而识别设备类型、固件基线、可用模块以及潜在攻击面。适用于安全评估与授权渗透测试中的资产测绘与接口梳理。

适用迹象

  • 非标准端口(443、8443、9443)上的 Web 界面加载了引用 /ISAPI/、Bumblebee 或 Streaming/channels 的大型 JavaScript 打包文件。
  • 端口扫描发现 RTSP(554)、ONVIF(8899)或海康专用端口(8000、9010)。
  • 服务器响应头或 SSL 证书指向 Hikvision、HikCentral、iVMS 或 Pyramid。
  • 目标处于工业、能源或基础设施环境,可能部署 SCADA 系统。
  • Web 客户端从相对路径加载 Common/common.js、Common/components.js 或 Common/vendorGraph.js。

前提条件

  • 具备 curl、python3 与 nmap 的终端环境。
  • 可访问目标 Web 界面(即使未认证)。
  • 目标提供 JavaScript 打包文件,可下载以提取端点。

主要能力与流程

快速指纹识别:请求目标 Web 界面,检查 server 与 x-powered 响应头;下载主页引用的 JS 文件并扫描其中的 ISAPI 路径。

阶段一 — 从 JS 打包文件提取端点:海康 Web 客户端将完整的 API 路由树嵌入 JavaScript。技能提供 python3 脚本,抓取页面中所有 JS 引用并下载,用正则从文本中提取 /ISAPI/ 开头的路径并去重输出。

阶段二 — 未认证端点探测:对提取出的 ISAPI 路径(如 Bumblebee 平台各版本接口、Streaming/channels 取图、ContentMgmt 下载与流代理等)发起未认证请求,记录 HTTP 状态码,并对返回体内的 ErrorCode 进行解码(如 216 表示需要会话、401 未授权、403 禁止、404 未找到)。

阶段三 — 认证测试:尝试 XML 格式的 CAS 会话登录、JSON 格式登录,并用常见默认口令列表对 Basic 认证进行探测。

阶段四 — 流媒体与摄像头访问:在通道可访问时尝试抓取摄像头快照、查询 RTSP 流信息,并发起 ONVIF 服务发现的 SOAP 请求。

阶段五 — 高风险端点:优先关注可能导致 SSRF、数据访问或权限提升的端点,例如 HTTP 透传(潜在 SSRF)、云存储配置、用户权限枚举、远程站点管理。

注意事项

  • ErrorCode 216 并非硬性阻断,它表示接口存在但需要认证,仍属暴露服务的发现项。
  • HikCentral Professional(Web 管理)使用 CAS/SlaveSession,独立 NVR/摄像头使用 Basic 或 Digest 认证,认证方式可指示部署类型。
  • WebSocket 端点可能隐藏,JS 中可能引用本地 ws://127.0.0.1:,外部 WebSocket 可能使用其他端口。
  • RTSP 常走 UDP,标准端口扫描会遗漏,可用 nmap -sU -p 554 检测。
  • ONVIF 可能位于 80/8080 而非 8899,应对多个端口发送 ONVIF SOAP 请求。

验证要点

  • 确认至少 5 个 ISAPI 端点有响应(即使返回 ErrorCode 216)。
  • 从 JavaScript 打包文件中提取并记录完整端点树。
  • 对每个端点分别在无认证与带 Basic 认证凭据的情况下测试。
  • 若某端点未认证即返回数据,记录所暴露的信息。
  • 梳理攻击面:摄像头、流媒体、存储、权限、远程站点。

相关技能

  • port-service-discovery:检测海康/RTSP/ONVIF 端口。
  • hunt-ssrf:利用 HTTPPassThrough 代理进行 SSRF。
  • iot-camera-recon:通用 IP 摄像头侦察模式。
  • js-secrets-extraction:从 JS 打包文件中提取可能用于认证 ISAPI 请求的 API 密钥与令牌。

限制

本资料未提供该技能的收费方式、价格、支持平台或效果保证等信息,暂未提供。实际使用须获得目标系统授权。