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
PS5-IPV6-Kernel-Exploit — Un exploit noyau expérimental basé sur webkit (Arb. R/W) pour la PS5 sur <= 4.51FW | Kitploit
Outils/GitHubGitHub/cryptogenic/ps5-ipv6-kernel-exploit
Sécurité des Systèmes EmbarquésEscalade de PrivilègesAnalyse des VulnérabilitésExploitationRétro-ingénieriePost-ExploitationExploitation de Binaires
GitHubcryptogenic/ps5-ipv6-kernel-exploit

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

PS5-IPV6-Kernel-Exploit

Un exploit noyau expérimental basé sur webkit (Arb. R/W) pour la PS5 sur <= 4.51FW

Voir le dépôt
925106il y a 2 ansVérifié par Kitploit

Exploit du noyau PS5 3.xx / 4.xx


Résumé

Ce dépôt contient une implémentation expérimentale de ROP WebKit d'un exploit du noyau PS5 basé sur l'IPV6 Use-After-Free (UAF) de TheFlow, qui a été signalé sur HackerOne. La stratégie de l'exploit est en grande partie basée sur le PoC BSD/PS4 de TheFlow avec quelques modifications pour s'adapter à la pénible disposition mémoire de la PS5 (voir la section Notes de recherche pour plus de détails). Il établit une primitive de lecture arbitraire / d'écriture (semi-arbitraire). Cet exploit et ses capacités ont de nombreuses limitations, et de ce fait, il est surtout destiné aux développeurs pour jouer avec et faire de la rétro-ingénierie sur certaines parties du système.

Avec les dernières améliorations de stabilité, la fiabilité est d'environ 80 %. Ce document contiendra des informations de recherche sur la PS5, et cet exploit continuera d'être développé et amélioré au fil du temps.

Les personnes souhaitant contribuer à la recherche/développement PS5 peuvent rejoindre un discord que j'ai mis en place ici.

L'exploit devrait désormais prendre en charge les firmwares suivants :

  • 3.00
  • 3.10
  • 3.20
  • 3.21
  • 4.00
  • 4.02
  • 4.03
  • 4.50
  • 4.51

Contenu actuel

  • Obtenir une lecture/écriture arbitraire et exécuter un serveur RPC de base pour les lectures/écritures (ou un serveur de dump pour les grandes lectures) (vous devez éditer votre propre adresse/port dans le fichier de l'exploit aux lignes 673-677)
  • Activer le menu des paramètres de débogage (remarque : vous devrez quitter complètement les paramètres puis y revenir pour le voir).
  • Obtenir les privilèges root

Limitations

  • Cet exploit permet la lecture/écriture, mais pas l'exécution de code. Cela vient du fait que nous ne pouvons actuellement pas extraire le code du noyau pour les gadgets, car les pages .text du noyau sont marquées comme eXecute Only Memory (XOM). Tenter de lire les pointeurs .text du noyau provoquera un panic !
  • Compte tenu de ce qui précède + l'hyperviseur (HV) appliquant la protection en écriture du noyau, cet exploit ne peut pas non plus installer de correctifs ou de hooks dans l'espace noyau, ce qui signifie aucun code lié au homebrew pour le moment.
  • L'intégrité du flux de contrôle (CFI) à granularité fine basée sur Clang est présente et appliquée.
  • La prévention d'accès/exécution en mode superviseur (SMAP/SMEP) ne peut pas être désactivée, en raison de l'HV.
  • La primitive d'écriture est quelque peu contrainte, car les octets 0x10-0x14 doivent être à zéro (ou une interface réseau valide).
    • Cependant, grâce à des travaux plus récents utilisant des pipes, une lecture/écriture arbitraire complète est désormais possible

Comment utiliser

  1. Configurez fakedns via dns.conf pour pointer manuals.playstation.net vers l'adresse IP de votre PC
  2. Exécutez le faux DNS : python fakedns.py -c dns.conf
  3. Exécutez le serveur HTTPS : python host.py
  4. Accédez aux paramètres réseau avancés de la PS5 et définissez le DNS principal sur l'adresse IP de votre PC et laissez le secondaire à 0.0.0.0
    1. Parfois, le manuel ne se charge toujours pas et un redémarrage est nécessaire, je ne sais pas pourquoi, c'est vraiment bizarre
  5. Allez dans le manuel d'utilisation dans les paramètres et acceptez l'invite de certificat non fiable, exécutez
  6. Facultatif : exécutez les scripts serveur rpc/dump (remarque : l'adresse/le port doivent être substitués sous forme binaire dans exploit.js).

Travaux futurs

  • Corriger les sockets pour quitter le navigateur proprement (priorité maximale)
  • Écrire quelques correctifs de données (deuxième priorité)
    • Activer les paramètres de débogage
    • Patcher les creds pour uid0
    • Jailbreak avec écrasement de cr_prison
  • Améliorer la fiabilité de l'UAF
  • Améliorer la fiabilité du socket victime (troisième priorité)
  • Utiliser une cible de fuite meilleure / plus cohérente que kqueue (n'est plus nécessaire)
  • Faire en sorte que le chargeur ELF prenne en charge les relocations
    • Ajouter la prise en charge de davantage de relocations et éventuellement une liaison dynamique complète ?

Utilisation du chargeur ELF

Pour utiliser le chargeur ELF, exécutez l'exploit jusqu'à la fin. Une fois terminé, il lancera un serveur sur le port :9020. Connectez-vous et envoyez votre ELF à la PS5 sur ce port et il l'exécutera. En supposant que l'ELF ne fasse pas planter le navigateur, il peut continuer à exécuter des ELF indéfiniment.

Étapes de l'exploit

Cet exploit fonctionne en 5 étapes et suit en grande partie la même stratégie d'exploit que le poc de theflow.

  1. Déclencher l'UAF initial sur ip6_pktopts et obtenir deux sockets pointant vers le même pktopts / chevauchement (socket maître <-> socket de spray de chevauchement)
  2. Libérer le pktopts sur le socket maître et le falsifier avec un spray ip6_rthdr contenant un chevauchement tclass tagué.
  3. Étape de fuite d'informations. Utiliser le chevauchement pktopts/rthdr pour fuiter une kqueue depuis le slab 0x200 et pktopts depuis le slab 0x100.
  4. Étape de lecture/écriture arbitraire. Falsifier à nouveau pktopts et trouver le socket de chevauchement pour utiliser IPV6_RTHDR comme primitive de lecture/écriture.
  5. Étape de nettoyage + correctif. Augmenter le refcount sur les sockets corrompus pour une sortie propre du navigateur + patcher les données pour activer le menu de débogage et patcher les ucreds pour uid0.
  6. Exécuter le serveur chargeur ELF qui acceptera et chargera/exécutera les ELF. Actuellement en cours de développement, ne prend pas en charge les relocations pour le moment.

Notes de stabilité

La stabilité de cet exploit est d'environ 30 % 80-90 %, et présente deux points de défaillance potentiels. Par ordre décroissant de probabilité observée :

  1. L'étape 1 ne parvient pas à récupérer l'UAF, provoquant un crash immédiat ou une corruption latente qui entraîne un crash.
  2. L'étape 4 ne parvient pas à trouver un socket victime.

Notes de recherche

  • Il semble, d'après divers tests et dumps avec la primitive de lecture, que la PS5 soit revenue à une taille de page de 0x1000 par rapport au 0x4000 de la PS4.

    • Après des recherches plus approfondies, la taille de page est effectivement toujours de 0x4000, mais en raison de changements assez fous de l'allocateur, différents slabs peuvent être alloués dans la même page virtuelle.
  • Il semble également que sur PS5, les pages adjacentes appartiennent rarement au même slab, car vous obtenez des données très différentes dans les pages adjacentes. La disposition mémoire semble plus dispersée.

  • Souvent, lorsque la PS5 panique (au moins dans le contexte webkit), une sortie audio épouvantable se produit car le tampon audio est corrompu d'une manière ou d'une autre.

  • Parfois, cette corruption audio persiste jusqu'au prochain démarrage, sans savoir pourquoi.

  • Comme sur PS4, la PS5 nécessitera d'appuyer manuellement deux fois sur le bouton d'alimentation de la console pour redémarrer après un panic.

  • Il est normal que la PS5 mette un temps absurde à redémarrer après un panic si elle est isolée d'Internet (malheureusement). Attendez-vous à un démarrage de 3 à 4 minutes.

Contributeurs / Remerciements spéciaux

  • Andy Nguyen / theflow0 - Vulnérabilité et stratégie d'exploit
  • ChendoChap - Aide variée pour les tests et la recherche
  • Znullptr - Recherche/RE
  • sleirsgoevy - Recherche/RE + idées de stratégie d'exploit
  • bigboss - Recherche/RE
  • flatz - Recherche/RE + aide pour les correctifs
  • zecoxao - Recherche/RE
  • SocracticBliss - Recherche/RE
  • laureeeeeee - Connaissances de fond en systèmes bas niveau et assistance

Merci aux testeurs

  • Dizz (4.50/4.51)
Télécharger l’outil