【HackPwn2015】SmartCare破解细节分析
1、 目标介绍
SmartCare属于时下热门的互联网安防产品一类,实时监控家庭环境,推送到用户手机上。
SmartCare通信体系架构
SmartCare要实现用户手机与设备间实时的信息通信,必然要通过云端连连接两端,经过我们分析发现,SmartCare使用了如上图的通信结构,云平台使用MQTT协议分别与用户手机和设备(网关)建立连接,而在设备端网关又使用ZigBee与其他的传感器进行通信。本文将主要围绕,设备与云端来进行攻击,而不会涉及关于ZigBee与无线射频的内容。
2、分析部分细节
对于这类设备主动反连云端的通信模型,要实施较大范围的攻击的主要手段就是从云端和通信协议入手。通过对APP逆向分析,我们能确定APP使用用户名和一个token(由用户名和密码通过http获取,在此不做深入)作为登陆凭证登陆进入MQTT
分析发现,APP使用了SSL之上的MQTT,并加载了服务器证书和客户端私钥做双向认证,不过这并不能阻止攻击者的脚步,扫描服务器断开发现,服务器出了开启了APP中用到的1884端口以外,还开启了MQTT的默认端口1883,一阵小喜悦涌上心头,一试之下果然不出所料,1883端口是没有SSL的,连证书转换的步凑都省了!!!
先写个程序连接上去,订阅所有频道,
服务端登陆下发app和固件更新信息,如此便得到了设备固件的关键程序。
简单分析了下固件的登陆流程,基本跟APP差不多,也是MQTT,有SSL,不同之处在于设备使用MAC地址作为MQTT用户名,用配置时APP发送给设备的密钥(由APP向云端请求生成)作为密码进行登陆,同时使用gateway/[mac]/commands等作为topic
进一步测试之下发现,在登陆上MQTT之后,即使手机APP再次登陆,已经连接的会话也不会被强制下线,也就是说同一时间可能存在多个相同用户名的用户注册在MQTT服务器上,此处云端的消息派发便会面临挑战:云端如何确定消息被派发给了正确的用户呢?事实证明,此服务器并不能做到,此攻击的意义在于,我们能很方便的得到APP与设备间的MQTT消息镜像,对于进一步分析大有脾益。
设备登陆之后发出的确认包非常有趣,没发送确认包的情况下,伪造设备与真实设备完全一样,而且用户并没有感知,我们既能用来监听之间的通信状态,也能主动发出假消息,造成加告警。
而在发送了这个确认包之后,服务端会把我(攻击者)的手机号与我伪造的设备绑定,并且会让该设备与它原来绑定的设备解绑 ,用户就完全不会收到任何告警,并且除非手动重新登陆APP,用户不会知道自己的设备已经被人解绑劫持了。而攻击者实施这样的攻击只需要一个账号(免费注册)和目标设备mac地址。
3、 总结
本文围绕SmartCare与云端通信中存在的安全漏洞,对其脆弱性进行了尝试性攻击,能实现伪造任意设备告警,甚至强制解绑任意用户,达到使其安防功能完全失效的目的。
SmartCare这类设备使用单一控制节点连接互联网,本地再与其他设备建立通信(BLE,ZigBee…)也为攻击者引入了无限遐想,在这方面还有很多可以深入挖掘。
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 习近平同马克龙交流互动的经典瞬间 7904616
- 2 日本飞机多次抵近滋扰中国海军训练 7808092
- 3 荷兰大臣:没想到中方叫停芯片出口 7712946
- 4 三项世界级成就见证中国实力 7615696
- 5 苏州地铁全网寻找用围巾擦地女孩 7522678
- 6 70岁老太西安城墙上模仿士兵走位 7427160
- 7 公考枪手替考89次敛财千万 7330314
- 8 为让婚车不走回头路司机放倒三轮车 7235622
- 9 马克龙把熊猫弄到手了 7142012
- 10 今日大雪 要做这些事 7043547







HackerEye
