Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ds3-nrssr-rce — Documentazione e codice proof of concept per CVE-2022-24125 e CVE-2022-24126. | Kitploit
Strumenti/GitHubGitHub/tremwil/ds3-nrssr-rce
Framework di ExploitAnalisi delle VulnerabilitàExploitReverse EngineeringShellcodePenetration TestingApprendimento e FormazioneRed TeamingGenerazione di ShellcodeSviluppo PayloadBinary Exploitation
1698184 anni faRevisionato da Kitploit
GitHub
tremwil/ds3-nrssr-rce

ds3-nrssr-rce

Documentazione e codice proof of concept per CVE-2022-24125 e CVE-2022-24126.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Aggiornamento: Dark Souls III 1.15.1

Un nuovo aggiornamento di gioco, 1.15.1, è stato rilasciato per Dark Souls III il 25/08/2022, insieme al ripristino dei servizi online. Questo aggiornamento ha corretto sia CVE-2022-24125 che CVE-2022-24126, insieme a un'ampia varietà di altre potenziali vulnerabilità di sicurezza presenti nella rete P2P del gioco (letture/scritture fuori dai limiti). Inoltre, tutti gli exploit conosciuti che permettevano di corrompere il salvataggio di altri giocatori sono stati risolti. Molti comuni cheat di poco conto (ad es. "coltello della maledizione") che si potevano incontrare spesso durante il multiplayer online sono stati anche corretti.

ds3-nrssr-rce

Questo repository contiene codice proof of concept e documentazione per il più recente exploit RCE che colpisce i giochi FROM SOFTWARE, CVE-2022-24126. Sebbene teoricamente possibile in altri giochi, l'attenzione è su Dark Souls III poiché è il gioco su cui è stata condotta la mia ricerca. Al momento il codice proof of concept esiste solo per Dark Souls III; la vulnerabilità è stata confermata presente in:

  • Dark Souls 1 PTDE (crediti: LukeYui)
  • Dark Souls Remastered (crediti: metal-crow)
  • Dark Souls 2 (incluso Scholar) (crediti: LukeYui)
  • Dark Souls 3 (fino a 1.15.0) (crediti: tremwil)

Il codice vulnerabile è presente anche in Sekiro (crediti: LukeYui), sebbene non ci sia modo di attivarlo. La presenza in Demon's Souls non è stata confermata ma è molto probabile. Mentre il network test chiuso è stato colpito da ciò, la versione finale di Elden Ring non lo è. Di fatto, un'enorme lista di crash di rete, letture/scritture fuori dai limiti ed exploit che permettevano ai giocatori di modificare i dati di gioco dei pari, presenti in Dark Souls III, sono stati corretti in Elden Ring. Complimenti a LukeYui per aver compilato questa lista e a FROM SOFTWARE per aver agito rapidamente! Sono felice di dire che Elden Ring è innegabilmente il titolo FROM SOFTWARE più sicuro per quanto riguarda l'entità del danno che gli hacker possono infliggere.

Dissipare le idee sbagliate

Contrariamente a quanto si crede, questo NON è un exploit di rete peer-to-peer. È correlato al server di matchmaking e quindi molto più grave, poiché non è necessario partecipare ad alcuna attività multiplayer per essere vulnerabili a causa di un'altra vulnerabilità del server di matchmaking (CVE-2022-24125).

In Dark Souls III, un attaccante malintenzionato che abusasse di ciò sarebbe stato in grado di eseguire in modo affidabile un payload fino a 1,3 MiB1 di shellcode su ogni macchina di un giocatore online in pochi secondi.

Considerando che il gioco aveva una base di giocatori contemporanei media di circa 20.000 nei mesi precedenti la chiusura del server, era chiaramente un problema che necessitava di una correzione immediata, specialmente con la possibilità che fosse presente in Elden Ring. Poiché FROM SOFTWARE non aveva ancora agito dopo oltre 40 giorni dal mio rapporto iniziale con video proof of concept e documentazione dettagliata dell'exploit (su cui gran parte di questo readme si basa), ho deciso di dimostrare pubblicamente l'esistenza dell'exploit in modo benigno, nella speranza di attirare l'attenzione per farlo affrontare dagli sviluppatori, e ha funzionato.

Indice dei contenuti

  • Riepilogo dell'Exploit (CVE-2022-24126)
  • Vettori di Distribuzione (CVE-2022-24125)
  • La Tattica Generale di Sfruttamento per Tutti i Giochi
    • Bug #1: Nessun Controllo dei Limiti nel Parser dell'elenco delle Voci
    • Bug #2: Superamento del Buffer nel Parser NRSessionSearchResult
    • Preparare il Terreno per la Catena ROP
  • Codice Proof of Concept per Dark Souls III
    • Esecuzione del codice PoC
    • Vettore d'Attacco
    • Catena di Reindirizzamento delle Chiamate Virtuali
    • Informazioni Extra

Riepilogo dell'Exploit (CVE-2022-24126)

Un controllo errato dei limiti su un buffer dello stack e sul campo della dimensione dei dati durante l'analisi dei dati di matchmaking NRSessionSearchResult permette a un attaccante di eseguire codice arbitrario. L'overflow dello stack consente di sovrascrivere i due byte inferiori di vftable_ptr dell'oggetto DLMemoryInputStream utilizzato internamente dal lettore di flusso, reindirizzando l'esecuzione a codice vicino accuratamente scelto. Lo sfruttamento intelligente della struttura dell'oggetto DLMemoryInputStream e del campo della dimensione dei dati permette quindi di ottenere un reindirizzamento arbitrario del codice, con RCX che punta all'indirizzo del nostro pacchetto. Da lì, una serie di reindirizzamenti di codice tramite chiamate virtuali con offset diversi (che ora salteranno agli indirizzi che abbiamo scritto nel buffer del pacchetto) può essere utilizzata per ottenere l'esecuzione di codice arbitrario.

Vettori di Distribuzione (CVE-2022-24125)

I vettori di distribuzione sono ciò che rende questo particolare RCE particolarmente grave (al di là del fatto che è già un RCE). L'exploit viene trasmesso attraverso richieste push di matchmaking contenenti informazioni NRSessionSearchResult. Ciò significa che l'attaccante può prendere di mira chiunque si unisca alla sua sessione online. In particolare, per DS3:

  • evocazioni (PushRequestSummonSign)
  • invasori spiriti oscuri (PushRequestAllowBreakInTarget)
  • giocatori che si uniscono tramite covenant (PushRequestVisit)
  • combattenti dell'arena (PushRequestAcceptQuickMatch)

Questo è già piuttosto grave, ma il vero potenziale è sbloccato dalla richiesta RequestSendMessageToPlayers:

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

L'host usa questa richiesta per inviare direttamente il push message PushRequestAllowBreakInTarget agli invasori in modo che possano ottenere le coordinate di spawn e unirsi alla sessione P2P. Tutto qui. È l'unico modo in cui questa richiesta viene utilizzata dal gioco.

Eppure permette a qualsiasi client di inviare messaggi push arbitrari a centinaia di migliaia di giocatori specifici.

Non posso sottolineare abbastanza quanto sia terribilmente insicuro. Qualsiasi giocatore può praticamente impersonare il server di matchmaking. Usando questa richiesta per inviare l'exploit tramite un PushRequestVisit, qualsiasi giocatore online può essere preso di mira a distanza dall'attaccante purché il suo ID giocatore sia noto. L'attaccante può anche inviare l'exploit all'intera base di giocatori online molto rapidamente inviando più richieste, ciascuna contenente un grande intervallo di possibili ID giocatore.

La Tattica Generale di Sfruttamento per Tutti i Giochi

Sebbene l'RCE non sia esattamente portabile a ogni gioco, l'idea centrale dell'exploit che fornisce all'attaccante il reindirizzamento arbitrario del codice è la stessa. Se questo può essere ottenuto, è molto probabile che si possa poi trovare una catena di chiamate virtuali o una catena ROP specifica per il gioco. Questo "primo passo" sfrutta le seguenti vulnerabilità:

Footnotes

  1. Per Dark Souls III Ver. 1.15. La dimensione massima teorica del payload dipende dal layout dello stack e quindi varierà in base al gioco e alla versione. ↩

Scarica lo strumento