小爱同学触屏音响Security Breach,成功越狱安装第三方App——11

事情似乎出现了一线转机

还记得当初封锁漏洞的时候,最开始是简单粗暴地将设置给删除掉,刚更新完的时候,其他漏洞还是有效的,Webview的构造能使爱奇艺崩溃,快应用还是能下载文件,下载好的文件也有办法执行,就是最后的未知应用授权没办法过,后面貌似偷偷通过几次热更新,webview不再崩溃,快应用也无法唤醒了,最后连搜狗输入法的隐私政策也无法点开了,自此所有的漏洞均被封堵,想通过常规方法破解,基本上是行不通了。

但是,事情似乎出现了一线转机。就在前天,网友@无名 提供了它抓到的小爱同学触屏音响Pro8的固件包,

博主,你试下这两个包,感觉是完整包,是pro8的。

https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/x08a/payload_1.20.11_dbc2f.bin(正式版)
https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/x08a/payload_1.19.60_c14d2.bin (开发版)

我赶紧下载了下来,一看这大小——800MB,感觉有戏,祭出安卓OTA解包神器https://github.com/vm03/payload_dumper 开始解包,果然跟其他增量更新包不同,成功解包,拿到原始固件,如下图:

这样看应该是完整包没错,但是目前还不敢肯定少没少东西,继续解包system.img,system.img的解包还是比较简单的,查看文件头,这个应该是Raw Disk Image格式,如果是另外一种格式 Android Sparse Images,则需要一个工具simg2img来进行转换,Raw Disk Img文件在Windows下,直接用7zip即可打开。但是如果是要修改还是需要用到Linux,因为权限问题很蛋疼。

由于手头没有Pro8这个型号,接下来只能说说的我的PJ思路,首先是最简单的,改包强刷,既然已经拿到system.img,那么解包之后将其内置启动器删除,换上自己的,重新打包,简单粗暴,但是我觉得成功率不高,一方面是bootloader锁的问题,我知道高通9008可以绕过BL强刷,但是不清楚MTK是否有这个功能。其次则是固件校验,修改过的固件没有签名,刷不进去。

其二,通过分析其文件系统,找出官方工程模式的入口,工程模式大概率有,因为开发人员也是需要进行调试的(不排除某些开发者丧心病狂,连自己都屏蔽)可能通过某些操作,例如狂点某个地方,就可以开启工程模式,另外我在这个版本中发现了/system/bin/adbd文件,意味着其并没有对ADB进行精简,可能通过某些手段就可以激活它。

其三,通过逆向apk,找到某些应用的漏洞,然后进行进行反向注入,在前面的漏洞封堵中,我猜测应该是把settings.apk给删了,这次拿到system.img,发现/system/priv-app/果然没有settings包了,取而代之的是MicoSettings,猜测应该是小爱那个被阉割的设置,顺便查了下Mico,应该是这个意思吧:

MiCO 全称:MCU based Internet Connectivity Operating System,它是一个基于微控制器的互联网接入操作系统,是一个开发物联网设备的理想软件平台。

好在还保留了MtkSettingsProvider,何谓SettingsProvider?顾名思义,即提供设置的组件,可以简单理解成一个接口,其他应用可以通过这个接口读写设置信息,设置信息存在哪里?当然是本地数据库了,在这里是一个叫Settings.db的文件,是基于Sqlite的一个数据库。com.android.settings是包通过SettingsProvider来读写系统设置,现在MicoSettings接管了原来设置的工作,然而其根本就没有我们想要的设置选项,想安装第三方应用根本绕不过这道坎——允许安装未知应用。

有什么办法能直接绕过MicoSettings,直接控制SettingsProvider设置我们想要的参数呢?答案可能不是那么的简单,由于安卓的安全政策,不是所有应用都有权限修改系统设置的,在安装一些应用的时候你就能发现,权限列表中含有修改系统设置,但是这些设置都是一些相对不敏感的设置,例如开启WIFI,显示悬浮窗,锁屏显示,等等,我们需要的允许安装未知来源的应用是不在里面的。能满足的只有root权限。

要安装第三方应用,需要先打开未知应用授权,怎么打开权限?去设置中设置,没有设置?通过SettingsProvider直接写入参数,怎么调用SettingsProvider写入?需要root授权。这就好像进入了死循环。如何破局?只能是通过某些有漏洞的系统应用,而系统应用具有root权限,这就满足了我们修改设置的条件。如果能将我们的代码注入到系统应用里面,通过JIT之类的机制代理委托运行,不但可以安装第三方应用,并且可以拿到root权限,这是最理想的一种方法,但是也是最难的。

好了,三种方法说完了,不知道你有思路了吗?欢迎来评论区交流,但是不管采取哪种方法,都需要对系统镜像进行详细的分析,这个工作量会非常的大,而一个人的力量是很渺小的,如果大家都来一起交流,抱团取暖,我相信很快就能取得很大的进展。如果你有更好的方法,请务必分享给大家。

更新:这个是我抓到的redmi8的固件链接:https://cdn.cnbj1.fds.api.mi-img.com/xiaoqiang/rom/x08c/payload_1.20.31_8990c.bin

哪位大佬如果抓到了开发版的固件,麻烦贡献一下。

另外,这个链接可能会有帮助:https://paper.seebug.org/628/

《小爱同学触屏音响Security Breach,成功越狱安装第三方App——11》有28条留言

  1. 强刷的思路是什么,解包程img文件后,要怎么变成bin文件呢?,,,如果不变回去,怎么用img强刷呢

    回复
    • 我测试过了,固件格式不知道可以下载个同型号的改,Redmi8是MT8167A的Soc,Google搜索一下很轻松就能下载到。主要不是将img转换成bin文件的问题,而是一个Download Agent文件的问题,SP_Flash_Tool自带的那个MTK_AllInOne_DA.bin不能用,一刷就提示STATUS-BROM-CMD-SEND-DA-FALL,可能是锁Bootloader,另外一个问题则是不知道各个分区的起始位置,不过如果能刷进去,这个地址应该不难找。总之还是不推荐这个方法,刷不进去还好说,就怕刷进去直接变砖了,危险性太高。

      回复
  2. 楼主可以尝试一下@1.小爱触屏音箱 2020.05.11稳定版 更新固件下载

    小爱触屏音箱的更新固件,一个尝试破解的网友分享出来的,分享一个官方的更新固件,但是据获取者介绍,更新包是加密的,有能力的可以尝试研究一下。
    相关下载链接://download.csdn.net/download/aini5354/12768526?utm_source=bbsseo 从一个尝试破解小爱触屏音箱的网友处获得的固件(官方),
    2.小爱触屏音箱 2020.05.11稳定版 更新固件,android9核心,
    据了解是加密的,有兴趣破解的可以下载折腾一下。
    若是能破解固件,音箱的可玩性就大大提升了。

    CSDN
    https://download.csdn.net/download/aini5354/12768526

    蓝奏云
    https://wwa.lanzous.com/iqINNg5bcba

    百度云
    https://pan.baidu.com/s/1LYhhbZg5BWYn-fE-hMQetQ

    提取码:a123

    城通网盘
    https://禁止使用网挣网盘/file/228829-459155167
    小爱, 智能音箱, 固件

    回复
  3. 博主你好,刚刚入手了小度X8,感觉和小爱音箱很像,想套用一下,但用手机的蓝牙键盘连接音箱以后,按快捷键没有反应,请问博主可以尝试一下吗?或者有其他方法吗?谢谢

    回复
  4. 作者你好,我刚刚入手一台Redmi触屏音箱8,好像是同款,生产日期2020年5月,系统版本1.12.14,好像也和文章中的版本号一样,在开机前就在路由器屏蔽了更新地址,现在无法检查更新。现在发现隐私政策能正常打开,上传文件无法弹出,爱奇艺不会崩溃,hap链接无法打开提示ERROR URL SCHEME,是漏洞修复了?

    回复
  5. 您好!博主。
    我在4pda的论坛找到了一个没有加密的lx04的bin。内有27个img。
    我想不要武德了;)

    回复
  6. 有没可能通过抓包获取应用更新的url,再修改路由器dns解析,引到自定义的伪造页面进行下载安装软件。

    回复
      • 我昨天刚刚到一个库存的小爱触屏,我记得刚开始是有分享功能的,但是我发现安卓版本低了,我就去升级,然后。。。

        回复
          • 你不是说通过w3school编写上传文件的代码让爱奇艺崩溃吗?我测试了爱奇艺没有崩溃,但我觉得可以用其他浏览器试试
            并且在小爱触屏上用浏览器上有一个自动填充功能,不知道有没有用,楼主可以测试一下。

          • 不用尝试了,常规方法已经无效了,必须一次到位拿到root权限才行,由于浏览器属于厂商重点防御对象,拥有沙盒机制,很难绕过其防御注入代码(之前是简单利用应用崩溃切换到系统界面,并没有实际注入任何代码),从浏览器出发必须至少有两层跳板,你也许可以通过第一层跳板,但是第二层是看不见摸不着的,除非你还有一个已经root了的小爱同学拿来对比参照调试,否则基本不可能,所以浏览器目前不是首选方案,但是浏览器的确是让小爱同学运行自定义代码的最快途径。

留下评论