• VIP
    Salut Visiteur, cette couleur de pseudo vous plaît ? Vous pouvez l'obtenir en devenant membre VIP en cliquant ici.
  • Ce qu'il faut savoir

    Crystal Community n'est en aucun cas responsable de vos téléchargements (jeux & DLC...) illégaux sur le forum ! De vos faits sur votre console, si vous (brickez , abîmez votre console) il faudra en assumer les conséquences.
    Vous êtes le seul responsable de vos actes.

PS4 [PS4] Specter offre ses connaissances sur le bug utilisé sur le 4.55

The Promodo CM|T

Ancien staff CC|T
Ancien staff CC|T
Bonjour à tous,

Comme il l'avait fait pour l'exploit utilisé dans le firmware 4.05, le développeur Specter nous livre ses connaissances sur celui exploité sur le firmware 4.55.

Il commence par confirmer que ce bug utilisé sur la PlayStation 4 peut être utilisé sur d'autres plateformes, c'est pourquoi il a publié son article dans un dossier WebKit et non dans le dossier spécifique à la PS4.







En Octobre 2017, après avoir lancé un projet de recherches de bugs nommé "projet zer0" qui avait pour ambition de trouver un bug sur le dernier firmware de la PS4, à l'époque le 5.00, il a été confronté à un bug conu sous le nom de setAttributeNodeNS, et heureusement, avec la majorité du travail effectué par qwertyoruiopz, ils ont pu réaliser l'exécution de l'userland dans le WebKit.

Largement aidé par qwertyoruiopz, Specter a compris ce qu'il se passait dans ce bug, et il a acquis de nombreuses connaissances grâce à lui, cet exploit webkit a été corrigé sur le firmware 5.03, c'est pourquoi son article ne couvrira que le 4.55.


Le PoC (Preuve de concept)

Le bug a l'origine a été découvert par lokihardt qui travaillait sur "Google Project Zer0" et il est présent jusqu'au firmware 5.02. Dans cet environnement non corrigé, il nous explique qu'un objet est exploitable et qu'il se base sur un objet iframe, différent de celui du 4.05 mais sur le fond c'est le même principe, l'exploitation d'un objet.

Son explication porte sur les différentes étapes du hack, à savoir le stage 1 qui permet de leaker l'objet, le stage 2 qui permet de corrompre l'objet pour en prendre le contrôle, et exploiter un vecteur dans la mémoire tampon. Ensuite vient le stage 3 qui permet d'étendre la mémoire en y réalisant une corruption.









Le stage 4 consiste a corrigé un alignement des JSValues, cela permet de prendre le contrôle sur des métadonnées. Le stage 5 consiste à l'introduction des primitives d'écriture et de lecture, les primitives sont très puissantes car elles permettent d'écrire et d'obtenir l'exécution du code. Grâce à deux tampons, l'exploit va permettre d'allouer des adresses, un premier qui sert de maître, dans lequel on écrit, et le second, un esclave, qui sert à la lecture, un troisième tampon sera utilisé pour faire fuir les JSValues.

L'accès et la gestion des primitives ayant été retirées par Sony au dessus du 4.55, cela explique qu'on est un exploit jusqu'au 5.03 mais pas la possibilité de l'utiliser car les primitives ne sont plus directement accessibles.

Le stage 6 consiste en l'exécution du code, le ROP. Le manque d'autorisation de la mémoire JiT impose l'exécution du code de l'exploit kernel dans une chaîne ROP. Il n'est pas possible d'écrire ses propres instructions et de les exécuter, seulement des séquences, appelées aussi gadgets. L'idée est de contrôler le pointeur d'instruction et de le faire passer d'un gadget à un autre.


Sa Conclusion

Pour quelqu'un qui connait bien le webkit, ce bug est assez simple à mettre en oeuvre, tirer partie d'une primitive, corrompre la mémoire ainsi que le webcore n'est tout de même pas donné à tout le monde (il n'y a qu'à voir les codes utilisés pour s'en convaincre). Sans comprendre les structures de données fondamentales telles que JSObjects et JSValues, il peut être difficile de comprendre ce qui se passe.

Cet article porte sur l'exécution du kernel, sur les corruptions, sur les primitives de lecture et d'écriture, et sur les confusions qu'il est possible d'opérer sur les objets. Dans un prochain article, il souhaite parler de l'exploit kernel 4.55, rappelant que l'exploit webkit utilisé fonctionne jusqu'au 5.02, mais pas l'exploit kernel car les primitives ne sont plus accessibles au delà du 4.55.


Si l'article vous intéresse :
You must be registered for see links
(4.55)
 
Dernière édition:
Google AdSense

Google AdSense

Haut