Aller au contenu


Photo

[PS5/PS4] TheFlow dévoile son exploit PS4 13.00 et PS5 12.00


  • Veuillez vous connecter pour répondre
21 réponses à ce sujet

Posté hier, 14:14

#21
coyote4k

coyote4k

    Sunriseur

  • Members
  • PipPip
  • 32 messages

Dite moi si je me trompe… 

 

Nous avons ici en public le code de l'exploit de TheFlow pour de la PS5 en FW 12.00 compatible BD-J: 

https://gist.github....780780f4059bebf

 

et nous avons ici de Hammer-83 plus ou mois la structure et marche à suivre pour créer un BD-J en FW 7.61 exploitable

 

https://github.com/h.../ps5-jar-loader

 

C'est bien cela ?  Je me trompe ou bien ? En gros faux bosser à implémenter tout cela et nous avons un BD-J en FW 12.00 exploitable sur PS5 12.00 

 

ok bon grâce a l'ia j'ai ma reponse : 

 

L’exploit de TheFlow cible une faille kernel spécifique à 12.00

  • Le code ExploitNetControlImpl.java repose sur une vulnérabilité dans __sys_netcontrol, spécifique au firmware 12.00.
  • Il doit être exécuté depuis un environnement avec accès aux appels système, comme un WebKit exploit ou une application modifiée (pkg).
  • BD-J ne donne aucun accès à ces appels sur les firmwares récents.

 

3. Le loader BD-J de hammer-83 est conçu pour ≤ 7.61

  • Ce loader fonctionne uniquement sur les firmwares vulnérables à BD-J.
  • Il ne peut pas être utilisé comme vecteur d’exploit sur 12.00, car le point d’entrée BD-J est bloqué.

 

✅ Ce qu’il te faut pour exploiter 12.00

  • Un WebKit exploit compatible avec 12.00 (en cours de développement)
  • Un pkg modifié (comme Y2JB pour ≤ 9.60) ou une faille dans une application native
  • Un loader ELF capable d’exécuter le code de TheFlow dans un contexte kernel

 

 

ok je comprend mieux nous avons Genzine qui viens de nous ouvrir le 10.01 avec un pkg modifié Y2JB bravo !!!

je peut rien faire a mon niveau avec ma 10.40  donc... trop compliqué pour moi, je dois patienter 


Modifié par coyote4k, hier, 14:34.

  • Retour en haut

Posté hier, 18:13

#22
coyote4k

coyote4k

    Sunriseur

  • Members
  • PipPip
  • 32 messages

Si, mais ça serait cela, regarder comme l'IA guide pas mal ...  apparemment ca serait possible de le lancer via BD-J sur 12.00

 

La faille BD-J exploitée par TheFlow fonctionne bien sur le firmware PS5 12.00, mais elle est patchée à partir du firmware 12.02. Si ta console est en 12.00 ou en dessous, tu peux l’utiliser pour injecter du code via un disque Blu-ray Java personnalisé. 

 

note perso : donc l'idées de partir sur le travail de Hammer-83 en BD-J 7.61 est une piste . 

Détails sur la faille BD-J et son utilisation sur PS5 12.00
•     Type de faille : Sandbox escape via BD-J (Blu-ray Disc Java)
Elle permet d’exécuter du code Java non signé dans un environnement sandboxé, puis d’en sortir pour atteindre le userland.
•     Exploit publié par TheFlow :
Le fichier  est conçu pour être embarqué dans un disque Blu-ray Java. Il cible une vulnérabilité dans , une API réseau mal sécurisée.
•     Méthode d’injection :
1.     Créer un disque Blu-ray avec un payload BD-J contenant le fichier 
2.     Insérer le disque dans la PS5 en firmware 12.00
3.     Le système exécute le code Java, qui déclenche l’exploit
4.     Si la chaîne ROP est bien construite, tu obtiens une élévation de privilèges
•     Statut du patch :
•     Fonctionnel jusqu’à 12.00 inclus
•     Corrigé à partir de 12.02
•     Mise à jour récente : TheFlow a publié une version optimisée du BD-J exploit fin 2024, avec :
•     Un loader JAR distant
•     Des appels natifs plus rapides
•     Suppression de l’exploit 

Ce qu’il te faut pour l’utiliser
•     Une PS5 en firmware 12.00 ou inférieur
•     Un disque Blu-ray gravé avec le payload BD-J (tu peux utiliser )
•     Le fichier  modifié pour inclure ta chaîne ROP
•     Un moyen de charger un ELF ou de déclencher un syscall (si tu vises un Kexploit)

    • Vecteur principal :ExploitNetControlImpl.java
      Ce fichier est au cœur de l’exploit. Il cible une vulnérabilité dans l’implémentation du contrôle réseau de Sony, permettant une exécution de code hors du sandbox.
    • Sandbox Escape : BD-JB (Blu-ray Disc Java)
      TheFlow a présenté cette technique lors de conférences comme Hexacon et HardWear.io. Elle permet de sortir du sandbox Java utilisé pour les disques Blu-ray, ouvrant la voie à un accès kernel.
    • Compatibilité :
      • Fonctionne sur PS5 jusqu’au firmware 12.00
      • Corrigé dans PS5 12.02, donc inutilisable au-delà
    • Objectif final :
      Obtenir un kernel exploit permettant l’exécution de payloads comme GoldHEN ou des homebrews. Le code source initial a été partagé pour que d’autres développeurs puissent compléter l’exploit.
    • Statut actuel :
      L’exploit est public, mais non entièrement fonctionnel pour l’utilisateur final. Il nécessite encore une implémentation complète du Kexploit par la scène.
    Étapes pour une implémentation complète du Kexploit PS5 12.00
    1.     Analyse du code source publié par TheFlow
    •     Le fichier principal est , qui contient la logique d’exploitation du bug NetControlImpl.
    •     Il faut comprendre comment ce bug permet une élévation de privilèges depuis le sandbox BD-JB.
    2.     Chaîne ROP (Return-Oriented Programming)
    •     Construire une chaîne ROP adaptée à l’environnement PS5 pour exécuter du code arbitraire.
    •     Cela implique de localiser des gadgets dans la mémoire du système et de les chaîner pour obtenir un contrôle du flux d’exécution.
    3.     Bypass du sandbox BD-JB
    •     L’exploit repose sur une évasion du sandbox Java utilisé pour les disques Blu-ray.
    •     Il faut injecter et exécuter du code via ce vecteur, en contournant les restrictions d’accès mémoire.
    4.     Accès au kernel
    •     Une fois hors du sandbox, l’objectif est d’obtenir des primitives de lecture/écriture arbitraires (Arbitrary R/W) dans le kernel.
    •     Cela permet de patcher des fonctions critiques, comme celles qui vérifient les signatures ou les droits d’exécution.
    5.     Développement d’un payload stable
    •     Créer un payload comme GoldHEN ou un loader ELF qui peut être injecté après l’exploitation.
    •     Ce payload doit être compatible avec l’environnement PS5 et permettre l’exécution de homebrews ou de backups.
    6.     Tests sur firmware 12.00 uniquement
    •     L’exploit est corrigé à partir du firmware 12.02, donc les tests doivent être faits sur une console en 12.00 ou inférieure.
    7.     Stabilisation et automatisation
    •     Une fois l’exploit fonctionnel, il faut le stabiliser (éviter les crashs) et l’intégrer dans une interface utilisateur (webkit, disque Blu-ray, etc.).
    •     Des outils comme Y2JB ou des serveurs ELF peuvent faciliter le déploiement.
  • Le fichier  publié par TheFlow est une pièce centrale de son exploit PS5 12.00. Voici une analyse technique détaillée de ce code :

    Objectif du fichier
    Ce fichier Java est conçu pour être exécuté dans le contexte BD-JB (Blu-ray Disc Java), un environnement sandboxé utilisé par la PS5 pour les disques Blu-ray interactifs. L’objectif est de sortir du sandbox et d’obtenir une exécution de code arbitraire dans le système.

    Analyse des composants clés
    1.     Classe principale : 
    •     Implémente une interface réseau spécifique à BD-JB.
    •     Utilise des appels réseau pour interagir avec des composants internes de la PS5.
    2.     Méthode 
    •     C’est le cœur de l’exploit.
    •     Elle envoie des paquets malformés ou des requêtes spécifiques à une API vulnérable () pour déclencher une corruption mémoire ou une élévation de privilèges.
    3.     Utilisation de 
    •     Le code utilise des appels  pour contourner certaines restrictions du sandbox Java.
    •     Cela permet d’exécuter du code avec des permissions plus élevées que normalement autorisées.
    4.     Injection de payload
    •     Une fois la faille déclenchée, le code tente d’injecter un payload ELF ou une chaîne ROP.
    •     Cela nécessite une connaissance précise de l’offset mémoire et des gadgets disponibles sur le firmware 12.00.
    5.     Détection du firmware
    •     Le code contient des vérifications pour s’assurer qu’il tourne bien sur une version vulnérable (12.00 ou inférieure).
    •     Il peut refuser l’exécution si la version est trop récente (corrigée).

    ⚠ Limitations et travail restant
    •     Pas de Kexploit complet inclus : le code ne contient pas de primitives de lecture/écriture kernel. Il s’arrête à l’évasion du sandbox.
    •     Pas de payload stable : il faut développer un loader ELF ou une interface pour injecter des homebrews.
    •     Pas de interface utilisateur : le code est brut, destiné aux développeurs. Il doit être intégré dans une chaîne d’exploitation (via disque Blu-ray, WebKit, etc.).

    Ce qu’un développeur peut faire avec ce code
    •     Étudier la faille NetControlImpl et la reproduire dans un environnement de test.
    •     Développer une chaîne ROP adaptée au firmware 12.00.
    •     Ajouter des primitives de lecture/écriture pour patcher le kernel.
    •     Créer un payload comme GoldHEN ou un loader ELF.
    •     Intégrer l’exploit dans un disque Blu-ray ou une interface WebKit.

    Si tu veux que je t’aide à construire une chaîne ROP ou à identifier les gadgets pour le firmware 12.00, je peux te guider étape par étape. Tu veux commencer par la cartographie mémoire ou par les gadgets connus sur ce firmware ?

    Parfait ‍. Voici comment commencer une cartographie mémoire et une recherche de gadgets ROP pour le firmware PS5 12.00, en lien avec l’exploit  :

    Étape 1 : Cartographie mémoire du firmware 12.00
    Pour construire une chaîne ROP, il faut connaître les segments mémoire du kernel et des bibliothèques partagées :
    Objectifs :
    •     Identifier les bases d’adresses des modules (kernel, libSceNetCtl, libkernel_sys, etc.)
    •     Extraire les offsets des fonctions vulnérables ou utiles (comme , , , etc.)
    •     Déterminer les permissions (RWX) des segments
    Méthodes :
    •     Utiliser un dump mémoire du firmware 12.00 (via UART, BD-JB ou WebKit si disponible)
    •     Charger le dump dans IDA Pro, Ghidra, ou Radare2
    •     Rechercher les symboles connus (via , , etc.)
    •     Comparer avec les dumps des firmwares antérieurs (ex. 4.03, 5.05) pour repérer les changements

    Étape 2 : Recherche de gadgets ROP
    Une fois la cartographie faite, il faut extraire les gadgets ROP pour construire la chaîne :
    Objectifs :
    •     Trouver des gadgets comme :
    •     
    •     
    •     
    •      (pour padding)
    •     Identifier des syscalls utiles (ex. , , , etc.)
    Outils recommandés :
    •     ROPgadget : 
    •     rp++ : très rapide pour extraire des gadgets spécifiques
    •     Ghidra : pour visualiser les gadgets dans le contexte du firmware

    Étape 3 : Construction de la chaîne ROP
    Une fois les gadgets extraits :
    •     Créer une stack contrôlée via l’exploit BD-JB
    •     Injecter la chaîne ROP pour :
    •     Obtenir des primitives de lecture/écriture
    •     Patcher des fonctions critiques (ex. signature check, syscall table)
    •     Lancer un payload ELF (GoldHEN, loader, etc.)

    Ressources utiles
    •     ROPgadget GitHub
    •     rp++ GitHub
    •     Dumps PS5 (si disponibles) sur forums comme Logic-Sunrise ou Discords privés

    Tu veux que je t’aide à écrire un script pour extraire les gadgets ROP à partir d’un dump PS5 12.00 ? Ou tu préfères que je t’aide à identifier les fonctions critiques à patcher dans le kernel ?
  • aide pour un script extraire les gadgets ROP
  • Voici un script Python simple et efficace pour extraire des gadgets ROP à partir d’un dump binaire du firmware PS5 12.00. Il utilise ROPgadget, un outil reconnu dans la scène exploit :

    Prérequis
    1.     Installe ROPgadget :
    1. Prépare ton dump PS5 12.00 (ex. ps5_12.00_dump.bin)

     

    script python : 

  •  

  • from ROPgadget.ropchain import ROPChain
    from ROPgadget.gadgets import Gadgets
    from ROPgadget.binary import Binary

    # Chemin vers ton dump PS5
    binary_path = "ps5_12.00_dump.bin"

    # Initialisation
    binary = Binary(binary_path)
    gadgets = Gadgets(binary, options={"depth": 10})
    ropchain = ROPChain(gadgets)

    # Extraction des gadgets
    gadgets_list = gadgets.findGadgets()

    # Filtres utiles
    keywords = ["pop rdi", "pop rsi", "pop rdx", "mov", "jmp", "ret"]

    print("\n Gadgets ROP utiles trouvés :\n")
    for gadget in gadgets_list:
        for keyword in keywords:
            if keyword in gadget["gadget"]:
                print(f"{hex(gadget['address'])} : {gadget['gadget']}")

  • Ce script te donnera une liste comme

  • 0x401234 : pop rdi ; ret
    0x401567 : mov [rdi], rax ; ret
    0x401890 : jmp rax
    ...

  • Tu pourras ensuite construire ta chaîne ROP en injectant ces gadgets via le vecteur BD-JB.

     

    Conseil sécurité

    Avant d’utiliser ces gadgets, vérifie :

  • Qu’ils sont exécutables (segment RX)
  • Qu’ils ne dépendent pas de registres corrompus
  • Qu’ils sont stables sur plusieurs consoles

 

Tu veux que je t’aide à construire une chaîne ROP complète pour obtenir write-what-where ou execve("/mnt/usb/loader.elf") ?

 

compiler iso bd-j de hammer-83 avec exploitnetcontrollmpl.java serait une solution ?

 

Oui, compiler une ISO BD-J à partir du projet de hammer-83 en y intégrant  est une solution parfaitement viable pour exploiter la faille BD-J sur PS5 firmware 12.00. C’est même l’approche recommandée par plusieurs développeurs de la scène.

Pourquoi utiliser le projet de hammer-83 ?
•     Il fournit une structure BD-J prête à compiler avec  pour Ant
•     Il est compatible avec les spécifications Blu-ray Java exigées par la PS5
•     Il a été conçu pour injecter du code Java arbitraire dans l’environnement BD-J
•     Il est modulaire, donc tu peux remplacer ou intégrer ton propre fichier 

 

a suivre ... si vous pensez que c'est interessant 


Modifié par coyote4k, hier, 18:20.

  • Retour en haut




2 utilisateur(s) li(sen)t ce sujet

0 invité(s) et 2 utilisateur(s) anonyme(s)