海康威视(Hikvision)安防监控录像机曝远程代码

  • A+
所属分类:业界关注

知名监控产品供应商海康威视(Hikvision)的大量数码录像机设备被曝存在远程代码执行漏洞,黑客可以由此直接获取设备最高权限。海康威视是中国领先的监控产品供应商。在今年大约3月末的时候,海康威视曾被爆出其设备因默认密码是12345,而被攻击者充当比特币挖掘器的安全事件。

漏洞初探

从知名网络安全Rapid7公司的报告来看,海康威视的数码录像机在实时数据流协议的请求处理代码中,包含三个典型的缓冲区溢出漏洞。上周,Rapid7发布了该漏洞的Metasploit测试模块,研究人员可以通过这个模块实现远程代码执行漏洞利用测试。

Hikvision的数码录像机并不是一款家用设备,它的设计初衷是用来存储监测记录和办公楼楼宇的安全监控录像的,也就是一款安防设备。Rapid7对整个网络进行了批量检测,试图获取含有该漏洞的设备数量。最后他们表示,在IPv4协议的网络里,大约有150,000台海康威视设备存在该漏洞。

Rapid7公司的安全研究员MarkSchloesser推测,这批海康威视设备的普及,可能与该公司出品的iPhoneAPP有关,该应用允许用户通过手机APP远程监控录像。

漏洞浅析

具体的漏洞编号是CVE-2014-4878、CVE-2014-4879和CVE-2014-4880。漏洞大体原理即:在RTSP(TCP/IP协议体系中的双向实时流传输协议)的请求body、请求头以及基础认证处理中,通过某种手法实现缓冲区溢出。接下来即使不经过认证,黑客也能实现远程任意代码执行

安全研究员还指出了另一个让人不禁吐槽的点,这类设备还带着弱口令:账号admin,密码12345。

第一个漏洞(CVE-2014-4878):

安全研究员解释道:RTSP请求处理机制使用了一个固定大小为2014字节的缓冲区,来填充http请求body。如果你发送一个更大的body会导致缓冲区溢出。这个漏洞可以被利用来进行代码执行。但Rapid7公司认为这个漏洞实为拒绝服务攻击。

第二个漏洞(CVE-2014-4879):

RTSP请求处理机制在解析http头的时候,也使用了固定大小的缓冲区。与前面类似,当用户发送一个过大的http头时,也会出现缓冲区溢出。在write-up里,安全研究员表示:该漏洞除了用来实现任意代码执行,也可以用于拒绝服务攻击。

第三个漏洞(CVE-2014-4880):

用户可以通过发送一个特制的RTSP请求,在RTSP事务对基础认证头进行处理的时候,引发缓冲区溢出。

Schloesser解释道:

“我们分析下这种情况:当发送的请求控制了远程指令指针,在执行一系列ROP小工具时,会把栈转移到请求包那里,然后继续执行命令。”

这个漏洞的利用不需要做认证,通过Metasploit利用测试模块(点我下载)可以看到,攻击者可以轻松拿下存在该漏洞设备的最高权限。

海康威视漏洞历史

Rapid7在一台固件为V2.2.10build131009的Hikvision-DS-7204-HVI-SV上发现并实验了这些漏洞。尽管他们并没有做全面测试来列出海康威视受漏洞影响的版本号和设备,但可以确定其他同类产品也受到了影响。安全研究人员Schloesser在发现了这些漏洞后,于9月15日将其上报给海康威视,并在11月19日公布了漏洞。

Threatpost记者试图联系海康威视,确认相关事件的细节。但直到这篇文章发表时,海康威视官方还没有给出任何回应。

海康威视也不是第一次出漏洞了。SANS研究所安全处理日记博客的JohannesUllrich发布过,Threatpost在以前的文章中也报道过相关事件:海康威视数码录像机曾受“TheMoon”蠕虫影响,成为挖比特币的免费矿工,以及被利用来扫描Synology磁盘站。而其漏洞中最大的槽点就是设备的root密码居然是12345,并且至今仍未改变。

Ullrich还写道:

“直到现在,海康威视的设备制造商还是没有警醒。像海康威视数码录像机这样设备中的漏洞,让人不禁联想到了90年代操作系统和服务器的漏洞。值得注意的是,而存在漏洞的海康威视设备可能只是同类产品中的一种,剩下的需要安全研究员们继续研究和挖掘。” 相关阅读

海康威视录像机(DVR)被用于发动网络攻击和比特币挖矿
针对Android上的ROP攻击剖析       

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: