发布时间:2016年10月17日 16:29
物联网恶意软件Mirai牵扯了国内公司,引起了一大波黑客的关注,也引起了各安全公司的注意。今天又有一份报告涉及国内网络视频监控系统厂商海康威视。这份报告指出海康威视远程系统存在XML外部实体注入漏洞,并可以用 自动化工具 XXEinjector实现注入。广大用户要小心了。
报告原文如下:
物联网发展和安全威胁总是如影随形。两个月前,我想研究一下网络摄像机,然后就在亚马逊上购买了一个比较便宜的,由海康威视代工生产的Elisa Live 720p HD IP Camera。当我在破解Elisa摄像机尝试获取密码信息的过程中,却偶然发现了海康威视远程系统的一个XML外部实体注入漏洞(XXE)。
XXE Injection 即 XMLExternal Entity Injection, 也就是 XML 外部实体注入攻击,漏洞是在对非安全的外部实体数据进 ⾏ 行处理时引发的安全问题。在 XML1.0标准里 ,XML 文档结构 ⾥ 定义了实体 (entity) 这个概念。实体可以通过预定义在文档中调用 , 实体的标识符可访问本地或远程内容。如果在这个过程中引入了 ” 恶意 ” 源 , 在对 XML 文档处理后则可能导致信息泄漏等安全问题。具体可参考 TSRC-XXE漏洞攻防 。
海康威视是做什么的
康威视 是中国领先的监控产品供应商,致力于不断提升视频处理技术和视频分析技术,面向全球提供领先的监控产品、技术解决方案与专业优质服务。 海康威视 的营销及服务网络覆盖全球,目前在中国大陆34个城市已设立分公司,在香港、美国洛杉矶和印度也已设立了全资和合资子公司。
海康威视无线摄像机 漏洞研究
通常来说,大多网络摄像机数据要被上传到其后台系统中,也就是说,只有利用网页或者app通过其云服务平台才能访问摄像机。 我通过摄像机以太网接口把其连接到实验室环境,进行网络流量监听。因为一些设备内置了老旧或不安全的固件, 所以 如果想做物联网设备相关的实验,强烈建议不要急于把设备接上互联网。
从 Wireshark 抓包流量中发现了几个有意思的数据包:
两个未加密的请求调用:
向网站 www.hik-online.com 发起POST请求的 base64 加密数据包(后作分析)
从 Amazon S3 存储中下载更新的 Get 请求:
尝试SSH远程连接海康威视网络摄像机 黑客没有成功
利用 Nmap 扫描摄像机,发现了一些开放端口服务,其中包括一个登录页面,经尝试,一些海康威视常用的默认用户名和密码组合无法正确登录。后来发现,密码验证的控制器受 http 摘要认证机制保护,这是该固件独有的特点。 利用 binwalk 和 hiktools 对固件进行分析后,虽然没发现任何摘要认证信息,却提取到了一些有意思的东西,如 /etc/passwd 文件和其中的 root 密码 hiklinux:
root:ToCOv8qxP13qs:0:0:root:/root/:/bin/sh
对固件进行升级之后,摄像机的 SSH 端口就变为关闭状态了,所以我没法利用这个点,只能尝试其它途径。
发现XXE漏洞
回到向 www.hik-online.com 发起请求的数据包,它是一个Base64 编码的 POST 字符串,解码之后是一堆乱码, 当然, 摄像机用来验证服务器的密码可能就在固件中,只是需要时间去分析发现。 然而,我从 海康威视网站 上无意发现了这个:
如果发现任何漏洞,请联系HSRC@hikvision.com,请勿对外公开漏洞细节。
这是一个漏洞悬赏项目,好吧,让我们来研究研究它的 POST 请求。 由于这是一个 XML POST 请求,我首先尝试用 SYSTEM entity 方法来让远程网站引用本地实体文件,如 :
<?xml version=”1.0”?>
<!DOCTYPE netspi [ ]>
<c>&b;</c>
但该方法并不奏效,于是,我利用 VPS 远程传入引用实体,成功了!
<?xml version=”1.0”?>
<!DOCTYPE netspi [ ]>
<c>&b;</c>
图:载入外部实体成功
!这就有意思了,既然我们可以使用 SYSTEM entity 方式加载引用外部实体,就可以通过恶意 dtd 文件调用回传其它网站文件,如 /etc/hosts 文件等。所有这些过程都可以通过一个好用的自动化工具 XXEinjector 来完成:
OK, 我可以远程读取网站上的任意文件,包括 etc/shadow 文件,当然也就获取了这台服务器的 root 权限。而且, 海康威视分布在全球的其它 API 服务器同样存在该 XXE 漏洞 , 最终,如果获得了这些远程服务器权限,甚至连 shodan上可搜索的 大量网络摄像机都面临安全风险。
漏洞报告提交流程:
2016 年 8 月 6 日,发送第一封邮件到海康威视安全响应中心( HSRC )
2016 年 8 月 16 日, HSRC 无回应,之后我又发送了一封邮件
2016 年 9 月 6 日,重新给海康威视市场和公关部门发了一封邮件
2016 年 9 月 7 日, HSRC 确认接收并要求发送更多信息
2016 年 9 月 8 日,海康威视修复了漏洞并要求我重新测试
2016 年 9 月 25 日,作为奖励,收到了海康威视一个价值 69 美元的网络摄像机, (╯°□° ) ╯ ︵ ┻━┻