![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Rédacteurs Messages : 4 858 Inscrit : 15 Mar 2009 Membre no 132 890 ![]() |
Maintenant que le jailbreak evasi0n est disponible, l'analyse du fonctionnement de l'outil donne de nombreux détails sur le fonctionnement de ce jailbreak, détails qui étaient jusqu'à présent jalousement gardés par les hackers, pour être certains que les failles nécessaires ne seraient pas corrigées par Apple dans iOS 6.1.
Il ressort de ces analyses que les hackers ont dû déployer des trésors d'ingéniosité pour exploiter plusieurs failles en série, jusqu'à parvenir au noyau du système. La clé de la réussite est un bug dans le système de gestion des sauvegardes/restaurations d'iOS via iTunes, qui autorise à restaurer des liens symboliques pointant quasiment n'importe où dans l'arborescence système. Ce bug est exploité une première fois pour injecter un lien symbolique de /var/mobile/Media/Recordings (dossier contenant normalement des fichiers audio) vers /var/mobile. Le processus peut ainsi profiter de ce lien symbolique pour restaurer une application dans /var/mobile, tout en faisant croire au processus de restauration qu'il s'agit d'un simple fichier média, qui subit des contrôles moins stricts. Cette application ne contient pas de binaire, mais un faux script shell, dont la ligne définissant l'interpréteur est en fait une commande demandant à launchctl de remonter la partition système en lecture et en écriture, alors qu'elle est normalement montée en lecture seule. L'application comporte également un fichier positionnant la variable d'environnement LAUNCHD_SOCKET pour la faire pointer vers la socket UNIX du processus launchd de l'utilisateur root. Après redémarrage, un nouveau backup est injecté, avec cette fois deux liens symboliques. Un premier vers /var/db, un second de /var/db/timezone (dont la création est rendue possible grâce au premier lien) vers /var/tmp/launchd. À ce stade, un second bug entre en jeu : affectant lockdownd, le service système traitant les commandes reçues par USB, ce bug provoque lors de l'envoi d'une certaine commande un changement de droits sur /var/db/timezone, le rendant exécutable par tous les utilisateurs. Vous l'aurez compris, grâce au lien symbolique précédément injecté, ce bug donne en fait le droit d'exécuter launchd. Sur le même principe, le lien /var/db/timezone est modifié pour pointer vers /var/tmp/launchd/sock, et donner ainsi à tous les utilisateurs l'accès à la socket UNIX utilisée pour communiquer avec launchd. L'utilisateur peut alors lancer l'application DemoApp. Comme elle ne contient pas de binaire, elle peut être exécutée bien qu'elle ne soit pas signée (de fait, il n'y a rien à signer...) et l'exécution de son script déclenche la commande launchtl décrite plus haut. Normalement, une application utilisateur qui appelle la commande launchtl va communiquer avec le processus launchd de l'utilisateur mobile... Mais pas avec DemoApp, qui surcharge la variable pointant vers la socket de launchd pour la faire mointer vers celle du processus launchd root. Cette opération est rendue possible grâce à la manipulation sur le fichier timezone, qui a donné à tous les utilisateurs l'accès à la socket du root. L'exécution de DemoApp va ainsi permettre de remonter la partition système en la rendant accessible en écriture : c'est cette opération qui va permettre de rendre le jailbreak untethered, en allant modifier la partition système. Il ne reste donc plus qu'à faire ces modifications, ce qui va être fait, encore une fois, via une injection de liens symboliques dans le processus de restauration. L'opération va créer un répertoire /var/evasi0n contenant une librairie amfi.dylib, un exécutable evasi0n et un nouveau fichier de configuration pour launchd (qui ira remplacer le fichier original via un lien symbolique). Ce nouveau fichier de configuration va permettre d'effectuer à chaque démarrage de l'appareil le remontage en lecture/écriture de la partition système, le chargement de la librairie amfi.dylib (qui sert à désactiver la vérification de signature du code), l'exécution du binaire evasi0n et la création d'un lien de /private/var/evasi0n/sock vers la socket root de launchd, pour la rendre accessible à toutes les applications. Curieusement, la librairie amfi.dylib fonctionne grâce à une astuce déjà documentée depuis plus de trois ans : elle ne contient aucun code exécutable, ce qui lui permet d'être chargé sans vérification de signature, mais elle redéfinit les fonctions de validation de signature en les remplaçant par d'autres fonctions de l'API iOS. Par exemple, la fonction MISValidateSignature est redirigée vers une autre fonction renvoyant toujours 0, la valeur de retour de MISValidateSignature quand une application est correctement signée. Vu la complexité de l'ensemble du processus, on ne peut que saluer le travail des hackers, qui ont dû se casser les dents sur iOS pendant un bon paquet de fois avant de parvenir à trouver cet enchaînement parfait. Et on comprend mieux pourquoi ils ont tenu à attendre la sortie d'iOS 6.1, les failles en jeu n'étant probablement pas très difficiles à corriger. Le simple fait de vérifier que le processus de restauration ne tente pas de créer des liens symboliques "suspects" permettrait par exemple de casser tout l'édifice. Par Matthieu Sarter |
|
|
![]() |
![]()
Message
#2
|
|
![]() Macbidouilleur de vermeil ! ![]() ![]() ![]() ![]() Groupe : Membres Messages : 1 487 Inscrit : 1 Sep 2005 Lieu : illkirch Membre no 44 941 ![]() |
ce que je ne comprends toujours pas, c'est qu'à coup de awesome et de amazing,
on n'a depuis le temps toujours pas d'accès officiel à la personnalisation de l'écran d'accueil, et toujours pas de système style SBsettings.... si un geek tout seul peut le développer, ça ne doit pas prendre beaucoup de temps à une bonne équipe d'ingé Apple de développer cela plutôt que de se fourvoyer dans un Map aléatoire... -------------------- de vieux mac, et une tentative de hackintosh:
ASRock m570 pro4, Amd Ryzen5 3400G Sapphire 112650520G Carte Graphique AMD Radeon RX 580 8 Go 1366 MHz PCI Express 2 de Samsung SSD Interne 970 EVO Plus NVMe M.2 (250 Go) - MZ-V7S250BW G.Skill Trident Z RGB F4-3000C16D-16GTZR Mémoire RAM DDR4 16Go (8Gox2) |
|
|
![]()
Message
#3
|
|
![]() Macbidouilleur d'Or ! ![]() ![]() ![]() ![]() ![]() Groupe : Membres Messages : 3 458 Inscrit : 23 Mar 2004 Lieu : Paris / Vancouver Membre no 16 640 ![]() |
ce que je ne comprends toujours pas, c'est qu'à coup de awesome et de amazing, on n'a depuis le temps toujours pas d'accès officiel à la personnalisation de l'écran d'accueil, et toujours pas de système style SBsettings.... si un geek tout seul peut le développer, ça ne doit pas prendre beaucoup de temps à une bonne équipe d'ingé Apple de développer cela plutôt que de se fourvoyer dans un Map aléatoire... Oui enfin les team du jailbreak et les acteurs de Cydia ne sont pas juste des geek, ce sont surtout des experts informatique chevronnés bien superieurs a beaucoup d'inge employes dans des grande entreprises... Donc ce qu'ils arrivent a faire n'est pas a la porte de tout pro, loin de la... Apres, il ne faut pas oublier que les equipes de développement d'Apple, bien qu'elles comprennent beaucoup de gens compétents, si si, sont aussi soumises a des cahiers des charges, des nomenclatures, des objectifs,... qui entre en conflits avec la foulitudes des besoins particuliers emis par les utilisateurs. Une equipe de développement produit un logiciel qui va répondre au besoin de 80% de la population cible. Il faut aussi constater que chaque version d'iOS integre des fonctions qui ont ete developpes avec succes sur Cydia. Mais il est vrai que l'absence de SBSettings ou des accuses de réceptions, depuis le temps et l'unanimité, fait poser des questions... Apres il y aussi beaucoup de fonctions de "personnalisation" qui dégradent les performances ou l'autonomie... En tous cas bravo a l'ami Matthieu pour ce descriptif fouillé, ca c'est de la news de vrai bidouilleurs ![]() -------------------- Agnostique multipratiquant: Unixs, Linux, Mac OS X, iOS et un peu de Windows. Des Macs, des iDevices, des PC et des "ordinosaures"…
Citation « Celui qui t’entretient des défauts d’autrui entretient les autres des tiens. », Diderot« Quand on suit une mauvaise route, plus on marche vite, plus on s'égare. » |
|
|
![]() ![]() |
Nous sommes le : 18th July 2025 - 05:23 |