
Guide et code théorique pour CVE-2023-35674
Guide et code théorique pour CVE-2023-35674
Parce qu'Android dépasse mes compétences, veuillez considérer ceci comme une vue d'ensemble de mon point de vue sur la façon dont j'exploiterais cette CVE. Les extraits de code ne sont que des squelettes, aidez-moi s'il vous plaît :) Donc, tout d'abord, vous ne pouvez pas exploiter uniquement la CVE-2023-35674. Pourquoi ? Parce que la CVE-2023-35674 vous permet seulement de lancer une activité en arrière-plan en raison d'une erreur de logique. Donc, en substance, vous utiliseriez cette CVE pour lancer une application en arrière-plan, puis utiliser quelque chose comme la CVE-2021-0307 pour une escalade de privilèges. Un conseil : la seule façon d'exploiter pleinement ces deux vulnérabilités (donc en substance utiliser la chaîne) est que votre Android soit Android 11.
Passons maintenant à la CVE-2023-35674. La cause profonde est essentiellement que les présentations virtuelles ont été conçues pour ne pouvoir être affichées que sur des écrans virtuels privés, et que cela ne devrait pas faire qu'une application soit considérée comme étant au premier plan. J'ai donc inclus Presentation.java, le code issu des documents Google, pour démarrer une présentation virtuelle et, à l'intérieur de celle-ci, démarrer une instance d'une classe (qui devrait être remplacée par un moyen de lancer une application). Par défaut, cela démarre l'application en arrière-plan.[1]
Passons maintenant à la partie EoP... Pour la CVE-2021-0307, j'ai utilisé ceci (https://blog.thalium.re/posts/leveraging-android-permissions/) comme référence.... Donc, plus précisément ? ceci

Naturellement, j'ai pensé à coder un squelette, car encore une fois, Android dépasse mes compétences et je suis paresseux. C'est ainsi qu'est né MainActivity.java. Maintenant, avec une compréhension un peu meilleure, je pense que le flux d'exploitation devrait être un peu différent. Comment ?
Eh bien, pour le démarrage de l'application en arrière-plan [1], cela devrait toujours être respecté. Cependant, pour l'EoP, cela devrait ressembler à quelque chose comme l'image ci-dessous.

Comme vous pouvez le voir, le flux d'exploitation est identique, sauf qu'au lieu de terminer l'exploitation comme celle de l'EoP, nous terminons avec l'application que nous avons lancée en arrière-plan.
Donc, d'une manière générale, je pense avoir décrit deux façons d'obtenir une EoP, bien que je pense que pour la CVE-2023-35674, vous ne puissiez exécuter du code qu'en arrière-plan. Mais pour digresser, je pense qu'il y a deux façons d'exploiter cette CVE-2023-35674 :
Veuillez prendre tout ce que j'écris ici avec des pincettes, jusqu'à nouvel ordre (jusqu'à ce que je trouve quelqu'un pour collaborer sur ce sujet qui connaisse l'exploitation Android....)