Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
PS5-UMTX-Jailbreak — Un exploit de kernel basado en WebKit y jailbreak para PS5 | Kitploit
Herramientas/GitHubGitHub/ps5dev/ps5-umtx-jailbreak
Escalada de PrivilegiosExplotaciónPost-ExplotaciónExplotación de Binarios
GitHubps5dev/ps5-umtx-jailbreak

PS5-UMTX-Jailbreak

Un exploit de kernel basado en WebKit y jailbreak para PS5

Ver Repositorio
24739hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

PS5 UMTX Jailbreak


Resumen

Este repositorio contiene un exploit ROP de WebKit de la vulnerabilidad de use-after-free por condición de carrera en UMTX (CVE-2024-43102) reportada por Synacktiv. Básicamente es un port de la estrategia de exploit de fail0verflow y flatz'. Abusa del UAF para obtener un mapeo de lectura/escritura dentro del stack de un hilo del kernel, y aprovecha lecturas y escrituras en pipes para establecer una primitiva de lectura/escritura arbitraria (no del todo ideal) en el kernel. Esta lectura/escritura se escala luego a una mejor que aprovecha un par de sockets ipv6 y un par de pipes para una lectura/escritura estable que puede pasarse a los payloads de la misma manera que era posible con el anterior exploit de kernel IPV6 para PS5.

La página en sí es una versión reducida y modificada de PS5 Exploit Host de idlesauce, ya que hizo el trabajo de integrar psfree con mi estilo de código usado anteriormente. Este host también es mi elección personal para ejecutar cosas, ya que es muy fluido e integra payloads útiles; con suerte se actualizará para soportar este exploit en un futuro cercano <3.

En última instancia, se lanzará un cargador de payloads que escuchará ELFs de payload en el puerto 9021. Recomiendo el PS5 Payload Dev SDK, ya que debería tener compatibilidad total con este cargador cuando se agreguen los offsets del kernel.

Esta vulnerabilidad afecta al firmware 1.00 hasta el firmware 7.61; sin embargo, los FW >= 3.00 parecen tener mitigaciones adicionales que requieren ajustar el exploit para que funcione. Como estoy principalmente interesado en firmwares más bajos, este exploit no soporta FW >= 3.00 por ahora. Además, la vulnerabilidad de WebKit que encadenamos fue parcheada en 6.00, por lo que se necesitará otro exploit de WebKit que logre lectura/escritura en userland para estos sistemas. De nuevo, como no me centro en firmwares más altos, esto queda incompleto por ahora.

Notas importantes

  • 3.00+ tiene menor fiabilidad y puede tardar más en ejecutarse; si te quedas atascado en "triggering race" durante un rato, cierra el navegador y reintenta.
  • 5.00+ el cargador de ELF actualmente no funciona, porque ya no podemos invocar dlsym correctamente; el SDK de payloads necesita cambios.

Los siguientes firmwares están soportados actualmente:

  • 1.xx [1.00, 1.01, 1.02, 1.05, 1.10, 1.11, 1.12, 1.13, 1.14]
  • 2.xx [2.00, 2.20, 2.25, 2.26, 2.30, 2.50, 2.70]
  • 3.xx [3.00, 3.20]
  • 4.xx [4.00, 4.02, 4.03, 4.50, 4.51]
  • 5.xx [5.00, 5.02, 5.10, 5.50]

Incluido actualmente

  • Obtiene lectura/escritura arbitraria del kernel
  • Habilita el menú de configuración de depuración (nota: tendrás que salir completamente de configuración y volver a entrar para verlo).
  • Obtiene privilegios de root y escapa del sandbox/jail.
  • Ejecuta el cargador de ELF de John Tornblom en el puerto 9021 para ejecutar payloads (en < 5.00FW)

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 obtener 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á un pánico!
  • De acuerdo con lo anterior y a que el hipervisor (HV) aplica protección de escritura del kernel, este exploit tampoco puede instalar parches ni hooks en el espacio del kernel.
  • La Control Flow Integrity (CFI) de grano fino basada en Clang está presente y se aplica.
  • La Prevención de Acceso/Prevención de Ejecución 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.

Cómo usar

  1. Configura fakedns mediante dns.conf para que apunte manuals.playstation.net a la dirección IP de tu PC
  2. Ejecuta el DNS falso: python fakedns.py -c dns.conf
  3. Ejecuta el servidor HTTPS: python host.py
  4. 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
    1. A veces el manual no carga y es necesario reiniciar; no estoy seguro de por qué, es realmente extraño
  5. Ve al manual de usuario en configuración y acepta el aviso de certificado no confiable, ejecuta
  6. Opcional: Descomenta el código de volcado del kernel .data y ejecuta el script del servidor de volcado (nota: la dirección/puerto deben sustituirse en exploit.js).

Trabajo futuro

  • Actualizar la estrategia del exploit para FW >= 3.xx para tener en cuenta las mitigaciones
  • Agregar offsets para más firmwares (inferiores)
  • Agregar exploit de WebKit para FW >= 6.00.

Usar el cargador de ELF

Para usar el cargador de ELF, ejecuta el exploit hasta que termine. Al finalizar, ejecutará un servidor en el puerto :9021. Conéctate y envía tu ELF a la PS5 a través de TCP y lo ejecutará. Este cargador debería seguir aceptando y ejecutando payloads incluso después de salir del navegador.

Notas sobre la estrategia del exploit

Doble free inicial

La estrategia de este exploit proviene en gran parte de fail0verflow y flatz. Consulta el writeup de chris@accessvector para obtener más información sobre la vulnerabilidad. Al explotarla, esencialmente nos da un doble free. Podemos usar esto para superponer el vmobject de un stack del kernel con el de un mapeo mmap para obtener una ventana al stack de un hilo del kernel. Esta capacidad tan poderosa nos permite leer/escribir punteros arbitrarios del kernel en el stack, lo que permite derrotar al ASLR y crear primitivas. Al hilo cuyo stack podemos acceder lo llamaremos hilo víctima.

Obtener lectura/escritura arbitraria

Al crear un pipe y llenar el búfer del pipe en el hilo principal, y luego intentar escribir en él usando el hilo víctima, el hilo víctima se bloqueará esperando que se libere espacio en el búfer. Durante este tiempo, podemos usar nuestra ventana al stack del kernel para cambiar los punteros iovec a punteros del kernel y establecer flags para que se traten como direcciones del kernel. Luego, al leer el pipe en el hilo principal, podemos obtener lectura arbitraria del kernel.

De manera similar, al hacer que el hilo víctima lea en el pipe, se bloqueará esperando datos entrantes. Podemos entonces, nuevamente, sobrescribir los punteros iovec y convertirlos en punteros del kernel, y escribir datos en el hilo principal para obtener escritura arbitraria del kernel.

Mejorando la lectura/escritura arbitraria

En esta etapa, tenemos una lectura/escritura arbitraria sin restricciones reales, pero estamos atados al uso de multihilo y bloqueos para que funcione, lo cual no es ideal. Luego usamos la R/W para iterar la tabla de descriptores de archivo (FD) del proceso y superponer los pktopts de dos sockets IPV6. Podemos entonces crear otra lectura/escritura arbitraria mediante el sockopt IPV6_PKTINFO. Esta primitiva de lectura/escritura tampoco es ideal, ya que está limitada en tamaño y contenido debido a la opción de socket subyacente. Mantenemos este paso principalmente para emular el escenario del exploit IPV6, sobre el cual se construyeron la mayoría de los payloads y demás.

Podemos obtener una mejor lectura/escritura mediante pipes. Al iterar nuevamente la tabla de FD del proceso y modificar los objetos de búfer de pipemap, podemos establecer lectura/escritura. El par de sockets IPV6 se utiliza como mecanismo para controlar el búfer de pipemap.

Corregir/evitar la corrupción

Si dejamos las cosas como están e intentamos cerrar el navegador, el sistema se bloqueará. Esto se debe a que la limpieza del proceso intentará liberar el stack del kernel que ya ha sido liberado. Para evitarlo, hacemos dos cosas:

  1. Fugar intencionalmente el refcount del FD shm que usamos para el doble free inicial para que no se libere al salir del proceso
  2. Poner a cero el td_kstack del hilo víctima en la lista de hilos del proceso.

Notas de estabilidad

En FW < 3.00, este exploit es muy estable. El único punto crítico de fallo es no lograr superponer los vmobjects. En firmwares más altos, esta superposición es más difícil de lograr debido a las supuestas mitigaciones a nivel del asignador de páginas/montón.

Créditos / Agradecimientos

  • fail0verflow
  • flatz
  • ChendoChap
  • SlidyBat
  • abc/psfree
  • idlesauce
  • Znullptr
  • zecoxao
  • SocracticBliss
  • John Tornblom

Discord

Los interesados en contribuir a la investigación/desarrollo de PS5 pueden unirse a un discord que he configurado aquí.

Descargar herramienta