狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U

乌云镜像 (436) 2020-11-10 15:35:05

想要成为一个优秀的黑客?每一个白帽子都应该学习网络安全技术教程和渗透测试教程,安全师有最多的优秀安全技术文章、渗透测试培训视频,安全师将介绍防御黑客方法,以及渗透测试常用工具的用法。用户学习,并动手操作本文章提供的渗透案例之后,即可对渗透测试的工作内容有一个基本的了解。,

0x00 前言

首先要感谢冰哥的指导和鼓励才有了以下这篇小文. 当下智能物联网设备火热, 许多商家和开发人员只图功能上的快捷, 而忽略提供相应的安全方案. 同时许多传统的工控设备, 因添加了网络模块却又缺少相应的安全意识, 导致这些设备都稀里糊涂地暴露在了公网上. 这为攻击者打开了一道方便之门. 本文将于这款 KACO 新能源公司生产的电源逆变器系统为例, 跟大家分享下不安全的设计会给工控系统带来怎样的影响.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第1张

KACO 新能源公司是一家位于德国, 专注生产和设计电力相关的工控系统. 据称其客户遍布全球. 但在 2015 年的 DEFCON 23 上被爆出其在电源逆变器系统 XP100U 产品中存在后门.

而在重现的研究过程中, 我们可以发现此款产品的问题还不仅仅如此. 接下来大家就一起来场工控设备的探索之旅吧.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第2张

0x01 经典系统后门

KACO 的这款电源逆变器系统自带了一个Java 编写的小型 WEB 服务, 用于远程登陆系统监控各项数据指标.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第3张

通过阅读操作手册我们可以得知, 系统有个默认的密码 ksk12. 成功登陆后便可进行一系列的数据采集等操作.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第4张

在通过查看页面代码后, 我们可以找到一个名为wms.jar 的文件. 这里我们可以使用JAVA decompile 软件来查看其源代码.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第5张

只需简单的查找password关键字, 我们便可以轻松找到位于WMSSettings下的后门密码 “kacosolar2008” .

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第6张

有趣的是此后门密码是无法修改的. 如以下代码所示, 整个后门的认证过程只是简单跟WMSSettings 里设置好的AdminPassword 在本地进行比对.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第7张

瞧整个后门还原过程是那么的轻松愉快, 不过更为有趣的地方还在后头…

0x02 掩耳盗铃认证设计

再了解过上面这个经典的后门系统后门账号后. 通过 Wireshark 抓包分析, 还可以发现了一个此系统 ”有意思” 的认证设计. 之前我们说过系统默认密码为 ksk12. 正常情况下用户可以将其修改为自定的密码, 而整个过程都以明文的方式传送. 是的, 我们可以通过简单的sniffing 就得到密码. 但这又有啥特别呢? 别急好戏还在后头…..

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第8张

这里我们还是先来看下整个登陆的过程. 当我们按下Login键之后, 客户端发的第一个包中含有 “aci_request_code type=‘int’> 31<”的字样. 那么 31 是代表什么意思呢?

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第9张

通过查找 Java 源代码得知, 类型 31 是用来从服务器 get 当前密码的. 也就是说每次认证时, 系统都会将当前密码以明文的方式发回…

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第10张

最不可思议的地方是即使用户输入了错误密码, 表面上会弹出个报错框. 但实际上系统依旧将正确的密码明文返回. 哈哈! 换句话说我们更本就不需要通过逆向源代码这么麻烦, 系统本身就已经把密码告知天下了.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第11张

0x03 猎杀 XP100U

讲了这么多大家一定迫不及待的想找台KACO 来体验下了吧. 这里我们可以使用搜索引擎来帮助完成这个任务. 如下图所示 SHODAN 轻松帮我们找到了几台暴露在公网的KACO 逆变器.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第12张

需要注意的是系统默认的端口号是 80 . 大家在测试过程中可以多试试几个常用端口.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第13张

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第14张

有意思的是在某个KACO 电源逆变器的网址, 还存在网络监视器系统 (感谢 Z-One 友情提供线索). 感兴趣的朋友可以继续深度挖掘一下. 不过不要搞破坏哦. 😀

0x04 总结

通过这个案例, 可以发现在传统系统安全中已经很少出现的漏洞. 如 HTTP 明文传输; 默认密码; 系统后门等等在工控嵌入式系统中仍旧非常普遍. 可是由此所带来的隐患却是巨大的. 嵌入式系统往往还面临一旦投入产品线, 便难以升级的困难. 也许产品设计者在初始阶段就应该在易用 vs 安全中找到平衡点. 不过就安全爱好者本身而言, 工控嵌入式是一个非常好玩又很深的领域. 期待大家玩出更多的花样.

狗汪汪玩转嵌入式 — KACO 电源逆变器系统 XP100U (https://www.tiejiang.org/) 乌云镜像 第15张

0x05 参考文献

  • http://kaco-newenergy.com/us/
  • https://ics-cert.us-cert.gov/alerts/ICS-ALERT-15-224-01
  • https://www.defcon.org/html/defcon-23/dc-23-speakers.html#Sood
THE END

发表评论