安卓预装APP被曝高危漏洞,影响数百万用户
2022-5-31 11:45:0 Author: www.4hou.com(查看原文) 阅读量:17 收藏

微软发现安卓系统中预装APP中的多个安全漏洞,下载量超百万。

微软在mce系统移动框架中发现多个高危安全漏洞,漏洞CVE编号分别为CVE-2021-42598、CVE-2021-42599、CVE-2021-42600和CVE-2021-42601,CVSS评分在7到8.9分之间。该框架被多个移动服务提供商用于预装的安卓系统APP中,攻击者利用这些漏洞可以实现本地或远程攻击。

CVE-2021-42599:命令注入漏洞

研究人员在device服务中发现了一个命令注入漏洞,漏洞CVE编号为CVE-2021-42599。Device服务具有停止给定包活动的能力。客户端完全控制了value参数,简单运行一下命令:

am force-stop "value"

因为该参数没有正则化,攻击者可以添加backticks或quotation marks来运行任意代码,如:

am force-stop "a"; command-to-run; echo "a"


图1 Device服务中实现命令注入的PoC代码

Mce公司已经移除了有漏洞的代码,有漏洞的代码已经不存在于新版本的框架中。

特定APP PiTM JS注入漏洞利用

Mac框架提供的访问表明漏洞存在于APP JS客户端逻辑中,APP可配置为明文通信。但客户端的代码是混淆的动态JS代码,主要是bundle.js。由于JS客户端与JarvisJSInterface服务器的信任,可以成功注入JS内容到WebView的攻击者可以继承APP已有的权限。

注入策略:

向BROWSABLE Intent中提供指定GET参数来影响JS客户端行为;

用BROWSABLE Intent来触发APP成为中间人,查看设备的全部流量。如果客户端尝试提取外部内容来注入JS内容并翻译为脚本或HTML。

研究人员逆向客户端混淆后的代码,发现不能从GET参数注入JS。唯一可做的是影响客户端的自测试,比如电池耗尽测试或WiFi连接测试。

PoC执行步骤如下:

对目标设备执行中间人攻击,诱使用户点击“mcesystems://”中的链接;

注入JS到以下明文页面响应:

   通过callback方法调用init来劫持JS接口;

   使用JS接口请求方法来获得服务;

   使用XHR发送数据给服务器来进行信息收集。

图2 注入JS代码到WebView,允许攻击者调用任意服务和方法

CVE-2021-42601:反序列化本地权限提升

研究人员在框架中还发现了一个本地权限提升漏洞——CVE-2021-42601,允许恶意APP获得系统APP的权限。

研究人员发现在以上APP中,main Activity尝试处理一个Google Firebase的链接(点击后会启动APP而非浏览器)。该链接的处理会尝试用密钥com.google.firebase.dynamiclinks.DYNAMIC_LINK_DATA反序列化来自Intent Extra字节数组的结构PendingDynamicLinkData。之后,mce框架会使用该框架来生成不同的JSON对象,其中可能包含原始链接中categoryId查询参数的数据,最终mFlowSDKInput会以一种不安全的方式注入到JarvisWebView实例中:

图3 未处理的JS加载允许任意代码注入到WebView

因为categoryId查询参数可能包含多个符号,一个可以注入任意JS代码到webview中。研究人员决定注入代码来服务器并加载第二阶段代码。

 

图4 本地注入PoC漏洞利用

本文翻译自:https://www.microsoft.com/security/blog/2022/05/27/android-apps-with-millions-of-downloads-exposed-to-high-severity-vulnerabilities/如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/kMRr
如有侵权请联系:admin#unsafe.sh