智能家居系统代码(智能家居系统代码JAVA作业)干货满满
信息来源:互联网 发布时间:2023-12-16
eibport 智能家居设备研究。
最近,我们深入观察了一个设备,由智能家居系统供应商 BabTechnologieGmbH 开发,叫做 “eibport"该装置基于不同的技术,例如 EnOcean 或 KNX (根据装置的版本而定),可用于控制智能家居系统。
在配有 eibport 可视化的 web 服务器应用程序上运行以控制整个系统,例如,打开或关闭车窗、改变不同房间的或报警系统开启或关闭下图展示了设备的可视化界面
Source: http://dmz.bab-tec.de:8083/cubevision/CVMTablet.html
Source: http://dmz.bab-tec.de:8083/cubevision/CVMTablet.html因此,该 eibport 代表的是系统的核心部分对于所有的 eibport 软件组件而言 ,安全应发挥重要作用。
但是在本篇博客中,还将提及 eibport 的几个安全漏洞问题分析 UpdateTool不同于其它智能硬件的更新方式,智能硬件设备制造商 BabTechnologieGmbH 的更新方式仅仅是使用一个 java 编写的 JAR 文件。
常见的更新方式是官方下载提供一个单一的文件,此文件存储所有相关更新数据这样的的话,更新文件将提供给 UpdateTool ,进而更新模块将该数据传送给装置一旦该更新模块启动,它便开始搜索使用相同网络的 eibport 设备。
如果发现一个 eibport,相关设备的信息将显示例如 IP 地址、序列号、安装固件的版本以及不同的端口
Update Tool 源代码在用 java 反编译程序打开“UpdateTool-20141219.jar” 后,我们可以看到代码的框架,例如Update Tool 中包含的程序包。
有两个包,看上去挺有趣的,叫做 “babtec" 和 "eibport"。在分析源代码,和不同级别和方法之间的关系一段时间后,我们发现在“keystoragestatic"中的私钥加密 DSA 。
这个密钥用于在 “startUpdate" 以及 "getrescueversion", 用以连接 eibport 与用户 “BT1” DSA/私钥加密, 如要连接硬件设备,还必须有加密密钥来解密它或者如果想连接 eibport, 必须使用密码, 经过进一步研究,我们发现一个字符串其上下文的 DSA 私钥和看起来像一个口令。
这个字符串位于 ”updatecontroller" 如下图所示:
连接到 EibPort用收集到的信息,我们可以通过 SFTP 连接到设备。此时,我们已经有用户名, DSA 私有密钥加密以及密码来解锁的钥匙。
从上图可以看到,我们目前的权限目录是在/config/chroot/在进一步的检测中,我们检查了 Web 应用我们检测到一个 PHP 脚本正在提取数据该脚本接收由 GET 参数“Src” 和“Dst”两个值经 。
这两个参数处理如下:“exec(“unzip ../..”.$src.” -d ../..”.$dst);”两个参数都不会检查恶意输入、直排处理方法和用于/EXEC/命令这种处理非信任用户输入的方法可实现另一个远程执行代码。
结论这些设备可以很容易找到,通过谷歌搜索或写一个简短的 Python 脚本,抓取特定路径如果你知道适合 eibport 的 Web 应用框架,你可以在互联网上找到成百上千的 Web 应用程序的结构,其中一些甚至没有任何认证机制。
由 伤心蛙 编译原文链接:https://insinuator.net/2016/12/analyzing-yet-another-smart-home-device/
微博:看雪安全
看雪安全 · 看雪众测持续关注安全16年,专业为您服务!快,关注这个公众号,一起涨姿势~
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186

