type
status
date
slug
summary
tags
category
icon
password
 
 

Android引入Uid1000 授权限制

checkGrantUriPermissionUnlocked 中仅允许UID=1000的系统应用授权两个provider
但是对于手机厂商而言,一般情况下会允许其他的一些provider授权
notion image
 

使用脚本检查ROM中APP是否存在可以利用的provider

先需要将全部APK拖出来,然后检查AndroidManifest.xml 中的内容,其中"android.uid.system" 是必须要检查的 实际上利用StartAnywhere利用不局限于system应用,其他用户组的App也可以进行授权 ,这意味这这个APP权限为system(UID=1000)。剩下的条件需要根据实际情况确定,比如这里使用FILE_PROVIDER_PATHS 意味着存在File Provider。对于三星和小米而言需要额外检查Authority是否包含在放行区间。

ColorOS存在root_path配置的provider

又如ColorOS中放行了com.coloros.phonemanager.files
notion image
而恰好,这个file provider 又可以授权并且有root_path配置,从而可以直接使用ParcelMismatch进行利用,读写系统system_app 可读写(SELinux限制)的文件。
 
notion image
 
notion image
 

OnePlus7Hydrogen 中如果flag最高位为1则允许授权

就可以通过StartAnyWhere漏洞拿到UID1000应用的provider授权
 

三星Galaxy A51中对部分provider进行放行

但是其中有三个File Provider中有root_pathexternal-path 等配置,从而也可以配合StartAnyWhere进行利用。

参考

  1. https://i.blackhat.com/EU-21/Wednesday/EU-21-He-Re-route-Your-Intent-for-Privilege-Escalation-A-Universal-Way-to-Exploit-Android-PendingIntents-in-High-profile-and-System-Apps.pdf
Pixel5 内核编译并嵌入rwProcMem33Android环境下Seccomp对系统调用的监控
  • Twikoo