极路由安全设计架构分析
0×00 前言
现代智能路由器是目前物联网发展链条上一个不可或缺的重要组成部分,搞清楚其架构设计对将来设计物联网有深远的影响,当然为更安全的设计物联网架构起到关键作用。本文将针对智能路由器的代表“极路由”的安全设计架构进行详细的分析。
现代智能路由器代表:极路由 HiWiFi OS,说它智能主要表现在可以通过手机App远程管理家中的路由器。
根据公开资料,可以大致了解HiWiFi 整个系统架构。
那么,我们需要分析目标:
由于连接公有云和手机App的都是HiWiFi路由器,所以对其固件的分析是非常有必要的。当然服务器端的OpenAPI&SDK也是研究的重点。
1. HiWiFi 路由固件ROM分析 2. HiWiFi OpenAPI &SDK服务器端分析 3. HiWiFi Android App 分析 (下期分解)
0×01 分析思路及实践
1. HiWiFi 路由固件ROM分析(Reverse Engineering ROM)
解压极路由固件
测试环境:Kali Linux binwalk、squashfs-tools
由于极路由固件是通过SSL直接推送给用户购买的路由器文件系统中,并且HiWiFi是运行在用户态的程序,SSH无法开启,所以,需要从其他渠道获得固件。
HiWiFi固件由于HiWiFi底层是开源的OpenWRT,所以到OpenWRT中文网去寻求资源,因为官方固件不开放下载。http://downloads.openwrt.org.cn/PandoraBox/HiWiFi_1S_HD/stable/
Binwalk 自动提取文件系统失败。
0x12314E Squashfs filesystem, little endian, version 4.0, compression:lzma (non-standard type definition)
无法解开squashfs文件系统,因为不是标准的lzma压缩打包算法。
使用
hexdump -C install.img >you.out
先看看文件头描述。
没什么头绪,那就要看源代码了。
在没有源代码的情况下怎么办?使用通用解包工具尝试:
(1)tar xvf install.img 最终失败 (2)看到xz 算法。那么,可以使用squashfs工具试试。用squashfs-tools 中的 unsquashfs -f install.img (先安装apt-get install squashfs-tools) 成功。
可以说这是个设计缺陷,怎么可以使用通用工具解开文件系统。(kali 2.0 要自己编译安装squashfs-tools,还要添加lzma补丁等,有点麻烦。)
安全建议:自己开发一个压缩解压包的工具,哪怕在通用工具里加点salt,然后在配合RSA非对称秘钥解密验证。
进入系统 分析系统
安全小提示:进入/etc/shadow 找到root密码(Linux中的密码用两种加密算法加密:DES和MD5,查看你的/etc/shadow文件, 密码栏以$1$开头的是用MD5算法加密的。)
root:$1$IjJSZYnP$14XuZ/eoGldE8Qz2BXkyO.:15797:0:99999:7::: daemon:*:0:0:99999:7::: ftp:*:0:0:99999:7::: network:*:0:0:99999:7::: nobody:*:0:0:99999:7:::
我想骂人了,root的密码是admin
要想了解极路由是如何设计其系统的,可以查看其lua脚本,如果想更深入可使用IDA Pro反编译*.so动态链接库文件等系统文件。
为了更好的分析其系统架构,我使用virtualbox 搭建一个支持x86平台openWRT 通过文件对比,了解HiWiFi有哪些库 lua是厂商开发的,从分析Uhttpd可以看出,加入了json的解析,提高支持和云端还有手机App通讯的便捷性。
由于时间的关系,没做太多分析,大家可以尽情发挥。
但是又碰到了一个很难破解的问题,极路由厂商开发的lua文件被加密了。
我想到的方法就是动态调试HiWiFi OS,那么需要搭建可MIPS的虚拟环境(QEMU),然后使用IDA Pro去调试。这个下期再说。
2. HiWiFi SDK OpenAPI分析
我想从两个方向下手分析
(1)手机App和 HiWiFi Cloud 之间的通讯 (2)HiWiFi 路由器和HiWiFi Cloud之间的通讯
(1)手机App和 HiWiFi Cloud 之间的通讯
测试环境:win7、Fiddler
通过Fiddler代理 抓手机App的包
发现手机App和HiWiFi cloud 通讯涉及到4个域名
https://app.hiwifi.com https://m.hiwifi.com https://openapi.hiwifi.com https://client.openapi.hiwifi.com
前端使用nigix架构web服务器,后台使用php开发语言。数据库估计是NoSQL,前期为mysql。
百万用户使用SSL连接,还是能承受的起的(另外提醒一下:WVS扫描后发现SSL2.0版本太低,要换成 SSL3.0)。
我们就分析一个API。
POST https://app.hiwifi.com/mobile.php?m=yun&a=ExchangeDeviceInfo&ios_client_ver=504000602 HTTP/1.1 Host: app.hiwifi.com Accept: */* Client-type: ios Proxy-Connection: keep-alive App-src: hiwifi Accept-Language: zh-Hans;q=1, en;q=0.9 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Client-ver: 504000602 User-Agent: HiWiFiKoala-REL/504000602 (iPhone; iOS 8.4.1; Scale/2.00) Connection: keep-alive Content-Length: 857 Cookie: __uuid=tjBy+FV/UaGolDRJHKvIAg==; TK=l6DSEEDWm4S17V-xgSv_qpIPxLInuE3AtW6FHPAJ3Q rid=98150&source=%5B%0A%20%20%7B%0A%20%20%20%20%22device_name%22%20%3A%20%22L-106989-A%22%2C%0A%20%20%20%20%22device_mac%22%20%3A%20%228C705AC50CF4%22%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20%22device_name%22%20%3A%20%22MiBOX1S-3196dc7cb902ca41%22%2C%0A%20%20%20%20%22device_mac%22%20%3A%20%22983B16E2E252%22%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20%22device_name%22%20%3A%20%22lyyer-iPhone%22%2C%0A%20%20%20%20%22device_mac%22%20%3A%20%22A85B786254C0%22%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20%22device_name%22%20%3A%20%22%E5%B0%8F%E7%B1%B3%E7%9B%92%E5%AD%903-%E9%87%8C%E5%B1%8B%22%2C%0A%20%20%20%20%22device_mac%22%20%3A%20%226CFAA74B34B6%22%0A%20%20%7D%2C%0A%20%20%7B%0A%20%20%20%20%22device_name%22%20%3A%20%22Xiaomeng%22%2C%0A%20%20%20%20%22device_mac%22%20%3A%20%220C74C2837241%22%0A%20%20%7D%0A%5D&token=l6DSEEDWm4S17V-xgSv_qpIPxLInuE3AtW6FHPAJ3Q
使用fiddler 文本向导 URLDecode 可以解析数据。哥,你也别太相信HTTPS,路由器传输的数据都在裸奔。
(2)HiWiFi 路由器和HiWiFi Cloud之间的通讯
这个要考虑一下了,HiWiFi路由器和HiWiFi之间的通讯,难道要跑到公网sniffer?NO。只有分析lua或者so源码了。但是目前源码大部分加密,还没有想好思路。
0×02 总结
HiWiFi系统总体来说安全设计考虑充分,本地文件系统使用加密存储,减少了逆向的可能。手机App和HiWiFi Cloud都是SSL通讯,增加了网络层面中间人攻击难度。当然有更多的安全设计(例如:token设计等),本文由于时间关系,就先分析到这。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
(转)利用libcurl和国内著名的两个物联网云端通讯的例程, ubuntu和openwrt下调试成功(四)
1.libcurl 的参考文档如下 CURLOPT_HEADERFUNCTION Pass a pointer to a function that matches the following prototype:size_t function( void *ptr, size_t size, size_t nmemb, void *userdata);. This function gets called by libcurl as soon as it has received header data. The header callback will be called once for each header and only complete header lines are passed on to the callback. Parsing headers is very easy using this. The size of the data pointed to byptrissizemultiplied withnmemb. Do not assume that ...
- 下一篇
微信硬件平台发布八大行业解决方案 成功细分着陆传统行业
08月25日,在微信硬件创新大赛总决赛上,微信首次公布了“微信硬件八大行业解决方案”。标志着微信硬件平台成功细分着陆,为企业用户提供了直接可行的创造性智慧方案,助推八大传统行业深度互联网化升级。 微信硬件解决方案是微信推出的,连接物与人、物与物的物联网行业解决方案,深入空调、玩具、路由器、家居、电视、充值、健康、穿戴八个行业,提供切实可行的“互联网+”解决方案。 两大核心定位,助力硬件行业升级 定位1:信息枢纽 作为信息流转中心,微信在设备间实现数据分发与联动。 定位2:关系链能力释放 作为关系链能力释放者,微信突显出“硬件”与“社交”结合产生的平台价值。 八大解决方案,唤醒智慧生活 微信硬件八大行业解决方案,给智能硬件厂商提供了可复制的互联网+落地方案,同时也加速了用户便捷智能生活的到来。微信开放平台业务部高级总监王金桂在活动现场表示,以微信硬件八大行业解决方案为基础,将会根据不同行业需求提供全流程商业连接能力,进一步搭建智能硬件开放生态系统,全面驱动智慧服务不断刷新,为合作伙伴开辟更加广阔的创新空间。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度