# 某远程代码执行漏洞影响超过70个不同的CCTV-DVR供应商的漏洞分析

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2016-03-25T02:44:00Z
Canonical: https://wepostx.com/topics/155

> 乌云历史资料归档
>
> **原始作者：** mickey
> **原始编号：** superkieran-wooyundrops:1111
> **原始发布时间：** 2016-03-25 10:44
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

# 0x00 起因

有个老外读了[POINT OF SALE MALWARE: THE FULL STORY OF THE BACKOFF TROJAN OPERATION](https://drive.google.com/file/d/0B3tdhdmrVDEwS216aDNXc0JfdTA/view)这篇paper后，对paper里面的数字窃贼先通过入侵CCTV系统识别目标所属的零售商，然后进一步入侵POS机，窃取信用卡帐号比较感兴趣，就去网上找了找了找该CCTV-DVR固件，然后通过分析发现了一个远程代码执行漏洞。然后我看他放出来POC，其实还利用了另一个该固件比较老的漏洞。下面一一说。

# 0x01 漏洞分析

通过shodan搜索“Cross Web Server"可以发现大概有18817个设备，其中美国占多数，然后是中国，泰国。这些设备监听81/82端口的居多，另外也有些监听8000端口，

![原文图片](/media/2016/06/a52710f54b9e0a59ec5a8ad9a1befa89)
 图0
打开web后的页面如下：

![原文图片](/media/2016/06/2b99e5a1eec278bcc90f6b017faf7283)
 图1
然后通过查看网页源码找到WebClient.html,在查看WebClient.html源码找到script/live.js,live.js里包含了logo/logo.png

![原文图片](/media/2016/06/cdbc5781a47b37095094582b651fb36a)
 图2
由这个logo知道这是一家销售CCTV系统的以色列公司，但是通过查看网站源码中的注释，发现是中国人写的代码，然后作者去官网下载了固件。固件下载回来是一个zip压缩包，解压后可以看到

![原文图片](/media/2016/06/d9f9590783ff0ff0b7aa240d791636f1)
 图3
首先查看boot.sh，发现其中执行了另一个bash脚本deps2.sh，这个脚本执行了2个bin文件，分别是XVDRStart.hisi和td3520a，通过他们的文件体积，原文作者首先看了td3520a，td3520a包含了符号表，使分析变得很容易，通过预览了一阵代码，原文作者发现下面有问题的汇编代码

![原文图片](/media/2016/06/69ec82e77726933174d35ed45889aa31)
 图4
通过代码可以看出如果/language/[language]/index.html中的[language]目录存在，则解压到[language]，如果不存在，则DVRSsystem最终会执行"tar -zxf /mnt/mtd/WebSites/language.tar.gz %s/* -C /nfsdir/language/",这就导致了命令执行。看到这里想到原来玩CTF遇到/etc/crontab文件中管理员用tar做定期备份的时候，语句写成了tar cfz /home/rene/backup/backup.tar.gz *，引发的问题，原理可以参考[http://www.defensecode.com/public/DefenseCode_Unix_WildCards_Gone_Wild.txt](http://www.defensecode.com/public/DefenseCode_Unix_WildCards_Gone_Wild.txt)
要想利用还需要克服几个问题

- web服务器不能处理使用空格或换行的URL编码

- 命令长度有限制
可以通过${IFS}克服空格的限制
通过请求

```text
#!bash GET /language/Swedish${IFS}&&echo${IFS}$USER>test&&tar${IFS}/string.js HTTP/1.1
```
来执行查看当前用户的命令，这个HTTP请求会返回404
要看执行结果，需要利用一个比较老的漏洞递归漏洞来查看结果

```text
#!bash GET /../../../../mnt/mtd/test
```

![原文图片](/media/2016/06/064ce58b5742a1a5318ea2c3bfb6548f)
 图5
其实如果不用命令执行漏洞来利用的话，也可以通过递归漏洞读取配置文件(/etc/passwd,/config/config.dat等)

![原文图片](/media/2016/06/2693be4d309cfad62342ce15295961a9)
 图6
POC地址如下：
[https://github.com/k1p0d/h264_dvr_rce](https://github.com/k1p0d/h264_dvr_rce)
这个产品的真正的制造商是深圳的同为数码（[http://www.tvt.net.cn/](http://www.tvt.net.cn/)），其他厂商估计是带贴标签的，也就是俗称的OEM（又叫定牌生产和贴牌生产，最早流行于欧美等发达国家，它是国际大公司寻找各自比较优势的一种游戏规则，能降低生产成本，提高品牌附加值）
受影响的厂商列表：

- Ademco

- ATS Alarmes technolgy and ststems

- Area1Protection

- Avio

- Black Hawk Security

- Capture

- China security systems

- Cocktail Service

- Cpsecured

- CP PLUS

- Digital Eye'z no website

- Diote Service & Consulting

- DVR Kapta

- ELVOX

- ET Vision

- Extra Eye 4 U

- eyemotion

- EDS

- Fujitron

- Full HD 1080p

- Gazer

- Goldeye

- Goldmaster

- Grizzly

- HD IViewer

- Hi-View

- Ipcom

- IPOX

- IR

- ISC Illinois Security Cameras, Inc.

- JFL Alarmes

- Lince

- LOT

- Lux

- Lynx Security

- Magtec

- Meriva Security

- Multistar

- Navaio

- NoVus

- Optivision

- PARA Vision

- Provision-ISR

- Q-See

- Questek

- Retail Solution Inc

- RIT Huston .com

- ROD Security cameras

- Satvision

- Sav Technology

- Skilleye

- Smarteye

- Superior Electrial Systems

- TechShell

- TechSon

- Technomate

- TecVoz

- TeleEye

- Tomura

- truVue

- TVT

- Umbrella

- United Video Security System, Inc

- Universal IT Solutions

- US IT Express

- U-Spy Store

- Ventetian

- V-Gurad Security

- Vid8

- Vtek

- Vision Line

- Visar

- Vodotech.com

- Vook

- Watchman

- Xrplus

- Yansi

- Zetec

- ZoomX

# 0x02 参考文章

- [TVT TD-2308SS-B DVR - Directory Traversal Vulnerability](https://www.exploit-db.com/exploits/29959/)

- [Remote Code Execution in CCTV-DVR affecting over 70 different vendors](http://www.kerneronsec.com/2016/02/remote-code-execution-in-cctv-dvrs-of.html)

## Replies
