罗技Harmony Hub爆漏洞 可被用于攻击本地网络的其他设备

x
用微信扫描二维码
分享至好友和朋友圈

  

  
简介

  FireEye 红队(Red Team)的研究人员组件发现了Logitech Harmony Hub物联网设备的漏洞。利用这些漏洞可以通过SSH来获取设备root权限。Harmony Hub是用来连接和控制家中不同种类设备的家庭控制系统。攻击者从本地网络中利用这些漏洞可以控制与Hub相连的设备,还可以以Hub为执行空间(execution space)去攻击本地网络上的其他设备。因为Harmony Hub设备列表包括支持智能门锁,智能温度计和其他智能家居设备,所以Hub中的漏洞会将用户置于巨大的风险之中。

  2018年1月,FireEye向Logitech通报了漏洞。Logitech更新了固件(4.15.96)来解决FireEye发现的这些漏洞。

  Red Team发现的漏洞有:

  · 不适当的证书验证;

  · 不安全的更新过程;

  · 开发者在生产固件镜像中留下的调试标志;

  · 空root密码

  Red Team将发现的这些漏洞组合在一起来获取Harmony Hub的管理访问权限。本文描述发现和分析的过程,并描述对设备严格安全测试的必要性。

  
设备分析

  设备准备

  公开资料显示Harmony Hub的测试点上存在通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)接口。研究人将通过跳线连接到测试的平板,就可以用插入USB串线的逻辑门电路(TTL)来连接Harmony Hub。通过boot日志可以发现Harmony Hub是以U-Boot 1.1.4启动的,允许的是Linux内核。

  

  图1 从UART接口导出的boot日志

  启动后,因为内核没有配置任何的console接口,所以console就不再返回输出数据了。研究人员在U-boot中重新配置了内核boot参数来监视整个boot过程,但是没有发现什么有用的信息。而且因为UART接口被配置为transmit,所以在该接口不会有其他的交互。因此,研究人员将关注的方向转移到理解Linux操作系统和允许在Harmony Hub上的相关软件。

  固件恢复和提取

  Harmony Hub的设计师用Android或iOS应用通过蓝牙进行初始化配置的。研究人员用hostapd创建了一个无线网络,并在测试的安卓设备上安装了Burp Suite Pro CA证书来拦截Harmony手机应用程序发送的流量和Harmony Hub接收的流量。一旦初始化配对完成,Harmony应用就会在本地网络搜索Harmony Hub,然后通过基于HTTP的API与Harmony Hub通信。

  一旦连接成功,Harmony应用会发送两个不同的请求到Harmony Hub的API,这两个请求会让Harmony Hub去检查更新。

  

  图2 迫使Harmony Hub检查更新的请求

  

  图3 Harmony Hub检查固件更新

  如果有更新,Logitech服务器就会发送含有新固件版本URL的响应。通过使用自签名的证书来拦截Harmony Hub发送的HTTPS流量可以证明Harmony Hub忽视了无效的SSL证书。

  

  图4 服务器发送含有更新固件URL的响应

  如果有更新,Logitech服务器就会发送含有新固件版本URL的响应。通过使用自签名的证书来拦截Harmony Hub发送的HTTPS流量可以证明Harmony Hub忽视了无效的SSL证书。

  研究人员提取了固件并对文件进行了检查。研究人员发现,文件系统镜像是用lzma压缩的SquashFS文件系统,这也是嵌入式设备常见的一种格式。研究人员用unsqashfs_all.sh脚本来自动执行发现unsquashfs正确版本的过程来提取文件系统镜像。

  

  图5 用firmware-mod-kit工具提取文件系统

  在提取了文件系统的内容后,研究人员检查了harmony Hub操作系统的配置细节。检查发现了生产镜像中的不同的调试细节,比如没有删除kernel模块。

  

  图6 文件系统中未删除的Linux内核对象

  查看/etc/passwd发现root用户没有配置密码。因此,如果开启了dropbear SSH服务器,就可以通过SSH登录在没有root密码的情况下获取Harmony Hub的root访问权限。

  

  图7 /etc/passwd表明没有配置root用户密码

  研究人员还发现,如果文件系统中存在/etc/tdeenable文件,那么在初始化时会开启一个dropbear SSH服务器的实例。

  

  图8 如果/etc/tdeenable文件存在,/etc/init.d/rcS脚本会开启dropbear SSH服务器

  劫持更新过程

  在初始化过程中,Harmony Hub会查询Logitech API上的GetJson2Uris终端来获取一个URL列表来为不同的进程使用,比如检查固件更新的URL和获取更新软件包信息的URL。

  

  图9 获取URL终端列表的请求

  研究人员拦截并修改了服务器响应中的JSON对象来把GetUpdates成员指向研究人员所有的IP地址。

  

  图10 修改后的JSON对象成员

  与固件更新过程相似,Harmony Hub会发送一个POST请求给含有内部软件包当前版本信息的GetUpdates指定的一个终端。图11是一个对HEOS包的请求示例。

  

  图11 含有HEOS包当前版本的JSON请求对象

  如果POST请求中的sysBuild参数与服务器的当前版本信息不匹配,服务器就会响应一个含有新包版本信息的最初响应。Harmony Hub会忽略这个最初的响应并发送第二个请求。第二个响应含有指向更新包的多个URL。

  

  图12 含有软件更新URL的JSON响应

  研究人员下载并检查了响应对象的pkg文件,该文件事实上是zip,含有一些简单的文件等级。

  

  图13 .pkg文件等级

  文件manifest.json含有如何用存档的内容来构建Harmony Hub更新的信息。

  

  图14 mainfest.json文件的内容

  如果mainfest文件存在与archive中,那么Harmony Hub的更新过程执行的脚本就是由安装器的mainfest文件的参数决定的。研究人员修改了脚本来创建/etc/tdeenable文件,这会让boot过程开启SSH接口。

  

  图15 修改后的update.sh 文件

  研究人员创建了含有.pkg扩展的新的恶意archive,这是位于本地web服务器上的。当下次Harmony Hub通过修改后的GetJson2URIs响应消息中提供的URL检查更新时,研究人员就发送一个指向该更新修改后的响应消息。Harmony Hub会提取恶意的更新包,在Harmony Hub重启后,SSH接口就开启了。这允许研究人员以空密码登录root用户访问设备。

  

  图16 重启后SSH接口开启了

  
结论

  因为Harmony Hub与许多的IoT设备一样,使用通用处理器架构,攻击者可以很容易地将恶意工具添加到被入侵的Harmony Hub中,这也就增加了目标攻击的整体影响。Logitech的工程师与FireEye研究人员一起协作很快地修复了漏洞,在4.15.96版本修复了这些漏洞。

  

  

特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。

跟贴 跟贴 0 参与 0
© 1997-2019 网易公司版权所有 About NetEase | 公司简介 | 联系方法 | 招聘信息 | 客户服务 | 隐私政策 | 广告服务 | 网站地图 | 意见反馈 | 不良信息举报

嘶吼RoarTalk

不一样的互联网安全新视界

头像

嘶吼RoarTalk

不一样的互联网安全新视界

3052

篇文章

6755

人关注

列表加载中...
请登录后再关注
x

用户登录

网易通行证/邮箱用户可以直接登录:
忘记密码