The Xbox 360 reset glitch hack : nouvelle faille Xbox 360


Newserator
 Share

Messages recommandés

Grande nouvelle pour tous les possesseurs de Xbox 360 non compatibles JTAG puisque GliGli a mis en ligne tout le nécessaire pour exploiter une nouvelle faille permettant de lancer du code non signé sur l'ensemble des Xbox 360 Fat/Slim (sauf les Xenons).

glitchhack.jpg

tmbinc l'a indiqué lui même, les approches logicielles pour tenter de lancer du code non signé sur Xbox 360 ne fonctionnent pas, celle-ci ayant été conçue pour être totalement sécurisée sur le plan logiciel.

Le processeur commence par lancer du code depuis la ROM (1bl), qui lance elle même une portion de code signé en RSA et crypté en RC4 depuis la NAND (CB).

CB initialise ensuite le "moteur" de sécurité du processeur dont la tâche consiste à effectuer un cryptage en temps réel et une vérification du hash de la mémoire physique DRAM. Les dernières recherches indiquent que le cryptage est de type AES128 et le hash est lui même relativement fort (Toeplitz ?). Le cryptage est différent à chaque boot car celui-ci est partagé au moins par :

- Un hash de la totalité du fuseset

- La valeur du compteur Timebase

- Une véritable valeur aléatoire provenant d'un générateur de nombre aléatoire contenu dans le processeur. Même si ce générateur (RNG) pouvait être désactivé électriquement, une autre vérification est présent dans le CB, vérification qui attend également un nombre aléatoire.

Le CB peut ensuite lancer une sorte de bytcode simple se trouvant dans le moteur logiciel dont la tâche consiste à initialiser la DRAM. Le CB peut ensuite charger le bootloader suivant (CD) depuis la NAND puis le lancer.

Basiquement, CD charge un kernel de base depuis la NAND, le patch et le lance.

Ce kernel contient un petit bout de code privilégié (hyperviseur), qui lorsque la console fonctionne et le seul code possédant assez de droits pour lancer du code non signé.

Sur les Xbox 360 actuelles le CD contient un hash de ces 2 kernels (celui de base et le patché) et stoppera le processus de boot si vous tentez de les charger. L'hyperviseur est un petit bout de code pour vérifier les éventuels défauts et apparemment aucun nouveau kernel ne contient de défaut qui permettrait de lancer du code non signé.

Voilà pour la partie sécurité logicielle. Toutefois, d'un autre côté, tmbinc a également indiqué que la Xbox 360 n'avait pas été conçue pour contrer certaines attaques matérielles telles que le timing attack et désormais la nouvelle attaque nommée "glitching".

Le "glitching" en question est, de manière simpliste, un moyen d'utiliser des bugs du processeurs via des moyens électroniques.

Le "Reset Glitch" en quelques mots :

Il a été découvert qu'en lançant de petites impulsions de reset au processeur lorsque celui-ci fonctionne à basse fréquence, celui-ci n'effectuait pas un reset mais modifiait la façon de lancer du code, qui semble suffisamment efficace pour réaliser des fonctions de type bootloader memcmp retournant toujours le message "pas de différences". Memcmp est souvent utilisé pour vérifier le hash SHA du bootloader suivant par rapport à un autre qui est stocké, permettant ensuite le lancement de celui-ci si les hash sont identiques. Il est ainsi possible d'installer un bootloader dans la NAND qui ne passerait pas la vérification du hash, effectuer un glitch sur le précédent et ce bootloader se lancerait, permettant le lancement de n'importe quel code.

Détails sur le hack pour les Xbox 360 FAT :

Sur les Fats, le bootloader utilisé pour le glitch est le CB, permettant ensuite de lancer le CD de notre choix.

Cjack a trouvé qu'en lançant le signal CPU_PLL_BYPASS, l'horloge du CPU est ralentie de manière importante. Il existe un point de test sur la carte mère de la console qui correspond à une fraction de la vitesse du CPI, celle-ci est de 200Mhz lorsque le dash est en fonction, 66.6Mhz lorsque la console boot, et 520Khz lorsque le signal est lancé.

La procédure se déroule ainsi :

- Lancement du signal CPU_PLL_BYPASS aux alentours du POST code 36 (hex).

- Attente du lancement du POST code 39 (le POST 39 est le memcmp entre le hash stocké et le hash de l'image), puis du lancement du compteur.

- Lorsque le compteur a récupéré une valeur précise (cela arrive en moyenne aux alentours de 62% de la longueur du POST 39), une impulsion de 100ns est alors envoyée sur le CPU_RESET.

- Il faut attendre ensuite un certains moment puis "retirer" le CPU_PLL_BYPASS

- La vitesse d'horloge du CPU revient à la normale, et avec un peu de chance, au lieu de provoquer une erreur POST AD, le processus de boot continue et le CB lance le CD modifié pour l'occasion.

La NAND contient un CB zero-paired, le payload dans le CD modifié, et une image SMC modifiée.

Un glitch étant peu fiable par nature, une image SMC modifiée rebootant indéfiniment est utilisée (par exemple, les images d'origine reboot 5 fois puis affiche le RROD) jusqu'à ce que la console boot correctement.

Dans la plupart des cas, les glitchs fonctionnent en moins de 30sec après la mise sous tension.

Détails sur le hack pour les Xbox 360 Slims :

Le bootloader utilisé pour le glitch est le CB_A, permettant ensuite de lancer le CB_B de notre choix.

Sur les Slims, il n'a pas été possible de trouver une voie pour le CPU_PLL_BYPASS.

La 1ére idée fût de retirer le cristal 27Mhz principal de la 360 puis de générer une horloge personnalisée à la place. Malheureusement il s'agit d'une modification relativement difficile à mettre en oeuvre pour des résultats loin d'être bons.

Les recherches se sont donc tournées vers un autre moyen de réduire la vitesse d'horloge du processeur et il a été découvert que le chip HANA possède des registres PLL configurable pour les 100Mhz s'occupant des différentes paires GPU et CPU.

Apparemment ces registres sont écrits par le SMC via un bus I2C.

Le bus I2C est facile d'accès, il est même accessible sur un header (J2C3).

Ainsi, le chip HANA va devenir l'arme de choix pour réduire la vitesse d’horloge du CPU.

La procédure se déroule ainsi :

- Une commande I2C est envoyée au HANA pour réduire la vitesse du CPU au POST code D8.

- Attendre que le POST DA commence (POST DA est le memcmp entre le hash stocké et le hash de l'image), puis du lancement du compteur.

- Lorsque le compteur a récupéré une valeur précise, une impulsion de 20ns est alors envoyée sur le CPU_RESET.

- - Il faut attendre ensuite un certains moment puis renvoyer une commande I2C au HANA pour restaurer la vitesse d'horloge.

- La vitesse d'horloge du CPU revient à la normale, et avec un peu de chance, au lieu de provoquer une erreur POST F2, le processus de boot continue et le CB_A lance le CB_B modifié pour l'occasion.

Lors du lancement du CB_B, la DRAM n'est pas initialisée, de ce fait quelques patchs ont été appliqués au CB_B afin que celui-ci puisse lancer n'importe quel CD, les patchs en question sont :

- Toujours activer le mode zero-paired, permettant ainsi d'utiliser une image SMC modifiée.

- Ne pas décrypter le CD, au lieu d'attendre un CD plaintext dans la NAND.

- Ne pas arrêter le processus de boot si le hash du CD n'est pas bon.

le CB_B utilise un cryptage RC4, les clés proviennent de la clé CPU, de ce fait comment patché le CB_B sans connaitre la clé CPU ?

le RC4 est basiquement :

crypté = plaintext xor pseudo-random-keystream

Ainsi, si vous connaissez le plaintext et le crypté, vous pouvez récupérer la keystream et il est ensuite possible de crypter votre propre code. Cela fonctionne ainsi :

guessed-pseudo-random-keystream = crypted xor plaintext

new-crypted = guessed-pseudo-random-keystream xor plaintext-patch

On peut se demander comment a été récupéré le plaintext en 1er lieu ?

Simple : en possédant le plaintext CB d'une console FAT et en imaginant que les 1ers bytes du code doivent être les même que le new CB_B, il fut ainsi possible de crypter un petit bout de code pour dumper la clé CPU et décrypter le CB_B !

La NAND contient CB_A, un CB_B patché, un payload dans un CD plaintext modifié, et une image SMC modifiée. L'image SMC modifiée pour rebooter indéfiniment est utilisée (par exemple, les images d'origine reboot 5 fois puis affiche le RROD) ainsi que pour prévenir l'envoi régulier de commandes I2C pendant l'utilisation de la commande I2C définie plus haut.

Peut-être ne l'avez vous pas compris, mais CB_A ne contient aucune vérification sur les fuses de révocation, de ce fait il est impossible de le patcher (et donc d'empêcher ce hack).

Avertissements :

Rien n'est parfait, donc voici quelques avertissements concernant ce hack.

- Même si le glitch utilisé est relativement stable (25% de succès par tentative en moyenne), cela peut prendre quelques minutes pour le boot permettant le lancement de code non signé.

- Le taux de succès semble dépendre du hash du booloader modifié que l'on souhaite lancer (CD pour les Fats et CB_B pour les slims).

- Ce hack nécessite du matériel précis et rapide pour permettre l'envoi d'une impulsion de reset.

Matériel utilisé :

Une carte Xilinx CoolRunner II CPLD (xc2c64a) a été utilisée, car celle-ci est rapide, précise, pouvant être mise à jour, peu coûteuse et pouvant fonctionner sous 2 niveaux de voltage en même temps.

L'horloge standby 48Mhz de la 360 a été utilisé pour le glitch du compteur. Pour le hack Slim, le compteur peut également fonctionner à 96Mhz.

Le code cpld est écrit en VHDL.

Cela est nécessaire pour connaitre le code POST en cours.

Conclusion :

L'ensemble des outils pour ce hack ne contiennent aucun code Microsoft. Le but de ce hack étant de lancer Xell et d'autres outils gratuits. En aucun cas, l'auteur (GliGli), cautionne le piratage ou tout autre chose liée au piratage.

L'archive ci-dessous contient les schémas de raccordement entre la carte mère Xbox 360 et la carte Xilinx CoolRunner II CPLD ainsi que tout le nécessaire pour réaliser les modifications softwares sur la NAND. Vous trouverez également un tutoriel complet (en anglais mais contenant essentiellement des images d'illustration).

download.gif The reset Glitch Hack

homesite.gif  Site officiel : https://github.com

Lien vers article original : http://x360.gx-mod.com/modules/news/article.php?storyid=3508

Lien vers le commentaire
Partager sur d'autres sites

  • Réponses 334
  • Created
  • Dernière réponse

Top Posters In This Topic

La c'est du lourd :D , enfin les portes s'ouvres hihihi , je finis dés que je reçois le tout et :oki: !!!

Merci GliGli et à tous ceux sur le coup :sorcerer: .

Hynbrid sans soudure non je pense pas ^^ . Mais aucune importance c'est tellement du lourd je trouve ça vaut réellement des soudures newlaugh !!!

Par contre il va sortir un ou des addon plus appropriés que le CPLD.

Modifié par yvan.17
Lien vers le commentaire
Partager sur d'autres sites

Il y a pas de raison que non deaphroat, même si il est dit l'inverse, FreeBoot est pas finis malgré l'arrêt de le team, là les portes son ouverte et il y aura

forcement un qui va s'engouffrer pour concrétiser ça !!! newlaugh

Là c'est la classe B) et le hack en lui même est terrible je trouve, encore merci !

Lien vers le commentaire
Partager sur d'autres sites

superbe exploit!un énorme bravo! :ok:

les avantages du jtag sur une slim le rêve!!!

par contre sur le long terme je sais pas si les consoles apprécierons le traitement .

en tout cas c est magnifique et ultra prometteur! :ok: (ça pourra ressusciter pas mal de console avec clé dvd perdu notamment)

Modifié par zinzin64
Lien vers le commentaire
Partager sur d'autres sites

La scène 360 vas bouger dans les semaines a venir .Hate de tester cela rapidement sur slim .

D ici quelques temps le jtag comme sur nos bonne vieille fat sera dipo .Mais déjà l exploit en lui même et génial de plus par un francais.

Lien vers le commentaire
Partager sur d'autres sites

oh non !!!!!!!!!

Ma Jasper Jtag vient de perdre toute sa valeur en l'espace d'une soirée !!!!!!!!!!!

Je dois être le seul gars du forum a qui ça chagrine cette histoire...aucuns mots pour décrire comment je suis dégouté...

Enfin bon, je suis quand même content pour les possesseurs de console non compatible jtag, je pense qu'à l'inverse de moi, eux doivent être au anges ! ^^

Lien vers le commentaire
Partager sur d'autres sites

oh non !!!!!!!!!

Ma Jasper Jtag vient de perdre toute sa valeur en l'espace d'une soirée !!!!!!!!!!!

Je dois être le seul gars du forum a qui ça chagrine cette histoire...aucuns mots pour décrire comment je suis dégouté...

Enfin bon, je suis quand même content pour les possesseurs de console non compatible jtag, je pense qu'à l'inverse de moi, eux doivent être au anges ! ^^

Pour quoi tu est décus de sa ?

Imagine toi ce hack évolue au point du jtag. Si la tienne vien a cramé au moin tu aura une plus grande chance de recupéré quelleque chose de similaire. Vois le plus de ce coté la.

Modifié par popiete62
Lien vers le commentaire
Partager sur d'autres sites

oh non !!!!!!!!!

Ma Jasper Jtag vient de perdre toute sa valeur en l'espace d'une soirée !!!!!!!!!!!

Je dois être le seul gars du forum a qui ça chagrine cette histoire...aucuns mots pour décrire comment je suis dégouté...

t inquiète pas plus il y aura d utilisateurs de lancement de code non signé plus il y aura de développeurs qui s y intéresserons et de superbes homebrew verrons le jour!

et puis qui sait,le jtag restera peut être plus sur et rapide que cette méthode :P

Lien vers le commentaire
Partager sur d'autres sites

Pour quoi tu est décus de sa ?

Imagine toi ce hack évolue au point du jtag. Si la tienne vien a cramé au moin tu aura une plus grande chance de recupéré quelleque chose de similaire. Vois le plus de ce coté la.

t inquiète pas plus il y aura d utilisateurs de lancement de code non signé plus il y aura de développeurs qui s y intéresserons et de superbes homebrew verrons le jour!

et puis qui sait,le jtag restera peut être plus sur et rapide que cette méthode :P

Ah ben tiens j'avais pas du tout pensé à ces 2 aspects de la chose, très pertinent !

Lien vers le commentaire
Partager sur d'autres sites

Ho putaingue, là même plus je met ma console à jour jusqu'à ce qu'une solution exploitable plus simplement ne voie le jour ! wow wow

Rhaaaa, je bave déjà d'avance... Je me plaignait de la baisse d'activité au taff, mais je sent que je vais pouvoir mettre ce temps à profit ! hihihi

Tant pis pour le live, la bidouille, ça n'a pas de prix... :)

Lien vers le commentaire
Partager sur d'autres sites

wow enfin le bout tu tunnel arrive !

j'espere seulement q'une methode sans soudure va voir le jour .

un grand merci a la team

Cela veux dire quoi au juste ? Que dans un avenir proche toute xbox 369 slim vont devenir ha**ables sans flasher quoi que se soit?

Lien vers le commentaire
Partager sur d'autres sites

Je vous arrête tout de suite, selon tmbinc (c'est au début de l'article)

tmbinc l'a indiqué lui même, les approches logicielles pour tenter de lancer du code non signé sur Xbox 360 ne fonctionnent pas, celle-ci ayant été conçue pour être totalement sécurisée sur le plan logiciel.
Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share

Annonces