Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Byepervisor — Un exploit de l'hyperviseur PS5 pour les firmwares 1.xx-2xx. | Kitploit
Outils/GitHubGitHub/ps5dev/byepervisor
Sécurité des Systèmes EmbarquésEscalade de PrivilègesAnalyse des VulnérabilitésExploitationRétro-ingénierieVirtualisation de SécuritéExploitation de Binaires
GitHubps5dev/byepervisor

Byepervisor

Un exploit de l'hyperviseur PS5 pour les firmwares 1.xx-2xx.

Voir le dépôt
35523il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Byepervisor


Résumé

Exploit de l'hyperviseur PS5 pour les firmwares <= 2.xx. Le dépôt contient deux vulnérabilités et chaînes d'exploitation, indépendantes l'une de l'autre, et chacune peut être utilisée. Un exploit est fourni principalement à titre de conservation (/_old_jump_table_exploit) ; seule la chaîne d'exploitation principale doit être utilisée (exploit des indicateurs QA).

Cette recherche a été présentée à hardwear.io NL 2024, les diapositives sont disponibles ici. La présentation sera publiée prochainement.

Exploit de la table de sauts

Le premier exploit utilise une vulnérabilité où les tables de sauts du code de l'hyperviseur sont partagées avec le kernel invité, et se trouve dans /_old_jump_table_exploit/. En détournant l'entrée de table de sauts pour l'hypercall VMMCALL_HV_SET_CPUID_PS4, on peut obtenir l'exécution de code dans l'hyperviseur. Nous exécutons une chaîne ROP qui désactive la pagination imbriquée (NPT) et le piège d'exécution en mode invité (GMET), ce qui nous permet de désactiver la mémoire à exécution seule (XOM), aussi appelée xotext, dans les entrées de table de pages (PTEs) du kernel afin de la vider, ainsi que d'activer l'écriture dans les PTEs pour hooker/patch le kernel.

Cette méthode nécessite un nombre important de gadgets et d'offsets, ce qui explique principalement pourquoi cet exploit n'est pas celui principal. De plus, il ne casse actuellement l'hyperviseur que sur le cœur où la chaîne ROP s'exécute ; l'hyperviseur reste actif sur les autres cœurs et devrait être désactivé.

Exploit des indicateurs QA

L'exploit principal et recommandé tire parti du fait que les indicateurs d'assurance qualité (QA) du système sont partagés entre l'hyperviseur et le kernel invité. Lors de l'initialisation de l'hyperviseur, le code d'initialisation de la construction des tables de pages imbriquées vérifie les indicateurs QA pour le drapeau de débogage au niveau système (SL). Si ce drapeau est défini, les entrées de table de pages imbriquées (PTEs) n'auront pas le bit xotext défini pour les pages .text du kernel, et en outre les pages .text du kernel auront également le bit d'écriture défini.

Ces indicateurs ne sont pas réinitialisés par le chargeur sécurisé lors de la reprise du mode veille, contrairement à l'hyperviseur. En définissant le drapeau SL, en mettant le système en veille puis en le reprenant, nous pouvons modifier les tables de pages du kernel invité pour rendre les pages .text du kernel lisibles/écrivables, permettant de vider le kernel et d'appliquer des hooks/patchs.

Notes importantes

  • Actuellement, seul le firmware 2.50 est pris en charge pour l'activateur de homebrew (HEN) ; la prise en charge d'autres versions de firmware sera ajoutée ultérieurement.
  • La charge utile de l'exploit (byepervisor.elf) devra être envoyée deux fois : une fois avant la mise en veille du système et une autre après la reprise.
  • Vous devrez mettre le système en mode repos manuellement.
  • Le dump du kernel via l'exploit des indicateurs QA ne contiendra pas la région .data de l'hyperviseur pour le moment ; si cela est important pour vous, effectuez le dump avec l'exploit de la table de sauts après l'avoir porté ou désactivez d'abord la pagination imbriquée (c'est une tâche à faire).

Contenu actuel

  • Code de dump du kernel (commenté ; exécuter ce code fera paniquer le système car il tentera de vider autant que possible avant d'atteindre une mémoire non mappée)
  • Code pour déchiffrer les SELF de bibliothèques système via TCP
  • Activateur de homebrew (HEN) pour le firmware 2.50 (fself+fpkg)

Notes de compilation

Cette charge utile d'exploit est compilée avec le SDK PS5-Payload-Dev. Notez également que la compilation de hen/ est un peu particulière, car elle est compilée en un binaire plat copié dans une cavité de code du kernel. L'intégralité du code dans hen/ s'exécute en mode superviseur/noyau.

Utilisation

  1. Exécutez la chaîne d'exploitation UMTX dans webkit ou BD-J et exécutez un chargeur d'ELF
  2. Envoyez byepervisor.elf
  3. Mettez le système en mode repos
  4. Rallumez le système
  5. Envoyez à nouveau byepervisor.elf (si vous utilisez le chargeur d'ELF de John Tornblom, il devrait continuer à accepter les charges utiles après la reprise ; sinon, l'exploit UMTX devra être relancé)

Travaux futurs

  • Prendre en charge plus de firmwares (offsets)
  • Faire en sorte que byepervisor.elf ne doive être envoyé qu'une seule fois
  • Suspendre automatiquement le système ?
  • Patcher les vmcbs avec l'exploit des indicateurs QA pour vider les données de l'hyperviseur

Crédits / Mentions

  • ChendoChap
  • flatz
  • fail0verflow
  • Znullptr
  • kiwidog
  • sleirsgoevy

Discord

Les personnes intéressées par la contribution à la recherche/développement PS5 peuvent rejoindre un discord que j'ai mis en place ici.

Télécharger l’outil