Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
PS5-UMTX-Jailbreak — Um exploit de kernel baseado em webkit e jailbreak para PS5 | Kitploit
Ferramentas/GitHubGitHub/ps5dev/ps5-umtx-jailbreak
Escalada de PrivilégiosExploraçãoPós-ExploraçãoExploração de Binários
GitHubps5dev/ps5-umtx-jailbreak

PS5-UMTX-Jailbreak

Um exploit de kernel baseado em webkit e jailbreak para PS5

Ver Repositório
24739há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

PS5 UMTX Jailbreak


Resumo

Este repositório contém um exploit ROP de WebKit da vulnerabilidade de use-after-free de corrida UMTX (CVE-2024-43102) reportada pela Synacktiv. É basicamente um port da estratégia de exploit do fail0verflow e do flatz. Ele abusa da UAF para obter um mapeamento de leitura/escrita na pilha de uma thread do kernel e usa leituras e escritas em pipes para estabelecer uma primitiva de leitura/escrita arbitrária (não exatamente ideal) no kernel. Essa leitura/escrita é então evoluída para uma melhor, que utiliza um par de sockets ipv6 e um par de pipes para uma leitura/escrita estável que pode ser passada para payloads da mesma forma que era possível com o exploit de kernel IPV6 do PS5 anterior.

A própria página é uma versão reduzida e modificada do PS5 Exploit Host do idlesauce, pois ele já havia feito o trabalho de integrar o psfree ao estilo de código que usei anteriormente. Este host também é minha escolha pessoal para executar as coisas, pois é muito fluido e integra payloads úteis; espero que ele seja atualizado para suportar este exploit em um futuro próximo <3.

Por fim, um carregador de payloads será iniciado para escutar por ELFs de payloads na porta 9021. Recomendo o PS5 Payload Dev SDK, pois ele deve ter compatibilidade total com este carregador quando os offsets de kernel forem adicionados.

Esta vulnerabilidade afeta do firmware 1.00 ao firmware 7.61, porém FW >= 3.00 parecem ter mitigações adicionais que exigem ajustes no exploit para funcionar. Como estou principalmente interessado apenas em firmwares mais antigos, este exploit não suporta FW >= 3.00 por enquanto. Além disso, a vulnerabilidade de WebKit que usamos em cadeia foi corrigida no 6.00, então outro exploit de WebKit que alcance leitura/escrita em userland será necessário para esses sistemas. Novamente, como não estou focado em firmwares mais altos, isso ficou incompleto por enquanto.

Notas Importantes

  • O 3.00+ tem menor confiabilidade e pode demorar mais para executar; se você ficar preso em "triggering race" por um tempo, feche o navegador e tente novamente.
  • No 5.00+, o carregador de ELF atualmente não funciona, porque não podemos mais invocar o dlsym corretamente; o SDK de payloads precisa de mudanças.

Os seguintes firmwares são atualmente suportados:

  • 1.xx [1.00, 1.01, 1.02, 1.05, 1.10, 1.11, 1.12, 1.13, 1.14]
  • 2.xx [2.00, 2.20, 2.25, 2.26, 2.30, 2.50, 2.70]
  • 3.xx [3.00, 3.20]
  • 4.xx [4.00, 4.02, 4.03, 4.50, 4.51]
  • 5.xx [5.00, 5.02, 5.10, 5.50]

Incluído atualmente

  • Obtém leitura/escrita arbitrária no kernel
  • Habilita o menu de configurações de depuração (nota: você precisará sair totalmente das configurações e voltar para vê-lo).
  • Obtém privilégios de root e sai da sandbox/jail.
  • Executa o carregador de ELF do John Tornblom na porta 9021 para que payloads sejam executados (em < 5.00FW)

Limitações

  • Este exploit alcança leitura/escrita, mas não execução de código. Isso porque atualmente não podemos despejar o código do kernel para gadgets, já que as páginas .text do kernel são marcadas como eXecute Only Memory (XOM). Tentar ler ponteiros do .text do kernel causará pânico!
  • Devido ao exposto acima + o hipervisor (HV) impondo proteção de escrita no kernel, este exploit também não pode instalar patches ou hooks no espaço do kernel.
  • A Control Flow Integrity (CFI) refinada baseada em Clang está presente e é aplicada.
  • Supervisor Mode Access Prevention/Execution (SMAP/SMEP) não pode ser desabilitada, devido ao HV.
  • FW >= 6.00 exige um novo exploit de WebKit e, portanto, não é suportado.

Como usar

  1. Configure o fakedns via dns.conf para apontar manuals.playstation.net para o endereço IP do seu PC
  2. Execute o DNS falso: python fakedns.py -c dns.conf
  3. Execute o servidor HTTPS: python host.py
  4. Vá para as configurações avançadas de rede do PS5 e defina o DNS primário para o endereço IP do seu PC e deixe o secundário em 0.0.0.0
    1. Às vezes o manual ainda não carrega e é preciso reiniciar, não sei por quê, é bem estranho
  5. Vá para o manual do usuário nas configurações e aceite o aviso de certificado não confiável, execute
  6. Opcional: Descomente o código de dump do kernel .data e execute o script do servidor de dump (nota: endereço/porta devem ser substituídos no exploit.js).

Trabalho futuro

  • Atualizar a estratégia do exploit para FW >= 3.xx para considerar as mitigações
  • Adicionar offsets para mais firmwares (mais antigos)
  • Adicionar exploit de WebKit para FW >= 6.00.

Usando o carregador de ELF

Para usar o carregador de ELF, execute o exploit até a conclusão. Ao concluir, ele executará um servidor na porta :9021. Conecte-se e envie seu ELF para o PS5 via TCP e ele o executará. Este carregador deve continuar aceitando e executando payloads mesmo após sair do navegador.

Notas sobre a estratégia do exploit

Double free inicial

A estratégia para este exploit vem em grande parte do fail0verflow e do flatz. Veja o writeup do chris@accessvector para mais informações sobre a vulnerabilidade. Ao explorá-la, essencialmente obtemos um double free. Podemos usar isso para sobrepor o vmobject de uma pilha do kernel com o de um mapeamento mmap para obter uma janela para a pilha de uma thread do kernel. Essa capacidade muito poderosa nos permite ler/escrever em ponteiros arbitrários do kernel na pilha, derrotando o ASLR e permitindo criar primitivas. A thread cuja pilha temos acesso chamaremos de thread vítima.

Obtendo leitura/escrita arbitrária

Ao criar um pipe e encher o buffer do pipe na thread principal, e então tentar escrever nele usando a thread vítima, a thread vítima ficará bloqueada esperando que espaço seja liberado no buffer. Durante esse tempo, podemos usar nossa janela para a pilha do kernel para alterar os ponteiros iovec para ponteiros de kernel e definir flags para que sejam tratados como endereços de kernel. Ao então ler o pipe na thread principal, podemos obter leitura arbitrária do kernel.

Da mesma forma, ao fazer a thread vítima ler no pipe, ela ficará bloqueada esperando dados recebidos. Podemos então, novamente, sobrescrever os ponteiros iovec e torná-los ponteiros de kernel, e escrever dados na thread principal para obter escrita arbitrária do kernel.

Aprimorando a leitura/escrita arbitrária

Neste estágio, temos uma leitura/escrita arbitrária sem restrições reais, mas estamos presos ao uso de multithreading e bloqueio para que funcione, o que não é ideal. Então usamos a R/W para iterar a tabela de FDs do processo e sobrepor os pktopts de dois sockets IPV6. Podemos então criar outra leitura/escrita arbitrária via o sockopt IPV6_PKTINFO. Essa primitiva de leitura/escrita novamente não é ideal, pois é limitada em tamanho e conteúdo devido à opção de socket subjacente. Mantemos essa etapa principalmente para emular o cenário do exploit IPV6, no qual a maioria dos payloads e afins foram construídos.

Podemos obter uma leitura/escrita melhor via pipes. Ao iterar novamente a tabela de FDs do processo e modificar os objetos de buffer pipemap, podemos estabelecer leitura/escrita. O par de sockets IPV6 é usado como mecanismo para controlar o buffer pipemap.

Corrigindo/contornando a corrupção

Se deixarmos as coisas como estão e tentarmos fechar o navegador, o sistema irá travar. Isso porque a limpeza do processo tentará liberar a pilha do kernel que já foi liberada. Para evitar isso, fazemos duas coisas:

  1. Vazar intencionalmente o refcount do FD de shm que usamos para o double free inicial, para que ele não seja liberado na saída do processo
  2. Zerar o td_kstack da thread vítima na lista de threads do processo.

Notas de estabilidade

Em FW < 3.00, este exploit é muito estável. O único ponto crítico de falha é não conseguir sobrepor os vmobjects. Em firmwares mais altos, essa sobreposição é mais difícil de alcançar devido a supostas mitigações no nível do alocador de páginas/heap.

Créditos / Agradecimentos

  • fail0verflow
  • flatz
  • ChendoChap
  • SlidyBat
  • abc/psfree
  • idlesauce
  • Znullptr
  • zecoxao
  • SocracticBliss
  • John Tornblom

Discord

Aqueles interessados em contribuir com pesquisa/desenvolvimento do PS5 podem entrar em um discord que eu configurei aqui.

Baixar ferramenta