Jump to content


PS5 IPV6 Kernel Exploit 1.03

¿Quieres enterarte al momento de las nuevas descargas? Síguenos en Twitter, Mastodon o Threads!

Implementación experimental de WebKit ROP de un exploit del kernel PS5 basado en el IPV6 Use-After-Free (UAF) de TheFlow, que fue reportado en HackerOne. La estrategia del exploit se basa en su mayor parte en el PoC BSD/PS4 de TheFlow con algunos cambios para acomodar la molesta disposición de la memoria de PS5 (para más información, véase la sección de Notas de Investigación). Establece una primitiva de lectura/escritura (semi-arbitraria) arbitraria. Este exploit y sus capacidades tienen muchas limitaciones, y como tal, está pensado principalmente para que los desarrolladores jueguen con él para hacer ingeniería inversa en algunas partes del sistema.

También hay que tener en cuenta que la estabilidad es bastante baja, especialmente en comparación con los exploits de PS4. Esto se debe a la naturaleza del fallo, que está vinculado a una condición de carrera, así como a las mitigaciones y la disposición de la memoria de la PS5. Este documento contendrá información de investigación sobre la PS5, y este exploit será objeto de desarrollo y mejoras continuas a medida que pase el tiempo.

Esto posiblemente podría funcionar en 4.50 también a través de la sustitución de offsets de gadgets válidos de 4.50 + deslizamientos del kernel, pero eso será para el trabajo futuro.

Actualmente se incluye

  • Obtiene lecturas/escrituras arbitrarias y puede ejecutar un servidor RPC básico para lecturas/escrituras (o un servidor de volcado para grandes lecturas) (debe editar su propia dirección/puerto en el archivo exploit en las líneas 673-677)
  • Activa el menú de configuración de depuración (nota: tendrás que salir completamente de la configuración y volver a entrar para verlo).
  • Obtiene privilegios de root

Limitaciones

  • Este exploit logra la lectura/escritura, pero no la ejecución de código. Esto se debe a que actualmente no podemos volcar el código del kernel para los gadgets, ya que las páginas de texto del kernel están marcadas como memoria de sólo ejecución (XOM). Si se intenta leer los punteros .text del kernel, se producirá un pánico.
  • Según lo anterior + el hipervisor (HV) que impone la protección de escritura del kernel, este exploit tampoco puede instalar ningún parche o gancho en el espacio del kernel, lo que significa que no hay código relacionado con el homebrew por el momento.
  • La integridad del flujo de control (CFI) basada en Clang está presente y se aplica.
  • La Prevención/Ejecución del Acceso en Modo Supervisor (SMAP/SMEP) no puede ser desactivada, debido al HV.
  • La primitiva de escritura está algo limitada, ya que los bytes 0x10-0x14 deben ser cero (o una interfaz de red válida).
  • La estabilidad del exploit es actualmente pobre. Más adelante se hablará de ello.
  • Cuando se ejecuta con éxito, sale del navegador con el botón circular, el botón PS entra en pánico por una razón actualmente desconocida.

Cómo utilizarlo

  • Configura fakedns a través de dns.conf para que apunte a manuals.playstation.net a la dirección IP de tu PC
  • Ejecuta el dns falso: python fakedns.py -c dns.conf
  • Ejecutar el servidor HTTPS: python host.py
  • Ve a la configuración avanzada de red de PS5 y establece el DNS primario a la dirección IP de tu PC y deja el secundario en 0.0.0.0
    • A veces el manual sigue sin cargarse y es necesario reiniciar, no se sabe por qué es muy raro
  • Vaya al manual del usuario en la configuración y acepte la solicitud de certificado no fiable, ejecute
  • Opcional: Ejecute los scripts del servidor rpc/dump (nota: la dirección/puerto debe ser sustituida en forma binaria en exploit.js).

Notas sobre la estabilidad
La estabilidad de este exploit está en torno al 30%, y tiene múltiples puntos potenciales de fallo. En orden de probabilidad descendente observada:

  • La etapa 1 causa más de un UAF debido a que no atrapa uno o más en el reclaim, causando una corrupción latente que causa un pánico algún tiempo después.
  • La etapa 4 encuentra el socket solapado/víctima, pero el pktopts es el mismo que el del socket maestro, causando que la primitiva "read" sólo lea el puntero que intenta leer en lugar del contenido de ese puntero. Esto necesita alguna mejora y ser arreglado si es posible porque es realmente molesto.
  • El intento de la etapa 1 de reclamar el UAF falla y algo más roba el puntero, causando un pánico inmediato.
  • La fuga de kqueue falla y no encuentra un puntero de kernel .data reconocido.
  • Salir del navegador a través de medios "inusuales" como el botón PS, el botón de compartir, o la caída del navegador, hará que el kernel entre en pánico. Necesita ser investigado.

Notas de investigación

  • Parece que, basándose en varias pruebas y en el volcado con la primitiva de lectura, la PS5 ha vuelto al tamaño de página 0x1000 en comparación con el 0x4000 de la PS4.
  • También parece que en la PS5 las páginas adyacentes rara vez pertenecen a la misma losa, ya que obtendrás datos muy diferentes en páginas adyacentes. La distribución de la memoria parece más dispersa.
  • A menudo, cuando la PS5 entra en pánico (al menos en el contexto de webkit), habrá una salida de audio horrible ya que el buffer de audio se corrompe de alguna manera.
  • A veces esta corrupción de audio persiste hasta el siguiente arranque, sin saber por qué.
  • Al igual que la PS4, la PS5 requerirá que se pulse manualmente el botón de encendido de la consola dos veces para reiniciar después de un pánico.
  • Es normal que la PS5 tarde una cantidad absurda de tiempo en reiniciarse tras un pánico si está aislada de Internet (por desgracia). Espera que el arranque tarde entre 3 y 4 minutos.


Traducción realizada con la versión gratuita del traductor www.DeepL.com/Translator

PS5 4.03 Kernel Exploit ha sido creado por SpecterDev.


Que novedades incluye la versión 1.03

Released

  • Añade soporte para reubicaciones relativas.
  • Corregidos varios errores/tipologías menores (gracias John Tornblom).

No te pierdas nada, síguenos en Twitter, Mastodon o Threads!
Preguntas, aportes y peticiones en el foro.

  • Contenido similar

    • Por Dekuwa
      PKG Tool Box es una herramienta para manipular archivos PKG de PS4 y PS5. Permite extraer, inyectar, modificar y obtener información sobre archivos PKG.

      Principales características
      Extracción: extrae archivos específicos de un PKG. Inyección: inyecta nuevos datos en un archivo PKG existente. Modificación: modifica el encabezado de un archivo PKG. Volcado: realiza un volcado completo del contenido de un PKG. Información: obtiene información detallada sobre un archivo PKG. Explorador de archivos: navega y administra archivos dentro del PKG utilizando un explorador de archivos integrado. Lector hexadecimal: ve y edita archivos en formato hexadecimal. Lector de texto: ve y edita archivos de texto. Eliminación: elimina archivos del PKG. Gestión de trofeos: carga, descomprime, lee y administra archivos de trofeos. Creador de trofeos: crea nuevos archivos de trofeos para juegos, personalizando íconos, descripciones y logros según los requisitos específicos del juego o las preferencias del usuario. Fondos de pantalla: explora, extrae y modifica los fondos de pantalla incluidos en el PKG, lo que permite la personalización de las imágenes de fondo utilizadas en el sistema o el juego. Fuerza bruta de contraseñas: realice ataques de fuerza bruta sobre las contraseñas incluidas en el paquete, lo que permite recuperar o acceder a archivos protegidos dentro del paquete. Integración con OpenOrbis: utilice orbis-pub-cmd.exe para la manipulación avanzada de paquetes PKG. Uso
      Explorar: seleccionar un archivo PKG con el que trabajar. Extraer: extraer archivos específicos del PKG. Inyectar: inyectar nuevos datos en el PKG. Modificar: modificar el encabezado del PKG. Volcar: realizar un volcado completo del contenido del PKG. Información: obtener información detallada sobre el PKG. Explorador de archivos: navegar y administrar archivos dentro del PKG. Lector hexadecimal: ver y editar archivos en formato hexadecimal. Lector de texto: ver y editar archivos de texto. Eliminar: eliminar archivos del PKG. Gestión de trofeos: cargar, leer y administrar archivos de trofeos. PKG Tool Box ha sido creado por seregonwar.
    • Por Dekuwa
      PS5 PKG Tool es una aplicación para Windows que nos permite crear y gestionar PKGs para PS5.

      Incluye funciones para crear, modificar e instalar archivos PKG, que son esenciales para el desarrollo y modificación de juegos.
      Aplicación creada por Master-s.
    • Por Dekuwa
      PS5 UMTX Jailbreak es un exploit ROP de WebKit de la vulnerabilidad de uso después de la liberación de la carrera UMTX (CVE-2024-43102) informada por Synacktiv.
      Básicamente, se trata de una adaptación de la estrategia de explotación de fail0verflow y flatz. Abusa del UAF para obtener una asignación de lectura/escritura en una pila de subprocesos del núcleo y aprovecha las lecturas y escrituras de la tubería para establecer una primitiva de lectura/escritura arbitraria (no del todo ideal) en el núcleo.
      Esta lectura/escritura se escala luego a una mejor que aprovecha un par de conectores IPv6 y un par de tuberías para una lectura/escritura estable que se puede pasar a las cargas útiles de la misma manera que era posible con el IPV6 PS5 Kernel Exploit.
      En última instancia, se lanzará un cargador de carga útil para escuchar los ELF de carga útil en el puerto 9021. Recomiendo el PS5 Payload Dev SDK, ya que debería tener compatibilidad total con este cargador cuando se agreguen compensaciones de kernel.
      Esta vulnerabilidad afecta al firmware 1.00 al 7.61, sin embargo, el firmware >= 3.00 parece tener mitigaciones adicionales que requieren ajustes del exploit para que funcione. Como principalmente solo me interesan los firmwares inferiores, este exploit no es compatible con FW >= 3.00 por el momento.
      Además, la vulnerabilidad de WebKit con la que encadenamos se corrigió en 6.00, por lo que se requerirá otro exploit de WebKit que logre lectura/escritura en el espacio de usuario para estos sistemas. Nuevamente, como no estoy enfocado en firmwares superiores, esto queda sin completar en este momento.
      Para FW < 3.00, todo lo que se debería requerir son los desplazamientos de gadget. Los siguientes firmwares son compatibles actualmente:
      1.05 1.10 1.11 1.12 1.13 1.14 2.00 2.20 2.25 2.26 2.30 2.50 Incluido actualmente
      Obtiene lectura/escritura arbitraria del kernel Habilita el menú de configuración de depuración (nota: deberá salir completamente de la configuración y volver a ingresar para verlo). Obtiene privilegios de root y sale de la zona protegida/cárcel. Ejecuta el cargador ELF de John Tornblom en el puerto 9021 para que se ejecuten las cargas útiles. Limitaciones
      Este exploit logra lectura/escritura, pero no ejecución de código. Esto se debe a que actualmente no podemos volcar el código del kernel para gadgets, ya que las páginas .text del kernel están marcadas como Memoria de solo ejecución (XOM). ¡Intentar leer punteros .text del kernel provocará pánico! De acuerdo con lo anterior y el hipervisor (HV) que aplica la protección contra escritura del kernel, este exploit tampoco puede instalar parches ni ganchos en el espacio del kernel. La integridad del flujo de control (CFI) de grano fino basada en Clang está presente y se aplica. La prevención/ejecución de acceso en modo supervisor (SMAP/SMEP) no se puede deshabilitar debido al HV. FW >= 6.00 requiere un nuevo exploit de WebKit y, por lo tanto, no es compatible. FW >= 3.00 requiere ajustes de estrategia para explotar UAF. Cómo usar
      Configura fakedns a través de dns.conf para apuntar manuals.playstation.net a la dirección IP de tu PC Ejecuta fake dns: python fakedns.py -c dns.conf Ejecuta servidor HTTPS: python host.py Ve a la configuración de red avanzada de PS5 y configura el DNS primario a la dirección IP de tu PC y deja el secundario en 0.0.0.0 A veces, el manual aún no se carga y es necesario reiniciar, no estoy seguro de por qué es realmente extraño Ve al manual del usuario en la configuración y acepta el mensaje de certificado no confiable, ejecuta Opcional: descomenta el código de volcado de kernel .data y ejecuta el script de servidor de volcado (nota: la dirección/puerto debe sustituirse en exploit.js). PS5 UMTX Jailbreak ha sido creado por PS5Dev.
       
    • Por Dekuwa
      Chiaki-NG (antes conocido como Chiaki4deck) es un cliente de software libre y de código abierto de PS4 y PS5 Remote Play para Windows, macOS y Linux basado en Chiaki. 
      Descargo de responsabilidad: Este proyecto no está avalado ni certificado por Sony Interactive Entertainment LLC.
      Chiaki-NG ha sido creado por streetpea.
    • Por Dekuwa
      PS Classics fPKG Builder es una aplicación que nos permite crear fácilmente PKG falsos de juegos de PS1, PS2 y PSP para PS4 y PS5 desde macOS y Windows.
      Características principales
      Admite archivos .BIN (PS1) e .ISO (PS2 y PSP) Detecta la protección de juegos de PS1 y puede aplicar el parche necesario Generación automática de TOC de juegos de PS1 para juegos que utilizan música CDDA Personaliza el icono y el fondo Configura el emulador utilizado Selecciona hasta 4 discos en PS1 y hasta 5 discos en PS2 Aplicación creada por SvenGDK.
×
×
  • Crear nuevo...