Home Homebrew Pubblicati gli script e gli strumenti relativi all’exploit Byepervisor

[Scena PS5] Pubblicati gli script e gli strumenti relativi all’exploit Byepervisor

26
0

Come promesso, il developer SpecterDev ha rilasciato il codice sorgente di Byepervisor, l’exploit per l’hypervisor della console PlayStation 5.

Bypervisor, attualmente, è compatibile con i primi firmware della console PlayStation 5, e solo fino alla versione 2.xx. Contiene due vulnerabilità e catene di exploit, che sono indipendenti l’una dall’altra e possono essere utilizzate separatamente.

Uno degli exploit è incluso principalmente per motivi di conservazione (/_old_jump_table_exploit), mentre l’altro, chiamato QA flags exploit, è quello principale.

Jump Table Exploit

Il primo exploit sfrutta una vulnerabilità relativa alle tabelle di salto del codice dell’hypervisor, condivise con il kernel guest. Come detto in precedenza, si trova nella cartella /_old_jump_table_exploit/.

Questo exploit consente di dirottare l’entry della jump table per la chiamata hypercall VMMCALL_HV_SET_CPUID_PS4, permettendo l’esecuzione di codice nell’hypervisor.

Attraverso una catena ROP, è possibile disabilitare il Nested Paging (NPT) e il Guest Mode Execute Trap (GMET), consentendo così di disattivare l’eXecute Only Memory (XOM) nei Page Table Entries (PTE) del kernel e di abilitarne la scrittura.

Questo metodo richiede un numero considerevole di gadget e offset, motivo per cui non viene considerato l’exploit principale.

Inoltre, attualmente interrompe l’hypervisor solo sul core in cui viene eseguita la ROP chain, mentre rimane attivo su altri core, che dovrebbero essere invece disattivati.

QA Flag Exploit

L’exploit principale sfrutta il fatto che i flag di Quality Assurance (QA) del sistema sono condivisi tra l’hypervisor e il kernel guest.

Quando l’hypervisor viene inizializzato, il codice di inizializzazione per la costruzione delle tabelle di pagina annidate controlla i flag QA per il flag di debug di System Level (SL).

Se questo flag è attivo, le PTE annidate non avranno impostato il bit xotext per le pagine .text del kernel, e queste pagine avranno anche il bit di scrittura abilitato.

Questi flag non vengono re-inizializzati dal caricatore sicuro al risveglio dalla modalità di sospensione, mentre l’hypervisor sì.

Attivando il flag SL, mettendo il sistema in modalità di sospensione e riprendendolo, è possibile andare a modificare le tabelle di pagina del kernel guest per rendere le pagine .text del kernel leggibili e scrivibili, permettendo di eseguire il dump del kernel e implementare hook e patch.

Note importanti

  • Attualmente, solo il firmware 2.50 è supportato per l’Homebrew Enabler (HEN), con il supporto per altre versioni del firmware previsto per il futuro.
  • Il payload dell’exploit (byepervisor.elf) deve essere inviato due volte, una prima di sospendere il sistema e di nuovo dopo il risveglio. Sarà necessario mettere manualmente il sistema in modalità di riposo.
  • Al momento, il dump del kernel tramite l’exploit dei flag QA non includerà la regione .data dell’hypervisor; per ottenerla, si può eseguire il dump utilizzando l’exploit della jump table o disabilitare prima il nested paging (questo è un obiettivo futuro).

Funzionalità attualmente incluse

L’exploit include codice per il dump del kernel (commentato, poiché l’esecuzione di questo codice causerà un panic di sistema cercando di eseguire il dump della memoria non mappata), codice per decriptare le librerie di sistema SELFs tramite TCP e l’Homebrew Enabler (HEN) per il firmware 2.50.

Come utilizzare

Per utilizzare l’exploit, è necessario eseguire la catena di exploit UMTX tramite webkit o BD-J e avviare un caricatore ELF. Inviare byepervisor.elf, mettere il sistema in modalità di riposo e accenderlo di nuovo.

Inviare di nuovo byepervisor.elf (se si utilizza il caricatore ELF di John Tornblom, dovrebbe continuare ad accettare payload dopo il risveglio; in caso contrario, sarà necessario rieseguire l’exploit UMTX).

Sviluppi futuri

Tra i futuri miglioramenti ci sono il supporto per più firmware, rendere necessaria l’invio di byepervisor.elf solo una volta, la sospensione automatica del sistema e la patching dei vmcbs con l’exploit dei flag QA per dumpare i dati dell’hypervisor.

Download: Source code Byepervisor

Fonte: x.com

LASCIA UN COMMENTO

Per favore inserisci il tuo commento!
Per favore inserisci il tuo nome qui

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.