『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 15471|回复: 17

[技术探讨] 分析小爱系统后关于dns劫持小爱同学的想法

[复制链接]

2

主题

10

帖子

201

积分

论坛技术达人

积分
201
金钱
191
HASS币
0
发表于 2019-4-19 15:51:03 | 显示全部楼层 |阅读模式
很少发帖,排版可能很乱请见谅!

为什么会用这个标题?是因为折腾小爱时在论坛翻看资料,无意间看到一位网友发的一篇文章,不过小爱使用的是ssl与服务器进行通讯,所以当时也没有太在意。
当时的目的是将小爱接入hassio中,而我的是绿板小爱,并且随着小爱的系统更新导致原来的语音劫持脚本会有问题,于是便准备使用jq(Linux的json库)改写脚本,可是问题百出,首先是系统里没有jq,找了对应的jq放上去却始终无法执行,提示not found command。这就很郁闷了。
几经折腾后明白,自己上传的elf文件是无法执行的。就算把该目录加入PATH 也无济于事。这时候就产生了修改根目录文件的想法,可我的是绿板小爱,根目录的文件系统是 squashfs (只读文件系统,原理自行百度,这就是绿板小爱根目录无法修改的原因所在)。好奇官方是怎么处理json的,遂分析系统文件发现使用的是jshn库。于是使用jshn将脚本修改完成。
按理说至此应该是结束了,可我的想法是凭什么系统更新时就能改动根目录文件系统下的文件,于是疯狂查找资料。终于弄清楚了squashfs文件系统 以及嵌入式开发的相关工作原理。此时我的想法是刷机,继续分析小爱的系统文件,目前已经分析完成小爱的系统更新机制,以及系统文件刷入机制,也获取到了刷机包bin文件,期间有个无意间的发现  -- /etc/ssl/certs 目录,里面存放的是各个证书签发机构的根证书,那么我们就可以把自签名的签发证书放进去,这样就可以做到劫持ssl流量了。 还有/usr/share/mico/messaging  目录下也存放几个公钥文件,初步估计应该是解密bin包用的和加密mqtt通讯用的。不过要想做到以上几个操作。刷机是必须的。
目前root.squashfs (根目录的文件系统挂载的文件)也已经从bin中解包出来了,所以下一步计划是解包root.squashfs文件修改并打包后刷入系统,
虽然已经摸清楚了刷机机制,不过还是有点慌慌哒好了不多说了,偷偷拿我室友的小爱做试验去咯。总之,祝我好运吧,希望最后不会被他打死。

评分

参与人数 1金钱 +20 收起 理由
flashsoft + 20 希望明天早上看到你

查看全部评分

回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2019-4-19 16:07:49 | 显示全部楼层
支持楼主折腾~
Nero
回复

使用道具 举报

9

主题

534

帖子

4530

积分

元老级技术达人

积分
4530
金钱
3986
HASS币
60
发表于 2019-4-19 17:13:43 | 显示全部楼层
支持研究,解包然后改成可写,应该就可以了。然后刷入。跟openwrt 一样升级的。其实估计还能装luci,哈哈
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16412
金钱
11666
HASS币
45
发表于 2019-4-19 17:23:10 | 显示全部楼层
先技达走起,期待楼主爆炸性研究结果!

另外,有个小问题,比如我们能支持了SSL请求又如何?我们还是需要小爱服务器返回的语音识别数据啊,而不是自己写程序来识别这些,那样就更复杂了,还是说要劫持小爱固件升级?
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2019-4-19 17:32:19 | 显示全部楼层
本帖最后由 neroxps 于 2019-4-19 17:34 编辑
Jones 发表于 2019-4-19 17:23
先技达走起,期待楼主爆炸性研究结果!

另外,有个小问题,比如我们能支持了SSL请求又如何?我们还是需要 ...

可能楼主是想通过抓包来分析小爱的交互数据,从而解脱 log 的问题吧?
但我觉得只要依赖小爱的语音语义解析服务,就无法摆脱官方修改接口后带来的问题。
就像杀毒软件拿到病毒样本,做了特征码,然后病毒就改了被标记的特征码代码后,你又要重新捕抓样本分析后再做特征码。
Nero
回复

使用道具 举报

8

主题

870

帖子

5218

积分

论坛元老

Rank: 8Rank: 8

积分
5218
金钱
4348
HASS币
0
发表于 2019-4-19 17:38:14 | 显示全部楼层
祝楼主成功!!!!
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16412
金钱
11666
HASS币
45
发表于 2019-4-19 17:50:39 | 显示全部楼层
neroxps 发表于 2019-4-19 17:32
可能楼主是想通过抓包来分析小爱的交互数据,从而解脱 log 的问题吧?
但我觉得只要依赖小爱的语音语义解 ...

可能是劫持了请求,模拟此请求到真实地址,然后劫持返回数据,然后做爱做的事~
回复

使用道具 举报

40

主题

2176

帖子

8292

积分

元老级技术达人

积分
8292
金钱
6101
HASS币
110
发表于 2019-4-19 18:06:39 | 显示全部楼层
都能做到这种程度了 那是否有望直接自建服务向服务器发起请求呢?不过估计有和硬件绑定的验证机制
回复

使用道具 举报

10

主题

680

帖子

5654

积分

论坛元老

Rank: 8Rank: 8

积分
5654
金钱
4969
HASS币
50
发表于 2019-4-19 21:00:45 | 显示全部楼层
支持楼主折腾!
回复

使用道具 举报

4

主题

331

帖子

2472

积分

金牌会员

Rank: 6Rank: 6

积分
2472
金钱
2141
HASS币
0
发表于 2019-4-19 23:54:47 | 显示全部楼层
小爱升级挺频繁的,而且还是后台自动升级。
虽然劫持到自己服务器是个办法,但要赶在小爱的固件版本没升级前就做出来,否则一下子就把漏洞补上了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-27 18:43 , Processed in 0.247404 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表