Il developer Echo Stretch ha recentemente apportato una correzione per l’esecuzione dell’exploit Byepervisor sul firmware 2.70 della console PlayStation 5.
L’exploit Byepervisor sfrutta due vulnerabilità e include due catene di exploit indipendenti, una delle quali è solo a scopo di conservazione (jump table exploit), mentre l’altra, quella primaria, è il QA flags exploit.
✨Bypervisor updated for 2.70 by @StretchEchohttps://t.co/17TVr1TARr
— aldostools🔸Aldo Vargas (@aldostools) November 4, 2024
Jump Table Exploit
Jump Table Exploit si basa su una vulnerabilità che permette l’accesso alle tabelle di salto dell’hypervisor dal kernel.
Alterando la voce di salto per la chiamata VMMCALL_HV_SET_CPUID_PS4, è possibile eseguire una catena ROP che disabilita la Nested Paging e il Guest Mode Execute Trap, permettendo di disabilitare la Execute Only Memory (XOM) nelle tabelle delle pagine kernel e abilitando la scrittura per iniettare patch.
Questo metodo richiede un numero elevato di gadget e funziona solo sul core in cui viene eseguita la catena ROP, rendendolo meno pratico.
QA Flags Exploit
L’exploit raccomandato utilizza invece i flag di qualità (QA) condivisi tra hypervisor e kernel. Quando l’hypervisor avvia le tabelle delle pagine annidate, verifica il flag di debug System Level (SL).
Se impostato, rende leggibili e scrivibili le pagine .text
del kernel. Dopo aver impostato questo flag, mettendo il sistema in modalità riposo e riattivandolo, è possibile modificare le tabelle delle pagine per leggere e scrivere sul kernel.
Note importanti
- Attualmente, solo i firmware elencati sono supportati per l’Homebrew Enabler (HEN); il supporto per altre versioni firmware sarà aggiunto in un secondo momento.
- Il payload dell’exploit (
byepervisor.elf
) dovrà essere inviato due volte: una prima di sospendere il sistema e una seconda volta dopo il ripristino. - Sarà necessario mettere manualmente il sistema in modalità riposo.
- Al momento, il dump del kernel tramite l’exploit dei flag QA non conterrà la regione .data dell’hypervisor; se questo è importante per te, effettua il dump usando l’exploit della jump table dopo averlo portato o disattiva il nested paging prima (da fare).
Attualmente inclusi
- Codice per il dump del kernel (commentato; eseguirlo potrebbe causare un arresto del sistema, poiché tenterà di eseguire il dump della memoria fino a raggiungere aree non mappate).
- Codice per decrittare le librerie di sistema SELFs tramite TCP.
- Homebrew enabler (HEN) (fself+fpkg).
Firmware attualmente supportati
- Completati: 1.12, 1.14, 2.00, 2.20, 2.25, 2.26, 2.30, 2.50, 2.70.
Note di Build
Questo payload dell’exploit è creato utilizzando il toolkit PS5-Payload-Dev. Da notare che la build per hen/
è particolare, poiché viene compilata come un binario flat copiato in una cavità di codice del kernel. L’intero codice in hen/
viene eseguito in modalità supervisor/kernel.
Come usare
- Eseguire la catena di exploit UMTX in webkit o BD-J e avviare un ELF loader.
- Inviare il payload
byepervisor.elf
. - Inserire il sistema in modalità riposo.
- Riaccendere il sistema.
- Inviare nuovamente il payload
byepervisor.elf
(se si utilizza l’ELF loader di John Törnblom, dovrebbe continuare ad accettare payload dopo il ripristino; altrimenti, sarà necessario eseguire nuovamente l’exploit UMTX).
Lavori futuri
- Supportare più firmware (offsets).
- Modificare
byepervisor.elf
affinché sia necessario inviarlo solo una volta. - Automatizzare la sospensione del sistema?
- Patchare i vmcb con l’exploit dei flag QA per eseguire il dump dei dati dell’hypervisor.
Download: Source code Byepervisor
Fonte: x.com