掌阅ireader smart xs pro 安装第三方软件

掌阅ireader smart xs pro 安装第三方软件


背景

给媳妇买了一个掌阅ireader smart xs pro,比普通版本多花1k,就为了一个手写,这个败家娘们,不过喜欢就行,千金难买美人一笑,这就扯远了,主要是这玩意只能安装自己应用商城里面的软件,并且只有一个微信读书,这就很难受,网上查了一下,看到有人利用设备重启不断使用adb安装命令,部分设备可以安装成功,这个也是溜,不过我在smart xs上尝试了一下,有反应,但是报错了,有些玄学,这里就不折腾了,发现ireader设备就是一个安卓设备魔改的,并且可以设置代理,正好抓个包看看。本文是一篇水文,没过多的技术价值,各位看官酌情审阅。

20211109-01.jpg

注意:
1.本文描述的操作对安全测试人员来说很简单,对普通用户有一定的技术门槛,涉及burpsuite,docker,aapt等命令的使用及相关环境搭建,请注意,另外一点,如果端口无法访问或者无法抓取数据包,请检查一下防火墙对应端口是否启用。
2.本次绕过系统限制安装第三方软件仅限于ireader smart xs pro 型号为:SR801 系统版本号为:10.6.0.90 软件版本号为:6.10010.1090(109969),对于其他版本和平台并未测试,如果导致ireader出现死机或者质保失效等问题,本人会力所能及协助你处理,但是本人不背锅。
3.绕过系统限制安装第三方软件这个bug已和官方同步,但是没啥反馈,估计官方也懒得修了,正好做个技术分享造福各位网友。
4.对于burpsuite两次响应包的json数据我都在文章提供了,有需要的同学可以直接复制使用,注意根据实际情况替换部分数值。

抓包分析

抓包配置

和正常安卓测试配置代理一样,通过wifi选项配置代理,接入个人无线网络,我这里代理服务器的ip为:192.168.3.209,代理端口为:8080
20211109-02.jpg

20211109-03.jpg

burpsuite配置
在代理服务器的burpsuite配置,监听192.168.3.209,端口为8080.
20211109-04.png
点击http history,然后在ireader上点击几个需要网络同步的功能,看burpsuite上是否能截获ireader的请求包,以下截图就是获取到http相关请求包.
20211109-05.png
如果获取不到,检查是否启用防火墙,配置是否正确等等,这里不过多阐述.

通过分析,发现在安装软件过程中,通过伪造响应包,替换响应包中appName和apk下载路径,由于ireader安装程序未校验下载的apk及相关内容,因此可以通过篡改响应数据诱导ireader安装程序安装自定义url的软件包.

构造apk下载服务HTTP

我这里直接使用docker启动了一个apache的容器,搭建了一个文件下载服务器,相关命令如下:

1
docker run -dit --name apache2 -p 12345:80 -v /data/apache:/usr/local/apache2/htdocs/ httpd

这里映射宿主机的目录为:/data/apache,如果新人搭建,注意目录是否拥有权限,搭建成功的标识是你访问: http://your ip address:12345 会列举出:/data/apache目录下的所有文件
也可以搭建其他http的文件下载服务,类型不限,总之能通过url下载apk包即可,这里需要注意的是apk包需要压缩成zip格式.
20211109-12.png

安装第三方软件

点击burpsuite拦截按钮,点击ireader设置-工具,在工具界面下,点击右上方的应用市场的按钮
20211109-06.jpg

你的burpsuite代理会捕获到一个请求包,你需要在请求包的窗口上右击,依次点击Do intercept-> Reponse to this request,这是一个很典型的修改响应数据包的操作.
20211109-08.png

点击Forward,转发数据包.将响应的数据包中的appName进行替换,替换成你想安装的安卓软件包的名称,如何获取软件包的名称,请参考aapt工具的使用,我这里简洁带过.
20211109-09.png

比如我们要安装创建快捷方式这个apk,查看apk的命令是:aapt dump badging ShortcutCreator_*.apk
20211109-10.png

创建快捷方式apk的appName为:com.x7890.shortcutcreator,替换以后的响应包为:
20211109-11.png
响应包JSON数据为:

1
{"code":0,"msg":"","body":{"list":[{"id":2,"name":"\u5fae\u4fe1\u8bfb\u4e66","icon":"http:\/\/bookbk.img.ireader.com\/idc_1\/m_1,w_300,h_400\/75013979\/group61\/M00\/EE\/E0\/CmQUOGEwpDqEX51AAAAAAAeM1VA414608802.png?v=ckr1QuK3&t=CmQUOGEwpDo.","appVersion":"V1.8.1","appSize":"18.6MB","appName":"com.x7890.shortcutcreator","appDesc":""}],"page":{"currentPage":1,"pageSize":7,"totalPage":1,"totalRecord":1}}}

点击forward,我们将伪造好的数据包转发给ireader.这时候ireader存储的微信读书的appName已经被篡改了.
20211109-13.jpg

注意:这里有个小技巧,如果操作不熟练,可以将整个json数据在记事本中修改好了再复制到burpsuite中

点击下载按钮,弹出提示对话框,点击确定,这时候burpsuite会捕获到一个请求包,和上述同样的操作,需要篡改响应包
20211109-14.jgp
burpsuite请求包截图
20211109-15.png
因为篡改了appName,正常burpsuite响应包应该是空的,burpsuite截图如下:
20211109-16.png

burpsuite响应包中将appName替换成 com.x7890.shortcutcreator,appurl替换成我们实现构造好的apk url地址,我这里的地址为:http://192.168.3.209:12345/ShortcutCreator_1.17-199043-o_1d2ncpumt4f4tu0daf1qkb15i310-uid-906093.zip
20211109-17.png
构造后的响应包json数据内容如下:

1
2
{"code":0,"msg":"","body":{"id":2,"name":"\u5fae\u4fe1\u8bfb\u4e66","icon":"http:\/\/bookbk.img.ireader.com\/idc_1\/m_1,w_300,h_400\/75013979\/group61\/M00\/EE\/E0\/CmQUOGEwpDqEX51AAAAAAAeM1VA414608802.png?v=ckr1QuK3&t=CmQUOGEwpDo.","appVersion":"V1.8.1","appSize":"18.6MB","categoryId":2,"appName":"com.x7890.shortcutcreator","appUrl":"http://192.168.3.209:12345/ShortcutCreator_1.17-199043-o_1d2ncpumt4f4tu0daf1qkb15i310-uid-906093.zip","appDesc":"","explain":""}}

点击forward,转发数据包,在次期间,如果速度比较慢,可能会有多个相同的请求,需要执行以上相同的步骤来伪造响应包进行重放,响应包的内容均相同.
如果伪造成功了,你的ireader就会自动下载apk包并进行安装,如果失败,查找原因,再尝试一下以上步骤.
以下截图是伪造成功后,burpsuite截获的ireader请求下载apk的请求。
20211109-18.png

最终结果:
20211109-07.jpg

伪造请求的方式有很多,我这里只是一个引子,各位巨佬可以各显神通就行。

进阶

使用快捷方式apk配置系统参数

创建快捷方式apk,可以打开系统设置中的某些隐藏项,比如打开ireader的安卓设置界面。步骤如下:
1、打开创建快捷方式APK, 选择右上角的3个点,选择【也显示系统应用】
20211109-20.jpg
2、在应用选择里面搜索设置,点击设置的活动列表按钮
20211109-21.png
3、在活动列表界面,点击第一个设置的详情按钮
20211109-23.png
4、点击详情界面的打开按钮
20211109-22.png
5、进入熟悉的安卓设置界面
20211109-24.jpg
到这里你就可以进入到系统设置界面,然后进行愉快的设置了。部分方案里面使用创建快捷方式apk启用未知来源选项,然后调用文件管理相关软件或者应用市场来安装apk,但是在我这台ireader有些差别,因为在系统设置-安全菜单下并没有那个未知来源的相关选项。所以才有了接下来启动未知来源相关选项的操作。

启用未知来源

每次都使用burpsuite来伪造响应包进而安装软件,这种方法着实太费劲了,既然是安卓系统,下载一个应用商城来安装第三方软件岂不更香,然后我就下载了一个酷安apk来安装,主要是创建快捷方式apk就是从酷安官网下载的,这里就直接下载一个酷安来进行后续安装。
重复以上步骤,成功安装酷安,然后遇到一个新问题就是使用酷安安装其他软件会提示 禁止在平板安装未知来源的软件 通常解决方案是在系统设置下-安全-打开未知来源。但是ireader是安卓魔改以后的系统,根本没有那个选项,这就尴尬了。
20211109-19.jpg

后来在我不懈的努力下终于找到了,在系统设置-应用和通知菜单下,选择酷安,这里有个坑,不会列举出所有的应用,点击特殊应用权限下的安装未知应用,竟然没反应,要不是我设备有问题,要不就是官方做了限制.
20211109-25.jpg
最后在我不断的努力下,通过点击最近打开应用下面列举出来的应用,我这里提前运行了一下酷安apk,然后重复以上进入系统设置操作,最后在最近打开应用下点击酷安,进入酷安的权限配置界面。
20211109-26.jpg
点击高级,在高级权限配置界面上选择安装未知应用。
20211109-27.png
启用安装未知应用。
20211109-28.jpg
到这里就可以启用酷安apk安装未知应用的权限,同样的方法也可以用到启用文件管理器上,启用文件管理器的安全未知应用权限,这样就可以通过文件管理器安装第三方应用。


更新

2021年12月12日更新

系统更新到10.6.0.93以后,使用以上的教程会出现安装失败的问题,后续分析发现,新版系统安装包的构建方式不一样,旧版是直接更改apk包名后缀为zip,新版需要将apk包压缩成zip格式,与之前不一样的是,多了两个文本配置文件,进过测试,没有也可以成功安装。所以在构造apk下载服务时需要注意,将需要安装的apk包直接压缩成zip格式,其他步骤不变。
感谢网友@阿辉的反馈,进过测试,在Ireader smart2 (系统版本为:10.6.0.93)上同样可以利用以上方法成功安装第三方软件。

另外需要注意,不同设备打开安装未知应用的方式可能存在差别,请自行测试启用。

2022年01月08日更新

网友@郎咸蒙 反馈软件安装完毕后,显示效果比较差,通过修改显示模式缓解,其他小伙伴遇到了类似的情况可以自行修改一下,另外该网友自建了一个代理服务器,自动化处理安装请求,有需要的小伙伴可以参考一下:https://kikicoding.cn/ireadersmart2.html ,安全性和稳定性各位网友自行判断即可。

网友@紫荆 反馈ireader smart2 安装了部分软件,导致开机进入系统以后黑屏,个人感觉可能有两个原因,一个就是该网友自行修改了系统部分配置信息,或者修改了默认界面,软件自启动之类的,这个只是猜测,无法核实,另一种就是该网友安装了除我提及到的软件,还安装了一个via浏览器,不太清楚是否是软件冲突导致的问题。

目前鄙人提供的方法只是绕过系统限制,不会修改系统核心配置等信就可以完成安装第三方软件操作,遇到了兼容性问题,软件冲突等问题,本人也无法解决,安装第三方软件,建议三思而后行,另外如果遇到系统崩溃或者死机等无法解决的问题,直接联系售后走售后流程即可,需要注意一点儿就是不要和售后说太多无关紧要的内容,言多必失。

2022年07月21日更新

根据网友反馈和自己实际测试,发现ireader新版系统已使用https进行通信,故此方法截至今天宣布失效,当前系统版本(10.7.0.96)已失效,各位在复现本文章要注意系统版本,我有空也会再分析一下ireader,如果有新的破解方法,我会及时发出来,各位网友如果碰到好的方法也可以和我聊聊,开机重复执行adb install apk,这种方法就不用和我沟通了。

Todo

  • 安装第三方软件
  • [] 启用开发者模式(常规启动开发者模式并未成功,正在分析)
  • [] 启动adb调试

参考


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!