
Un exploit WebKit utilisant CVE-2018-4441 pour obtenir une RCE sur PS4 6.20.
Ce dépôt contient une preuve de concept (PoC) d'exécution de code à distance (RCE) ciblant la PlayStation 4 sous le firmware 6.20, exploitant la CVE-2018-4441. L'exploit établit d'abord une primitive de lecture/écriture arbitraire ainsi qu'une fuite d'adresse d'objet arbitraire dans wkexploit.js. Il configure ensuite un framework pour exécuter des chaînes ROP dans index.html et, par défaut, fournit deux hyperliens pour exécuter des chaînes ROP de test — l'un pour lancer l'appel système sys_getpid() et l'autre pour lancer l'appel système sys_getuid(), afin d'obtenir respectivement le PID et l'identifiant utilisateur (UID) du processus.
Chaque fichier contient un commentaire en haut donnant une brève explication de ce que contient le fichier et du fonctionnement de l'exploit. Le crédit de la découverte du bug revient à lokihardt de Google Project Zero (p0). Le rapport de bug est disponible ici.
Note : Ce bug a été corrigé dans la mise à jour du firmware 6.50.
Fichiers classés par ordre alphabétique ;
index.html - Contient le code post-exploitation, allant de la lecture/écriture arbitraire -> à l'exécution de code.rop.js - Contient un framework pour les chaînes ROP.syscalls.js - Contient une liste (incomplète) d'appels système à utiliser pour la post-exploitation.wkexploit.js - Contient le cœur de l'exploit WebKit.p.launchchain() pour l'exécution de code devra peut-être être remplacée.syscalls.js ne contient qu'un petit nombre d'appels système.Configurez un serveur web hébergeant ces fichiers sur localhost en utilisant xampp ou tout autre programme de votre choix. Vous pouvez également l'héberger sur un serveur. Vous pouvez y accéder sur la PS4 de l'une des manières suivantes :
En usurpant le DNS pour rediriger la page du manuel vers la page de l'exploit, ou
En utilisant le navigateur web pour accéder à la page de l'exploit (pas toujours possible).
J'ai écrit l'exploit, cependant je n'ai pas trouvé la vulnérabilité. Comme mentionné ci-dessus, le bug (CVE-2018-4441) a été trouvé par lokihardt de Google Project Zero (p0) et a été divulgué via le suivi de bugs public de Chromium.
Rapport de bug Chromium - La vulnérabilité.
Phrack: Attacking JavaScript Engines by saelo - Une bouée de sauvetage. Exploiter cela aurait été environ 1500 fois plus difficile sans cet article divin.
lokihardt - La vulnérabilité
st4rk - Aide avec l'exploit
qwertyoruiop - WebKit School
saelo - L'article Phrack