网络摄像头 登录绕过 RCE漏洞 数据分析报告
目录
1. 事件概述
2. 漏洞分析
2.1 目标设备的相关信息
2.2 登录绕过漏洞
2.3 Web 服务基于缓冲区溢出的远程代码执行漏洞(无需认证)
2.4 RTSP 服务基于缓冲区溢出的远程代码执行漏洞(无需认证)
3. 漏洞影响范围
4. 漏洞修复建议
4.1 对用户的修复建议
4.2 对厂商的修复建议
5. 总结
6. 相关链接
1. 事件概述
深圳市丽欧电子有限公司(NEO Coolcam,以下简称酷视)[1],是一家集网络数码产品研发、生产、营销于一体的高新技术企业,是国内最早进入网络摄像头领域的专业厂商之一。2004年成立国内摄像头研发中心,并取得多项国家专利,产品通过了国家质量检测部门的认证和CE、FCC等国际标准认证。
早在2017年08月02日,Bitdefender公司的安全研究人员就指出酷视旗下的高清网络摄像头NIP-22和Wi-Fi门铃iDoorbell等设备存在多个缓冲区溢出漏洞,十几万暴漏在公网上的相关设备受到潜在的安全威胁,并提供了相关研究报告[2]。2017年9月左右,我们观察到酷视的英文版官网上发布了最新的固件[3],修复了溢出漏洞。
2018年07月10日,在后续的对网络空间上易受漏洞影响的物联网设备的风险评估中,我们通过ZoomEye网络空间搜索引擎对相关漏洞设备进行搜索,共发现了65万的IP历史记录,其中在中国含该漏洞的设备数量最多,约为16.7万。此外,我们还有以下发现:
从酷视官方发布更新版固件到本文发布约一年的时间里,大部分设备依然没有安装更新版固件。原因有以下几点:
1、目标设备本身不具有自动升级机制;
2、普通用户不会意识到存在漏洞并手动更新固件;
3、更新版固件只发布在英文版官网中;
4、其他OEM厂商生产的设备也存在该漏洞。
在目标设备的固件审计过程中,我们发现了登录绕过漏洞,相关细节将在下面的章节中呈现。
这意味着还有很大数量的目标设备处于风险之中。知道创宇404实验室对酷视NIP-22FX这款摄像头的系列缓冲区溢出漏洞进行了深入研究,并成功从缓冲区溢出到远程代码执行,证实了该漏洞有被黑产利用的潜在风险。同时审计过程中发现了登录绕过漏洞,对用户隐私也是个严重的威胁。
2. 漏洞分析
2.1 目标设备的相关信息
设备版本:NeoCoolcam IPCam NIP-22FX
漏洞二进制文件:MD5 (ipc_server) = 312d924344364620d85099ed279a5f03
固件版本:V7.7.4.1.1-20160701
提供Web服务和RTSP服务的主程序为 ipc_server文件,目标系统为ARM、32位小端架构。
缓冲区溢出缓解措施为全部关闭状态。
2.2 登录绕过漏洞
摄像头 Web 服务基于 HTTP 基本认证,存在三组默认凭证,三组凭证对应不同的权限等级,安装时 APP 只会提醒修改 admin 账户的默认密码。三组默认凭证及对用的操作如下:
admin:admin,
user:user;
guest:guest;
值得一提的是,user 账户和 guest 账户也可以查看视频流,大部分用户不会修改这些账户的默认密码,导致隐私泄漏。
2.3 Web 服务基于缓冲区溢出的远程代码执行漏洞(无需认证)
2.3.1 漏洞细节分析
该溢出点位于地址 0x0007DE80 附近,该函数的处理逻辑是调用libs_parsedata函数解析URL中的usr和pwd,并将其分别存储到本函数栈帧的两块缓冲区中。
libs_parsedata函数的原型为:
int libs_parsedata(int a1, int a2, char *needle, int a4, int a5, int a6){}
接受6个参数,从左往右依次为a1:原字符串,a2:原串的长度,needle:匹配待截取字符串的开头,a4:用来截取字符串的分隔符,a6:存储截取后字符串的目标缓冲区。
该函数的处理逻辑为:使用needle字符串和分隔符a4截取原字符串a1,截取后通过strncpy()函数将截取后的串写入a6所指的缓冲区中,写入的长度为截取字符串的长度,最后写入一个字节’\x00’。由于GET参数长度可控,当攻击者输入超出缓冲区长度的usr或pwd值时,会使缓冲区溢出。
2.3.2 漏洞利用分析
二进制文件ipc_server的缓冲区溢出措施皆为关闭状态,利用该缓冲区溢出漏洞的难度很低。利用过程中需要考虑到规避空白符、&、\x00等坏字符,空白符可用 ${IFS} 替代。
在ipc_server的0x0004E4D8地址处含有如下代码:
攻击者只需让返回地址指向地址0x0004E4D8,返回地址之后紧跟待执行的命令,即可成功从缓冲区溢出到远程代码执行。由于libs_parsedata函数会在字符串末尾写入一个\x00,可以同时利用两个溢出漏洞分别写入返回地址和待执行命令。
目标系统不含curl、nc、wget等命令,可将命令执行结果重定向之Web目录,之后访问HTTP接口即可获取执行结果。如果攻击者和摄像头在同一个网络环境,攻击者也可能开启目标系统的telnetd服务,实现对漏洞设备的完全控制。因为目标设备的文件系统以读写方式挂载,有被攻击者恶意篡改的风险。
在NIP-22FX上的复现结果如下:
2.3.3 补丁分析
在最新版的固件(V7.7.4.1.1-20170828)中,libs_parsedata函数加入了第七个参数,用以控制写入目标缓冲区的长度。
2.4 RTSP 服务基于缓冲区溢出的远程代码执行漏洞(无需认证)
2.4.1 漏洞细节分析
该溢出点位于地址0x006C6D4处,利用 sscanf 函数匹配 RTSP Header 中 Authorization: Digest key="value" 中的key和value两部分内容并将之存到本函数堆栈,没有检查这两部分的长度,导致堆栈溢出。
2.4.2 漏洞利用分析
该漏洞的利用和2.3.2节中Web服务的缓冲区溢出漏洞利用方法一致,攻击者可利用两个溢出漏洞分别写入待执行的命令和返回地址,很容易的从缓冲区溢出提升到远程代码执行。
在NIP-22FX的复现结果如下,成功利用RTSP服务的缓冲区溢出开启了目标系统的telnetd服务。
2.4.3 补丁分析
在最新版的固件(V7.7.4.1.1-20170828)中,sscanf 的正则匹配表达式中加入了长度限制,最长为255字节,而缓冲区距离栈底为296字节,无法覆盖返回地址。
3. 漏洞影响范围
我们通过提取酷视NIP-22高清摄像头设备相关的“关键词”,在ZoomEye网络空间搜索引擎[4]上共发现了651,780个 IP历史数据。
我们通过对 ZoomEye 网络空间搜索引擎 "Error: username or password error,please input again." 这个关键词得到的651,780条IP历史记录进行确认,发现其中58,413台设备仍然存活。
存活设备国家分布如下,可以看出这些漏洞设备主要分布在韩国、美国、中国等国家。由于中国的网络IP变化快,在中国的相关存活设备数量实际上不止5,878台。
存活设备在中国的省份分布如下,主要分布在香港,其次是台湾,ZoomEye网络空间搜索引擎上中国大陆地区的历史IP数据基本都已失效。
对以上存活的设备进行进一步统计分析,发现大部分设备均至少存在一种默认凭证。由此可见酷视高清摄像头设备普遍存在默认凭证,攻击者可使用默认凭证访问摄像头的视频流,有较大的隐私泄漏风险。值得一提的是,存活的设备中也有很多存在 admin:admin 默认凭证,攻击者可获得管理员身份,并可能通过上传精心制作的设备固件完全接管目标设备。
在对受漏洞影响的设备进行数据分析的过程中,我们发现存在大量设备是贴牌销售,设备固件存在极大的同源性,有的两个不同厂商之间的设备仅仅是换了个LOGO。
通过设备页面 ”/web/mainpage.html” 内容的md5值对不同OEM厂商进行区分,统计结果如下:
除了默认凭证问题,酷视高清摄像头NIP-22还存在无需认证的Web服务及RTSP服务缓冲区溢出漏洞,该溢出漏洞的利用难度很低,攻击者可基于此溢出漏洞远程执行任意命令。溢出发生后,watchdog进程会重启整个系统,攻击者也可利用这点使摄像头拒绝服务。由于固件的同源性,这两个溢出漏洞也有很大可能存在于其他OEM厂商生产的设备中。
4. 漏洞修复建议
4.1 对用户的修复建议
为避免隐私泄漏,建议用户尽快修复系列漏洞。
首先,用户可登录摄像头Web管理系统,在以下页面中修改三组默认凭证的用户名和密码。
其次,如果是酷视的设备,建议从酷视官网下载对应设备的最新版固件[3],并手动更新,以修复两个溢出漏洞。如果是其他OEM厂商的设备,可以尝试和厂商联系获取更新固件,并将设备同公网隔离。
4.2 对厂商的修复建议
由于这系列漏洞影响国内外几十个OEM厂商,请上表中可能存在漏洞的厂商自查,及时发布补丁固件并通知用户更新设备固件。
5. 总结
1. 存活设备中大部分以上都存在默认凭证,对于用户的隐私是个极大的威胁,用户应及时修改默认密码。
2. 这系列漏洞还可能影响国内外几十个OEM厂商。嵌入式设备固件开发过程中一般都会使用第三方的开源工具或通用软件,这些通用软件又通常由某一特定厂商研发,这就导致很多设备固件存在同源性,不同品牌的设备可能运行相同或者类似的固件以及包含相同的第三方库。漏洞曝出后,由于影响厂商众多,而并不是所有厂商都会发布漏洞补丁,这就导致网络空间上大量漏洞设备无法修复漏洞。
3. 近年来,路由器、摄像头、摄像机、NAS、智能穿戴设备等 IOT 设备的安全漏洞层出不穷,伴随着越来越多的嵌入式设备连入网络,总体安全形势日益突出,用户的个人隐私受到严重的威胁。一方面,厂商及开发者应不断提高自主研发设备的安全性。另一方面,漏洞是不可避免的。对于用户,应该努力提高自己的安全意识,尽量避免将此类设备直接暴露在网络空间上。对于各 IOT 厂商,针对目前安全漏洞曝出越来越频繁,及时修复漏洞,对产品提供自动升级机制是行之有效的方法。
6. 相关链接
[1] NEO Coolcam 官网
http://www.szneo.com/
[2] Bitdefender漏洞公告
https://www.bitdefender.com/box/blog/ip-cameras-vulnerabilities/neo-coolcams-not-cool-buffer-overflow/
[3] 官方更新固件下载地址
http://szneo.com/en/service/index.php
[4] ZoomEye网络空间探测引擎
https://www.zoomeye.org/searchResult?q=%22Error%3A%20username%20or%20password%20error%2Cplease%20input%20again.%22
网络摄像头 登录绕过 RCE漏洞 数据分析报告相关推荐
- 配置snmp_多种设备基于 SNMP 协议的敏感信息泄露漏洞数据分析报告
作者:知道创宇404实验室 1. 更新情况 2. 事件概述 SNMP协议[1],即简单网络管理协议(SNMP,Simple Network Management Protocol),默认端口为 161 ...
- 影响超过四百万网络摄像头:Zoom客户端存在0 day漏洞可能导致代码执行
CVE编号 CVE-2019-13449:Zoom客户端拒绝服务漏洞(已在4.4.2版本客户端中修复) CVE-2019-13450:网络摄像头信息泄露漏洞(目前暂未发布补丁,计划在7月10日发布) ...
- 西部数据 MyCloud 网络存储存在 RCE 漏洞
西部数据(Western Digital)的MyCloud系列近日被曝出了RCE 漏洞,由于西部数据公司在2015年停止支持的一条产品线存在漏洞,以及此前未知的零日漏洞,过去一个月里,无数客户的MyB ...
- Apereo CAS 4.1 反序列化 RCE 漏洞复现实验报告
演示视频 Apereo CAS 4.1 反序列化 RCE 漏洞_哔哩哔哩_bilibiliBGM:<芳华慢>+<霜雪千年>(by等什么君)https://www.bilibil ...
- 如何写网络舆情数据分析报告的技巧及注意事项详解
舆情分析其实就是对舆情信息搜集.整理.汇总.筛选.深层次加工分析的一个过程,而这个过程得出的最后结果往往是以舆情分析报告的形式呈现出来的.所以说,与其说舆情分析怎么写,倒不如说一份好的舆情分析报告是怎 ...
- 通达OA 11.5 以下版本 前台任意伪造用户登录登录绕过漏洞在线实验
转载自:[通达OA < 11.5 前台任意伪造用户登录登录绕过漏洞利用] - https://store.vsplate.com/cn/post/518/ 实验地址:https://www.vs ...
- 基于Qt的海康威视网络摄像头SDK的二次开发——摄像头登录和预览
海康威视网络摄像头SDK的二次开发,需要摄像头IP地址,与主机的IP地址在同一网段,能够ping通摄像头IP,才能登录成功.摄像头是有账户名和密码,这需要记住,在开发的时候需要用到. 在开发前可以先用 ...
- DVR登录绕过漏洞_CVE-2018-9995漏洞复现
DVR登录绕过漏洞_CVE-2018-9995漏洞复现 一.漏洞描述 此漏洞允许攻击者通过修改"Cookie:uid=admin"之后访问特定DVR的控制面板,返回此设备的明文管理 ...
- 山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(八)-RCE漏洞
目录 前言: 1.RCE 漏洞简介 1.1.简介 1.2.危害 1.3.利用 1.3.1.漏洞挖掘 1.3.2.windows下管道符 1.3.3.linux下管道符 1.4.防范 2.相关配置 3. ...
最新文章
- 010-012列表:一个打了激素的数组
- 指针都没搞懂,还能算得上 C++ 老司机?
- 论文简述 | 无需校正和不失真的实时变化的鱼眼双目
- jquery Syntax error, unrecognized expression:的解决方法
- 【C++】 二叉树的基本知识及其遍历
- linux_base-f10-10_7 linuxulator is not (kld)loaded
- JAVA基础_修饰符
- RTX5 | 内存池03 - 共享内存用于线程之间的通讯(轮询方式)
- php2个数字拼接,PHP合并2个数字键数组值示例详解
- android github轮播图,GitHub - ZTJzzz/Banner: Android轮播图
- ctfshow-WEB-web11( 利用session绕过登录验证)
- 第八届“图灵杯”NEUQ-ACM程序设计竞赛个人赛——L题 建立火车站
- Java类变量和类方法详解
- 从零开始学wordpress 之四
- 疑似BAT的BUG及避错办法
- 国有资产综合管理平台需求分析
- 吐血分享:QQ群霸屏技术教程(利润篇)
- win8运行matlab7.0,Win8.1系统中matlab7.0不兼容的解决方法
- win7 64位下如何安装配置mysql
- 无障碍感受 北京之美
热门文章
- 5G NR — 关键技术
- Linux 虚拟化网络技术 — KVM + Linux Bridge 的网络虚拟化解决方案
- Go 语言编程 — Context 上下文
- C 语言编程 — 结构化程序流的汇编代码与 CPU 指令集
- 用 Flask 来写个轻博客 (7) — (M)VC_models 的关系(many to many)
- J-Flash的使用
- 铁大Facebook——电梯演讲
- 关于锁机制:数据库锁
- 从技术上还原入侵雅虎服务器是怎么一回事
- 《编写高质量代码:改善c程序代码的125个建议》——建议2-6:防止无符号整数回绕...