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
copyfail-deconstructed — Versão de fácil compreensão do CVE-2026-31431 | Kitploit
Ferramentas/GitHubGitHub/bootsareme/copyfail-deconstructed
Escalada de PrivilégiosExploraçãoShellcodeAprendizado e EducaçãoDesenvolvimento de PayloadsExploração de Binários
GitHubbootsareme/copyfail-deconstructed

copyfail-deconstructed

Versão de fácil compreensão do CVE-2026-31431

Ver Repositório
31há 3 mesesAinda não revisado

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

copyfail-deconstructed

Versão fácil de entender do CVE-2026-31431, uma técnica de escalonamento de privilégios que permite que qualquer pessoa se torne root. O proof-of-concept original está aqui: https://github.com/theori-io/copy-fail-CVE-2026-31431, mas está fortemente comprimido e minificado para que tenha a menor pegada possível. Este repositório tenta decompor esse código de uma forma mais legível, incluindo o que o código faz, como o payload é carregado e como atingir diferentes arquiteturas. Veja o relatório mais técnico aqui: https://xint.io/blog/copy-fail-linux-distributions.

Uso

Por padrão, executar python3 copyfail.py executará um shellcode x64 explorando /usr/bin/su. Você pode fornecer seu próprio payload executando python3 copyfail.py [caminho/para/payload.personalizado.elf]. Como exemplo, há um assembly de shellcode ARM64 dentro de payloads/. Então, para testar em dispositivos ARM64, você deve primeiro construir um payload minimizado com nosso script de linker personalizado:

root@kitploit:~
as -o shellcode_aarch64.o payloads/shellcode_aarch64.S
ld -nostdlib -static -o shellcode_aarch64.elf shellcode_aarch64.o
strip -s shellcode_aarch64.elf

Então você pode executar o exploit principal usando python3 copyfail.py shellcode_aarch64.elf.

Para executar em C:

  1. compilar (visto abaixo)
  2. ./c_copyfail que executa o mesmo shellcode padrão acima.
  • Você pode novamente fornecer seu próprio payload executando ./c_copyfail [caminho/para/payload.personalizado.elf].

Para compilar a versão em C:

root@kitploit:~
cd c_port
make

Especificamente, isso compila o arquivo .S alvo em um binário bruto que é gerado como um array de unsigned char em C:

root@kitploit:~
gcc -c payloads/[shellcode].S
objcopy -O binary [shellcode].o [payload].raw
xxd -i [payload].raw > payload.txt

ou, para x86 de 32 bits,

root@kitploit:~
gcc -c -m32 payloads/[shellcode].S
objcopy -O binary [shellcode].o [payload].raw
xxd -i [payload].raw > payload.txt

Você pode então copiar o conteúdo deste arquivo para seu código-fonte, ou pode executar diretamente ./c_copyfail.exe [caminho/para/payload.elf] onde payload.elf é gerado a partir de as + ld NÃO gcc + objcopy.

Correções

Para evitar exploração, execute:

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
rmmod algif_aead 2>/dev/null

Se já foi explorado, você pode reiniciar a máquina ou executar: echo 3 | sudo tee /proc/sys/vm/drop_caches

Explicação

  1. O kernel permite que o usuário se comunique com a API de criptografia através do tipo de socket AF_ALG
  • Em 2017, a "otimização in-place" foi adicionada à parte algif_aead da API de criptografia
  • Quando os dados são enviados através do socket usando a chamada de sistema splice(), o kernel coloca as páginas reais do page-cache do arquivo que você usou no splice na área de trabalho de criptografia
  • O algoritmo de criptografia authencsn trata seu buffer de saída como espaço temporário e escreve 4 bytes além do que deveria
  1. O que um hipotético atacante pode fazer
  • Escolha qualquer arquivo legível (por exemplo, /usr/bin/su neste caso)
  • Escolha o deslocamento dentro desse arquivo onde a escrita de 4 bytes ocorrerá
  • Escolha o valor de 4 bytes a ser escrito (parte dos dados associados na operação AEAD)
  • Escreva código shell para sobrescrever o arquivo na memória
  1. Sobrescrita do page-cache para root
  • O kernel nunca marca a página corrompida como suja, o arquivo parece inalterado
  • Ao executar /usr/bin/su, o kernel o lê do page-cache e obtém bytes modificados
  • Repetindo a escrita de 4 bytes (cerca de 40 vezes), eles podem sobrescrever a verificação de UID dentro de /usr/bin/su para que o UID seja 0 (root)
  • Shell root obtido para qualquer usuário
  1. Remediação
  • Limpe o page-cache para remover arquivos modificados na memória, para que ele leia do disco na próxima vez
  • Descarregue o módulo do kernel
  • Coloque na lista negra para não carregar
  • Se for um módulo embutido, você deve bloquear a chamada de sistema usando seccomp ou eBPF. Ou remova-o da inicialização e reinicie a máquina.

O binário su está corrompido na memória, portanto, a modificação do arquivo não será detectada. Para restaurar a partir do disco, você pode limpar o page-cache.

Baixar ferramenta