
Um exploit de kernel experimental baseado em webkit (Arb. R/W) para o PS5 em <= 4.51FW
Este repositório contém uma implementação experimental de ROP em WebKit de um exploit de kernel para PS5 baseado no IPV6 Use-After-Free (UAF) do TheFlow, que foi reportado no HackerOne. A estratégia do exploit é, em sua maior parte, baseada no PoC BSD/PS4 do TheFlow, com algumas alterações para acomodar o irritante layout de memória do PS5 (para mais detalhes, veja a seção Notas de Pesquisa). Ele estabelece uma primitiva de leitura arbitrária / escrita (semi-arbitrária). Este exploit e suas capacidades têm muitas limitações e, por isso, é destinado principalmente a desenvolvedores que queiram brincar para fazer engenharia reversa de algumas partes do sistema.
Com as melhorias de estabilidade mais recentes, a confiabilidade está em cerca de 80%. Este documento conterá informações de pesquisa sobre o PS5, e este exploit passará por desenvolvimento e melhorias contínuas com o passar do tempo.
Os interessados em contribuir com a pesquisa/desenvolvimento para o PS5 podem entrar no discord que criei aqui.
O exploit agora deve suportar os seguintes firmwares:
dns.conf para apontar manuals.playstation.net para o endereço IP do seu PCpython fakedns.py -c dns.confpython host.py0.0.0.0
Para usar o carregador de ELF, execute o exploit até a conclusão. Ao concluir, ele executará um servidor na porta :9020. Conecte-se e envie seu ELF para o PS5 através dessa porta e ele o executará. Supondo que o ELF não derrube o navegador, ele pode continuar executando ELFs indefinidamente.
Este exploit funciona em 5 estágios e, em sua maior parte, segue a mesma estratégia de exploit do PoC do theflow.
ip6_pktopts e faça dois sockets apontarem para o mesmo pktopts / sobreposição (socket mestre <-> socket de spray de sobreposição)pktopts no socket mestre e falsifique-o com um spray de ip6_rthdr contendo uma sobreposição de tclass marcada.pktopts/rthdr para vazar um kqueue do slab 0x200 e pktopts do slab 0x100.pktopts novamente e encontre o socket de sobreposição para usar IPV6_RTHDR como primitiva de leitura/escrita.A estabilidade deste exploit está em cerca de 30% 80-90%, e tem dois pontos potenciais de falha. Em ordem decrescente de probabilidade observada:
Parece, com base em vários testes e despejos com a primitiva de leitura, que o PS5 voltou ao tamanho de página 0x1000 em comparação com o 0x4000 do PS4.
Também parece que, no PS5, páginas adjacentes raramente pertencem ao mesmo slab, pois você obterá dados extremamente diferentes em páginas adjacentes. O layout da memória parece mais disperso.
Frequentemente, quando o PS5 entra em pânico (pelo menos no contexto do webkit), haverá uma saída de áudio horrível, pois o buffer de áudio é corrompido de alguma forma.
Às vezes, essa corrupção de áudio persiste até a próxima inicialização, não sei por quê.
Semelhante ao PS4, o PS5 exigirá que o botão de energia seja pressionado manualmente duas vezes no console para reiniciar após um pânico.
É normal que o PS5 leve um tempo absurdo para reiniciar após um pânico se estiver isolado da internet (infelizmente). Espere uma inicialização de 3 a 4 minutos.