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
Byepervisor — Um exploit de hipervisor para PS5 em firmwares 1.xx-2xx. | Kitploit
Ferramentas/GitHubGitHub/ps5dev/byepervisor
Segurança de Sistemas EmbarcadosEscalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoEngenharia ReversaVirtualização para SegurançaExploração de Binários
GitHubps5dev/byepervisor

Byepervisor

Um exploit de hipervisor para PS5 em firmwares 1.xx-2xx.

Ver Repositório
355236há 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

Byepervisor


Resumo

Exploit do hypervisor do PS5 para firmware <= 2.xx. Duas vulnerabilidades e cadeias de exploit estão contidas no repositório, são independentes entre si e qualquer uma pode ser usada. Um exploit é fornecido principalmente apenas para preservação (/_old_jump_table_exploit), apenas a cadeia de exploit primária precisa ser usada (exploit de flags de QA).

Esta pesquisa foi apresentada na hardwear.io NL 2024, os slides podem ser encontrados aqui. A palestra será publicada em breve.

Exploit de Jump Table

O primeiro exploit usa uma vulnerabilidade em que as jump tables do código do hypervisor são compartilhadas com o kernel convidado, e está contido em /_old_jump_table_exploit/. Ao sequestrar a entrada da jump table para a hiperchamada VMMCALL_HV_SET_CPUID_PS4, a execução de código no hypervisor pode ser alcançada. Executamos uma cadeia de ROP que desativa a Nested Paging (NPT) e a Guest Mode Execute Trap (GMET), o que nos permite desativar a eXecute Only Memory (XOM), também conhecida como xotext, nas entradas da tabela de páginas (PTEs) do kernel para despejá-la, além de permitir a escrita nas PTEs para também fazer hook/patch no kernel.

Este método requer um bom número de gadgets e offsets, que é a principal razão pela qual este exploit não é o principal. Atualmente, ele também só quebra o hypervisor no núcleo em que a cadeia de ROP é executada; o hypervisor ainda está ativo em outros núcleos e precisaria ser desativado.

Exploit de Flags de QA

O exploit principal e recomendado aproveita o fato de que as flags de Quality Assurance (QA) do sistema são compartilhadas entre o hypervisor e o kernel convidado. Quando o hypervisor inicializa, o código de inicialização para construir as tabelas de páginas aninhadas verifica as flags de QA para a flag de depuração System Level (SL). Se essa flag estiver definida, as entradas da tabela de páginas aninhadas (PTEs) não terão o bit xotext definido para as páginas .text do kernel e, além disso, as páginas .text do kernel também terão o bit de escrita definido.

Essas flags não são reinicializadas pelo secure loader ao retomar do modo de suspensão, embora o hypervisor seja. Ao definir a flag SL, colocar o sistema em suspensão e retomar, podemos editar as tabelas de páginas do kernel convidado para tornar as páginas .text do kernel legíveis/graváveis, permitindo o despejo do kernel e hooks/patches.

Notas Importantes

  • Atualmente, apenas o FW 2.50 é suportado para o Homebrew Enabler (HEN); suporte para outras versões de firmware será adicionado posteriormente.
  • O payload do exploit (byepervisor.elf) precisará ser enviado duas vezes: uma antes de suspender o sistema e outra após retomar.
  • Você terá que colocar o sistema em modo de descanso manualmente.
  • O despejo do kernel do exploit de flags de QA não conterá a região .data do hypervisor no momento; se isso for importante para você, faça o despejo usando o exploit de jump table após portar ou desative a nested paging primeiro (isto é um TODO)

Atualmente incluído

  • Código de despejo do kernel (comentado; executar este código irá causar pânico no sistema, pois tentará despejar o máximo possível antes de atingir memória não mapeada)
  • Código para descriptografar SELFs de bibliotecas do sistema via TCP
  • Homebrew enabler (HEN) para firmware 2.50 (fself+fpkg)

Notas de compilação

Este payload de exploit é compilado usando o PS5-Payload-Dev SDK. Observe também que a compilação de hen/ é um pouco especial, pois é compilada em um binário flat que é copiado para uma code cave do kernel. A totalidade do código em hen/ é executada em modo supervisor/kernel.

Como usar

  1. Execute a cadeia de exploit UMTX no webkit ou BD-J e execute um carregador de ELF
  2. Envie byepervisor.elf
  3. Coloque o sistema em modo de descanso
  4. Ligue o sistema novamente
  5. Envie byepervisor.elf novamente (se você usar o carregador de ELF do John Tornblom, o carregador de ELF deve continuar aceitando payloads após a retomada; se não, o exploit UMTX precisará ser executado novamente)

Trabalho futuro

  • Suportar mais firmwares (offsets)
  • Fazer com que byepervisor.elf só precise ser enviado uma vez
  • Suspender o sistema automaticamente?
  • Aplicar patch nos vmcbs com o exploit de flags de QA para despejar dados do hypervisor

Créditos / Agradecimentos

  • ChendoChap
  • flatz
  • fail0verflow
  • Znullptr
  • kiwidog
  • sleirsgoevy

Discord

Os interessados em contribuir com a pesquisa/desenvolvimento para PS5 podem entrar em um discord que eu configurei aqui.

Baixar ferramenta