Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
ds3-nrssr-rce — Documentación y código de prueba de concepto para CVE-2022-24125 y CVE-2022-24126. | Kitploit
Herramientas/GitHubGitHub/tremwil/ds3-nrssr-rce
Frameworks de ExploitsAnálisis de VulnerabilidadesExplotaciónIngeniería InversaShellcodePruebas de PenetraciónAprendizaje y EducaciónRed TeamingGeneración de ShellcodeDesarrollo de PayloadsExplotación de Binarios
169818hace 4 añosRevisado por Kitploit
GitHub
tremwil/ds3-nrssr-rce

ds3-nrssr-rce

Documentación y código de prueba de concepto para CVE-2022-24125 y CVE-2022-24126.

Ver Repositorio

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

Actualización: Dark Souls III 1.15.1

Se ha lanzado una nueva actualización del juego, la 1.15.1, para Dark Souls III el 25/08/2022, junto con la restauración de los servicios en línea. Esta actualización corrigió tanto CVE-2022-24125 como CVE-2022-24126, junto con una amplia variedad de otras posibles vulnerabilidades de seguridad presentes en la red P2P del juego (lecturas/escrituras fuera de límites). Además, se han corregido todos los exploits conocidos que permitían corromper la partida de otros jugadores. Muchos trucos menores comunes (p. ej., "cuchillo de maldición") que se podían encontrar a menudo durante el multijugador en línea también han sido parcheados.

ds3-nrssr-rce

Este repositorio contiene código de prueba de concepto y documentación para el exploit RCE más reciente que afecta a los juegos de FROM SOFTWARE, CVE-2022-24126. Aunque teóricamente es posible en otros juegos, la atención se centra en Dark Souls III, ya que es el juego en el que he realizado mi investigación. Por ahora solo existe código de prueba de concepto para Dark Souls III; se ha confirmado que la vulnerabilidad está presente en:

  • Dark Souls 1 PTDE (crédito: LukeYui)
  • Dark Souls Remastered (crédito: metal-crow)
  • Dark Souls 2 (incluido Scholar) (crédito: LukeYui)
  • Dark Souls 3 (hasta 1.15.0) (crédito: tremwil)

El código vulnerable también está presente en Sekiro (crédito: LukeYui), aunque no hay forma de activarlo. La presencia en Demon's Souls no se ha confirmado, pero es muy probable. Si bien la prueba de red cerrada se vio afectada por esto, la versión final de Elden Ring no lo está. De hecho, una enorme lista de fallos de red, lecturas/escrituras fuera de límites y exploits que permitían a los jugadores modificar los datos del juego de sus pares, presentes en Dark Souls III, han sido parcheados en Elden Ring. Felicitaciones a LukeYui por recopilar esta lista y a FROM SOFTWARE por actuar con rapidez. Me alegra decir que Elden Ring es, indiscutiblemente, el título de FROM SOFTWARE más seguro en cuanto al alcance del daño que los hackers pueden infligir.

Disipando conceptos erróneos

Contrariamente a la creencia popular, esto NO es un exploit de red peer-to-peer. Está relacionado con el servidor de emparejamiento y, por lo tanto, es mucho más grave, ya que no necesitas participar en ninguna actividad multijugador para ser vulnerable debido a otra vulnerabilidad del servidor de emparejamiento (CVE-2022-24125).

En Dark Souls III, un atacante malintencionado que abusara de esto habría podido ejecutar de forma fiable una carga útil de hasta 1.3MiB1 de shellcode en la máquina de cada jugador en línea en cuestión de segundos.

Con un promedio de unos 20.000 jugadores concurrentes en los meses anteriores al cierre de los servidores, era claramente un problema que necesitaba una solución inmediata, especialmente ante la posibilidad de que estuviera en Elden Ring. Dado que FROM SOFTWARE no había actuado después de más de 40 días desde mi informe inicial con vídeos de prueba de concepto y documentación detallada del exploit (en la que se basa gran parte de este readme), decidí demostrar la existencia del exploit públicamente de manera benigna, con la esperanza de atraer la atención para que los desarrolladores lo abordaran, y funcionó.

Tabla de contenidos

  • Resumen del exploit (CVE-2022-24126)
  • Vectores de distribución (CVE-2022-24125)
  • La táctica general de explotación para todos los juegos
    • Bug #1: Sin comprobación de límites en el analizador de listas de entradas
    • Bug #2: Desbordamiento de búfer en el analizador de NRSessionSearchResult
    • Preparando el terreno para la cadena ROP
  • Código de prueba de concepto para Dark Souls III
    • Ejecutar el código PoC
    • Vector de ataque
    • Cadena de redirección de llamadas virtuales
    • Información adicional

Resumen del exploit (CVE-2022-24126)

La comprobación inadecuada de límites en un búfer de pila y en el campo de tamaño de datos durante el análisis de los datos de emparejamiento de NRSessionSearchResult permite a un atacante ejecutar código arbitrario. El desbordamiento de pila permite sobrescribir los dos bytes inferiores de vftable_ptr del objeto DLMemoryInputStream utilizado internamente por el lector de flujo, redirigiendo la ejecución a código vecino cuidadosamente elegido. La explotación inteligente de la estructura del objeto DLMemoryInputStream y de su campo de tamaño de datos permite entonces lograr la redirección de código arbitrario, con RCX apuntando a la dirección de nuestro paquete. A partir de ahí, se puede usar una serie de redirecciones de código mediante llamadas virtuales con diferentes desplazamientos (que ahora saltarán a las direcciones que escribimos en el búfer del paquete) para lograr la ejecución de código arbitrario.

Vectores de distribución (CVE-2022-24125)

Los vectores de distribución son lo que hace que este RCE en particular sea especialmente grave (más allá de ser ya un RCE). El exploit se transmite a través de solicitudes push de emparejamiento que contienen información de NRSessionSearchResult. Esto significa que el atacante puede apuntar a cualquiera que se una a su sesión en línea. En particular, para DS3:

  • invocaciones (PushRequestSummonSign)
  • invasores de espíritu oscuro (PushRequestAllowBreakInTarget)
  • jugadores que se unen mediante pacto (PushRequestVisit)
  • combatientes de arena (PushRequestAcceptQuickMatch)

Esto ya es bastante malo, pero el verdadero potencial se desbloquea con la solicitud RequestSendMessageToPlayers:

message RequestSendMessageToPlayers { 
    repeated uint32 player_ids = 1; 
    required bytes push_message = 2;
}

El anfitrión usa esta solicitud para enviar directamente el mensaje push PushRequestAllowBreakInTarget a los invasores, de modo que puedan obtener las coordenadas de aparición y unirse a su sesión P2P. Eso es todo. Esa es la única forma en que el juego usa esta solicitud.

Sin embargo, permite que cualquier cliente envíe mensajes push arbitrarios a cientos de miles de jugadores específicos.

No puedo enfatizar lo horriblemente inseguro que es esto. Cualquier jugador puede básicamente hacerse pasar por el servidor de emparejamiento. Al usar esta solicitud para enviar el exploit a través de un PushRequestVisit, cualquier jugador en línea puede ser atacado de forma remota siempre que se conozca su ID de jugador. El atacante también puede enviar el exploit a toda la base de jugadores en línea muy rápidamente enviando múltiples solicitudes, cada una conteniendo una gran porción de posibles IDs de jugador.

La táctica general de explotación para todos los juegos

Si bien el RCE no se traslada exactamente a todos los juegos, la idea central del exploit, que le da al atacante redirección de código arbitrario, es la misma. Si esto se puede lograr, es muy probable que se pueda encontrar una cadena de llamadas virtuales o una cadena ROP específica del juego. Este "primer paso" utiliza las siguientes vulnerabilidades:

Footnotes

  1. Para Dark Souls III Ver. 1.15. El tamaño máximo teórico de la carga útil depende del diseño de la pila y, por lo tanto, variará según el juego y la versión. ↩

Descargar herramienta