前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何破解一台智能咖啡机

如何破解一台智能咖啡机

作者头像
FB客服
发布2018-02-09 10:58:04
8170
发布2018-02-09 10:58:04
举报
文章被收录于专栏:FreeBufFreeBuf

随着物理网的普及,其安全性尤其重要,近日有国外黑客破解一台智能咖啡机,下面就一起来看一下吧。

故事起因

最近一名意大利黑客Simone Margaritelli破解了一台智能咖啡机,Simone是一名移动安全研究员,同时从事高级汇编、C、C++语言开发软件工作,并在Zimperium公司任职,曾开发一款软件工具bettercap,利用这款工具可完成中间人攻击测试。平时Simone很喜欢喝咖啡,于是在几天前他购买了一款咖啡机,并可通过APP来控制咖啡机。于是他就尝试利用逆向工程来控制咖啡机,并达成自己的目的。这款咖啡机使用者可以利用家庭的无线网络,然后使用手机上APP,来冲调咖啡,但Simone平时的工作都是在电脑上完成的,于是他考虑是不是可以在电脑上直接利用终端输入命令,来控制这台智能咖啡机。于是他开始从Android应用程序的通讯协议入手来开始逆向之旅。

首先从网上下载APK安装包,然后打开反编译工具Jadx,然后在CTAGS(代码阅读工具)的帮助下开始对输出的源代码进行分析,当然也可以利用VIM(文本编辑器)查看源码。几个小时后,在源码里面发现了很有趣的几个部分(am.smarter.smarterandroid.models.a clas(类)),在这里面又有几个地方引起我的注意。

破解经过

这些数据包会发送到咖啡机TCP端口2081,当然通讯协议也很简单:第一个字节,命令数,第二个字节至N、可选数据,同时取决于命令代码,最后一个字节,固定为0x7e,代表最后发送的数据包。根据指令的不同回应的信息也不会相同,但对于大多数指令,响应信息如下:

第一个字节:响应信息情况 第二个字节:状态码(0-成功,其余为错误代码) 最后一个字节:如上为0x7e

这个控制命令可以让咖啡保温五分钟,如下:

指令:0x3e 0x05 0x7e 响应信息:0x03 0x00 0x7e

为了验证指令对于咖啡机工作确实有效,再此专门制作一个视频如下:

如果你感兴趣,在这里我分享了源码<点击阅读原文查看下载链接>,在第一次使用时,需要固定本机的IP地址,而你的配置信息将会保存在~/.smartercoffee目录下,当你以后再次测试时就不需要这么做了。

coffee make -A 192.168.1.50

下面就是一些简单的指令:

冲一杯咖啡

coffee make

冲两杯咖啡,并且使用内置过滤器过滤掉研磨机中的咖啡渣滓

coffee make --filter

保温十分钟

coffee warm --keep-warm=10

完整参数信息

☕ ☕ ☕ SmarterCoffee Client ☕ ☕ ☕ by Simone 'evilsocket' Margaritelli Usage: coffee [options] (make|warm) Options: -h, --help 帮助 -A ADDRESS, --address=ADDRESS -M, --make 冲调 -W, --warm 保温 -C CUPS, --cups=CUPS 设置冲调咖啡杯数 -S STRENGTH, --strength=STRENGTH 设置咖啡浓度 -G, --grind 研磨 -F, --filter 过滤 -K TIME, --keep-warm=TIME 设置咖啡保温时间

在使用中发现,需要注册一个账户,但后来发现这个仅仅被用来做数据统计,而且2081端口的访问完全没有受到任何的限制,而身在同一局域网的人都可以访问你的咖啡机,还有更新咖啡机固件信息时,也不需要身份验证。而在这背后,安全问题实际上才是重要的东西。

*参考来源:securityaffairs、evilsocket,饭团君编译,转载请注明来自FreeBuf(FreeBuf.COM)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档