# Guia de instalação e utilização na PS5 Este documento descreve o deployment do Relapse Exploit em Docker, a configuração da PS5, opções de DNS para bloquear PSN/updates e os cuidados operacionais. Use exclusivamente numa consola que lhe pertença ou para a qual tenha autorização. O exploit modifica memória do kernel, remove o sandbox e executa payloads com privilégios elevados. Pode provocar kernel panic, perda de dados ou banimento. ## Estado desta instalação Na rede onde este projeto foi inicialmente instalado: - servidor: `net-utils01`; - IP LAN: `192.168.20.30`; - diretório: `/opt/relapse-exploit-docker`; - URL: `http://192.168.20.30:8000/`; - imagem: `relapse-exploit:local`; - porta interna: `8080`; - porta publicada: `8000`. A porta 8080 do host já pertence ao UniFi e não deve ser reutilizada. ## Instalar no servidor O repositório está disponível por HTTP no Gitea local: ```sh git clone --recurse-submodules \ http://192.168.20.20:3000/TinyBacklog/relapse-exploit-docker.git \ /opt/relapse-exploit-docker cd /opt/relapse-exploit-docker docker compose up -d --build ``` O build verifica o SHA-256 dos cinco payloads antes de criar a imagem. Se algum hash divergir, o build deve falhar em vez de incluir silenciosamente o binário. Confirmar o serviço: ```sh cd /opt/relapse-exploit-docker docker compose ps docker compose logs --tail=100 curl -I http://127.0.0.1:8000/ ``` O container deve aparecer como `healthy`. A partir de outra máquina da LAN: ```sh curl -I http://192.168.20.30:8000/ ``` ## Preparar a PS5 ### Compatibilidade Esta versão do Relapse declara suporte para firmware 7.00 a 13.60. Não atualizar a consola para tentar obter compatibilidade. Confirmar primeiro o firmware instalado. ### Desativar atualizações automáticas Na PS5, abrir: `Definições > Sistema > Software do sistema > Atualização e definições do software do sistema` Desativar: - transferência automática de ficheiros de atualização; - instalação automática de ficheiros de atualização. Em: `Definições > Sistema > Poupança de energia > Funcionalidades disponíveis no modo de repouso` desativar temporariamente `Permanecer ligado à Internet`. Estas opções são uma camada adicional; isoladamente não garantem que uma atualização não seja transferida. ## DNS e bloqueio da PSN Editar a ligação ativa em: `Definições > Rede > Definições > Configurar ligação à Internet` Selecionar a rede, carregar em `Options` e abrir `Definições avançadas`: - endereço IP: automático; - nome do host DHCP: não especificar; - DNS: manual; - MTU: automático; - proxy: não utilizar. ### Opção 1: bloquear toda a resolução DNS É a opção mais conservadora quando só é necessário aceder ao servidor por IP: ```text DNS primário: 127.0.0.1 DNS secundário: 127.0.0.1 ``` O teste de Internet pode falhar, mas a ligação à LAN permanece disponível. Abrir o exploit diretamente em: ```text http://192.168.20.30:8000/ ``` Esta opção pressupõe que já existe uma forma de abrir o browser oculto e introduzir ou clicar no endereço local. ### Opção 2: DNS público recomendado pelo upstream O README do Relapse recomenda atualmente: ```text DNS primário: 45.56.67.85 DNS secundário: 0.0.0.0 ``` Não configurar Google, Cloudflare, o router ou outro resolvedor normal como DNS secundário: a consola pode usá-lo e contornar o bloqueio. Um DNS público implica confiar no respetivo operador. Pode ficar indisponível, alterar o destino do Guia do Utilizador ou ser contornado por um ISP que intercepte DNS. Confirmar sempre a página e o endereço apresentados antes de executar. ### Opção 3: DNS local A solução preferível a longo prazo é um DNS controlado na LAN, por exemplo no `net-utils01`, que: - bloqueie domínios PlayStation/PSN e servidores de atualização; - encaminhe as restantes consultas apenas se isso for desejado; - redirecione `manuals.playstation.net` para o host de exploit apropriado; - registe consultas para permitir auditoria. Nesse cenário, a PS5 usaria: ```text DNS primário: 192.168.20.30 DNS secundário: 0.0.0.0 ``` O serviço DNS não faz parte deste Compose e deve ser instalado e auditado separadamente. Também é possível bloquear o acesso WAN da PS5 no router, mantendo apenas a comunicação LAN; esta é uma camada de proteção mais forte do que DNS. DNS só traduz nomes para endereços IP; não redireciona portas. Para servir o Guia do Utilizador a partir do host local, é também necessário disponibilizar o site nas portas HTTP/HTTPS esperadas pelo manual ou colocar um reverse proxy à frente da porta 8000. O Compose atual publica apenas HTTP em `8000`. ## Abrir pelo Guia do Utilizador Com um DNS que redirecione o manual: 1. abrir `Definições`; 2. abrir `Guia do Utilizador, saúde e segurança e outras informações`; 3. abrir `Guia do Utilizador`; 4. confirmar que aparece a página Relapse esperada; 5. se for importante usar a instalação local, confirmar que o destino é `192.168.20.30:8000` e não um host público inesperado. O DNS público pode abrir diretamente uma página de exploit própria. Isso não prova que a página veio do container local. ## Executar o exploit 1. Abrir `http://192.168.20.30:8000/` na PS5. 2. Aguardar a etapa WebKit e a criação da primitiva de memória. 3. Aguardar a exploração do kernel e a escalada de privilégios. 4. Confirmar no ecrã mensagens equivalentes a: ```text ARW ready Kernel: privileges ready elfldr is listening on port 9021 ``` 5. Apenas depois de o ELF loader estar pronto, carregar em `R2` para enviar: - `kstuff.elf`; - `shadowmountplus.elf`; - `etaHEN.elf`. O exploit pode precisar de várias tentativas. Se o browser bloquear ou ocorrer kernel panic, reiniciar completamente a consola antes de repetir. Não assumir que uma mensagem genérica de conclusão prova que todas as etapas terminaram corretamente. ## Portas e serviços posteriores - `8000/TCP` no servidor: página Relapse; - `9021/TCP` na PS5: ELF loader; - `10101/TCP` na PS5: API HTTP do ShadowMount+, por defeito em loopback. Manter os serviços de administração e carregamento de payloads limitados a loopback ou à LAN confiável. Nunca publicar estas portas na Internet. O ShadowMount+ suporta operações como mount, unmount, copy, move e uninstall. ## Operação no net-utils01 Estado e logs: ```sh ssh net-utils01 cd /opt/relapse-exploit-docker docker compose ps docker compose logs -f ``` Reiniciar: ```sh docker compose restart ``` Parar e iniciar: ```sh docker compose down docker compose up -d ``` Atualizar o wrapper Docker: ```sh cd /opt/relapse-exploit-docker git pull --ff-only git submodule update --init --recursive docker compose up -d --build ``` Não atualizar manualmente o submodule para o commit mais recente sem rever as alterações e atualizar conscientemente `payloads.sha256`. ## Diagnóstico ### A página não abre No servidor: ```sh docker compose ps curl -I http://127.0.0.1:8000/ ss -ltn | grep ':8000' ``` De outro equipamento da LAN: ```sh curl -I http://192.168.20.30:8000/ ``` Confirmar que a PS5 está na mesma rede e que isolamento de clientes Wi-Fi/AP não impede comunicação com `192.168.20.30`. ### O Guia do Utilizador abre a página oficial ou outro host O DNS configurado não está a redirecionar `manuals.playstation.net` para o destino esperado, ou o ISP/router está a interferir com DNS. Isto é independente do container HTTP. Usar o URL local diretamente ou instalar um DNS local controlado. ### O build falha nos hashes Não ignorar o erro. Confirmar o commit do submodule e investigar os binários: ```sh git submodule status sha256sum app/payloads/* cat payloads.sha256 ``` ### O exploit bloqueia ou reinicia a consola É comportamento possível numa race/UAF de kernel. Desligar completamente a PS5, voltar a ligar e tentar novamente. Evitar várias tentativas consecutivas sem reboot depois de uma falha no kernel. ## Limites de segurança O container reduz a exposição do servidor: corre como UID/GID 65532, usa filesystem read-only, não tem capabilities Linux, aplica `no-new-privileges`, bloqueia listagens e não inclui `.git`. Estas proteções não tornam os payloads seguros. Os ELF incluídos são binários pré-compilados, executados depois de obter acesso privilegiado à consola. Manter a PS5 numa rede isolada, não usar a conta principal e conservar backups dos dados.