
Remove temporariamente a senha do root usando CVE-2026-31431
[!WARNING] Use isto apenas em sistemas que você possui ou tem autorização para testar.
Remove temporariamente a senha do root, usando a CVE-2026-31431 para permitir escalonamento para root independente de arquitetura sem saber a senha do usuário atual.
Por favor, use com responsabilidade, apenas em sistemas que você está autorizado a testar. Se este método é suportado no seu sistema vai variar, mas funcionou em todos os derivados do Debian que testei.
O PoC no qual isto se baseia basicamente substituía seu UID por todos 0s em /etc/passwd, efetivamente dando a você root. Esta abordagem remove a senha do root, então quando você executa su você obtém root instantaneamente. Isso mantém seu usuário intacto para estabilidade, com a ressalva de que qualquer usuário na máquina pode elevar privilégios até a limpeza. Por não ser uma modificação binária, isso também deve funcionar em todas as arquiteturas (Aarch64 e x64 testados).
python exploit.py [ --shell | --clean | --noclean ]
Sem argumentos, o programa executa, faz as alterações em /etc/passwd e depois as reverte.
--noclean impede que as alterações sejam revertidas após o término.--clean fará apenas a limpeza de uma execução anterior, sem executar o exploit.--shell não fará a limpeza, mas abrirá um shell root com su após executar o exploit.
Para
Remover o 'x' que indica que a senha está armazenada em /etc/shadow fará com que o usuário seja tratado como se não tivesse senha alguma, permitindo um login fácil.
Na época em que escrevi isto, só existiam PoCs conhecidos para CopyFail: um que sobrescrevia um executável SUID e outro que substituía o UID do seu usuário por zeros. Ambos têm casos de uso razoavelmente diferentes se você estiver executando um teste contra um sistema. Sobrescritas de SUID exigem shellcode adaptado à arquitetura do sistema, e modificar seu UID exige que você reautentique com a senha do seu usuário atual, que você pode não saber. O RootRemover frequentemente pode ser usado se esses requisitos atrapalharem.
Isto foi projetado para quando você obtém um shell com um usuário nologin como www-data, não para uma máquina onde você tem uma senha conhecida ou conhece a arquitetura bem o suficiente para preparar shellcode.
*LK*' ou '*NP*' no campo de senha (poderia ser corrigido com escritas encadeadas, só não tive tempo de implementar isso)su (sem argumentos sempre significa root, o PoC do patch de UID parece apenas uma troca para o seu próprio usuário nos logs)/etc/passwd ou /etc/shadow são honrados primeiro afetam se isto funciona em um SOO código real do exploit é do repositório do rootsecdev, eu estou principalmente alterando os bytes que são gravados pelos motivos que descrevi acima.