J'en avais parlé il y a quelques jours, mais maintenant c'est officiel, le développeur Specter a sorti son implémentation de l'exploit « Adieu » de la team fail0verflow permettant le jailbreak de la console et l'exécution de code non signé. L'exploit permettant le contrôle total du kernel, ceci va permettre aux développeurs et moddeurs de laisser s'exprimer leurs imagination et talent pour sortir les meilleurs utilitaires et homebrews possibles ! 😀
Quelques explications...
Si vous êtes curieux, vous pouvez lire ceci, sinon on ne vous en voudra pas de sauter ce paragraphe pour l'installation ;)
Un peu d'histoire ne fait pas de mal
En début d'année le développeur qwertyoruiop publiait son exploit Webkit pour les firmwares 4.0x de la PS4. L'exploit Webkit en lui-même ne servait à rien, il prouvait juste la possibilité d'utiliser le Webkit de la PS4 pour injecter du code dans l'espace utilisateur.
Quelques mois plus tard, la team fail0verflow publie sur son blog l'explication de l'exploit namedobj qu'il nomment « Adieu ». Cet exploit était en fait le même que celui de la team Chaitin Tech qui avaient réussi à trouver cet exploit et l'implémenter pour le lancement de Linux sur une PS4 en 4.01. Malheureusement pour nous, ils n'avaient pas publié leur travail et reporté le bug à Sony car c'était l'une des règles de la GeekPwn, l'événement auquel la team avait participé pour ce hack.
C'est là que Specter intervient. En tant que cadeau de noël, il a décidé de nous offrir une implémentation de l'exploit namedobj avec l'exploit Webkit de qwertyoruiop.
Explications sommaires du hack
Cessons de parler histoire, maintenant passons aux explications. Je vais vraiment résumer car je n'ai pas envie de faire un article de 16 pages. Je vais également me baser en partie sur l'écrit de Specter expliquant le hack.
La manière de Specter d'exploiter le bug nameobj est la suivante:
- Utilisation du bug nameobj via une confusion de code dans le code javascript ;
- Configuration d'une chaîne ROP dans l'espace utilisateur (si vous êtes intéressé je vous conseille ce très bon article expliquant très bien tout ce qu'il faut savoir sur les chaînes ROP). Dans cette chaîne ROP, on peut désactiver la protection d'écriture du kernel, effectuer les correctifs souhaités et après revenir dans l'espace utilisateur ;
- Écriture du faux objet au bon endroit, pointant vers la chaîne ROP créée plus tôt ;
- Maintenant l'exécution du code est possible, et la chaine ROP fonctionne dans le l'espace kernel ! C'est à cette étape que les payloads vont pouvoir être reçus puis être exécutés (pour rappel, les payloads sont du code compilé, des sortes de petits programmes en fait) ;
- Maintenant il suffit de retourner dans l'espace utilisateur après l'exécution du code.
C'est bon, c'est terminé, passons maintenant à l'installation et utilisation du jailbreak.
Comment jailbreak votre PS4
Pré-requis
- Une PS4 en version 4.05 ;
- Un PC sous Windows ;
- Le logiciel SKFU's Pr0xy accompagné de cette clé ;
- Le payload debug_settings ;
- La dernière version du logiciel PS4 Payload Sender de @valentinbreiz.
Jailbreak de la PS4
Maintenant, si vous êtes prêt, nous allons commencer le jailbreak de la PS4 !
Tout d'abord, nous allons configurer le serveur proxy. Commencez par installer SKFU's Proxy et démarrez-le, dans l'onglet « Proxy Server », allez dans l'onglet « Rules ». Cliquez maintenant sur le bouton « Import » et importez le fichier « usermanualredirect.httprls » téléchargé précédemment. Vous devriez avoir ceci :
Maintenant, cliquez sur le gros bouton bleu en bas au milieu du logiciel. Si la barre de progression devient verte, c'est que le proxy est bien lancé ! Passons maintenant sur la PS4, il va falloir connecter la console au serveur proxy du PC.
Pour cela, rendez-vous dans les paramètres système, puis naviguez vers « Réseau ». Choisissez l'option « Configurer la connexion Internet ». Choisissez votre type de connexion, votre réseau Wi-Fi, entrez le mot de passe, etc. Maintenant spammez le bouton jusqu'à arriver à « Serveur Proxy », et sélectionnez ensuite « Utiliser ». Entrez l'adresse IP du serveur proxy (pour moi « 192.168.1.12 ») et le port (« 8080 » chez moi). Vous pouvez maintenant appuyer sur « Suivant » et tester votre connexion.
Juste avant de lancer le hack, rendez-vous dans les informations systèmes puis notez bien l'adresse IP de votre PS4.
Votre proxy étant actif, vous allez maintenant vous diriger vers les paramètres systèmes à nouveau, et lancer le « Guide de l'utilisateur ».
Cliquez sur le lien « Binloader 4.05 ». Une fois la page chargée, l'exploit Webkit va laisser place à l'exploit kernel. Vous devriez voir la page ci-dessous, accompagnée du message « === Waiting for payload!!! === » (signifiant qu'il est en attente d'un payload) :
Ne quittez surtout pas cette page et retournez à nouveau devant votre PC. C'est maintenant que j'interviens ! Lancez le logiciel PS4 Payload Sender. Entrez l'adresse IP de votre console (notée plus haut si vous avez bien suivi le tuto :P), ainsi que le port, qui est égal à 9020 pour le jailbreak de Specter. Cliquez sur « Connect », et si tout se passe bien vous devriez pouvoir maintenant choisir votre payload. Dans les pré-requis, vous pouvez trouver un payload de test pour prouver le bon fonctionnement du hack, qui permet d'activer les debug settings.
Maintenant, cliquez sur « Send Payload » et attendez jusqu'à ce que le message « Payload sent! » apparaisse. Si le logiciel ne répond plus, ce n'est pas grave, patientez juste quelques instants.
Rendez-vous à nouveau sur votre PS4, allez dans les paramètres systèmes et... tah dah ! Tout en bas, vous verrez une nouvelle entrée : Debug Settings !
Voilà voilà, j'espère que vous aurez réussi votre jailbreak et l'installation des debug settings, vous pouvez maintenant profiter du fameux Package Installer pour installer des fichiers au format « .PKG ».
Conclusion
Pour conclure, le hack venant tout juste de sortir, peu de fonctionnalités sont encore disponibles sur ce firmware 4.05, donc si vous avez la chance d'être en 1.76 je vous conseille d'y rester pour l'instant. Mais, évidemment, tout reste à venir. La communauté étant plutôt active, un payload est déjà sorti permettant le patch et l'activation permanente du navigateur web de la PS4 :
Payload to permanently enable web browser on 4.05https://t.co/OzChvZRmKM
— 2much4u (@2much4ux) 28 décembre 2017
Petite exclusivité qui n'est ne l'est déjà plus, j'ai réussi à porter le premier payload (après celui de Specter évidemment) sur le firmware 4.05 ! C'est juste le port d'un payload activant un serveur FTP pour pouvoir accéder aux fichiers systèmes de la console, mais cela montre que le travail reste à faire : à nous le Linux Loader, le lancement de backups, les mod-menus et autres ! 😀
Sur ce, bon hack et à bientôt !
Superbe tutoriel comme je les aime, avec petit préambule et marches à suivre détaillées/imagées, un grand merci à toi val !
P.-S J'aime beaucoup le logo sur PS4 Payload Sender !
Salut à tous,
Merci pour ce superbe tuto qui aura le mérite aussi d'expliquer comment mettre en place le jailbreak PS4 car ça restait très flou dans mon esprit!Donc si ils existe un exploit webKit compatible 5.01, il suffira de mettre à jour l'implémentation de l'exploit webkit en première partie pour l'adapter au firmware 5.01 et hop rouler jeunesse??Je dis cela car j'ai ma ps4pro est en 4.70 malheureusement et j'espère bien la JB un jour...
Merci aux dev pour le boulot et le share ainsi que CP pour le tuto vulgarisé au maximum!!
non malheureusement sa ne suffira pas je crois. la version 4.5 patch l exploit kernel (ou je sais plus quel version) du coup il faut chercher un autre exploit kernel pour la 5.01 mais en privé ils ont les deux je crois
Salut à toi @studywes! Pour information qwertyoruip travaille sur un exploit kernel en 5.00
Et @Cimmerian l'exploit nameobj a été patché en 4.07.
Merci pour ces précisions!!En espérant un jailbreak 5.01 pour que cela puisse profiter à un maximum de personne...
>
ouai voila la 4.07 sinon avec les demonstration de emulateur saveux direque l exploit est present non?de toute façon en privé ils ont tout mdr
@Cimmerian oui c'est qu'il y a exploit! Mais c'est pas encore assez "user-friendly" pour pouvoir le publier.. Risque de brick tout ça tout ça
Bonjour,
Est ce qu'il y a un exploit sur la v4.72 a votre avis ?
Cordialement
Bonjour, pas à ce que je sache mais tu peux chercher quelques infos sur le net. Aussi, je te conseille de ne pas mettre à jour pour l'instant et d'attendre un possible jailbreak..
salut a tous
pour moi quand je clique sur binlaoder 4.05 la barre de progression reste bloqué a 75 pour 100
c normal ?
Bonjour
Est-ce que tu réussis à envoyer tes payloads?
Quand j installer debug sitting il est bien dans la ps4 mais quand je l eteind et r allume il a disparu
C'est normal ça, le hack n'est pas permanent.
A ok
Et pour les payloads ils apparaissent ou sur la ps4
Ajouté 17 minutes 37 secondes après :
Genre comme sur le site de extreme modding ils font voir une ps4 4.05 avec la page d accueil un peut customiser c possible de faire ca et si oui ca reste
Ho my God ! Je viens de rebrancher ma PS4 qui attendait sagement dans sa boite depuis que je suis passé sur la PRO.... Et surprise .... elle est en 4.05 !!! j’espère qu’elle suivra le même chemin que ma PS3 CF !
Bonjour a quand les customs firmware ?
Bonsoir, pas pour le moment! Le jailbreak en 4.05 vient tout juste de commencer
Bonjour
j'obtiens systématiquement l'erreur CE-34707-8 en essayant d'installer des PKG via debug settings
Vous auriez une idée ?
ça parle de besoin de DL quelque chose sur le store.. mais impossible de s'y connecter dans cette version évidemment..
Bonjour, quels PKG essayes tu d'installer?
Petit retour moi la page reste bloqué sur 3 petits points (la page ne se charge pas complètement) du coup pas de === Waiting for payload!!! === mais j'ai quand meme lancé le payload et ça a marché
Bonjours ma console n'a jamais était connecté (puisqu'elle est neuve) aux psn du coup quand je lance le navigateur un message me demandant de m'y connecté apparait. J'ai essayer ta méthode mais sa ne marche pas quand je teste la connexion ça échoue, est ce parce que je suis sur mac ? Mais dans ce cas que faire attendre ?