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
CVE-2020-25265-25266 — Exploit de prova de conceito demonstrando CVE-2020-25265 e CVE-2020-25266, usando um arquivo MP3 manipulado para obter execução de código arbitrário via libappimage e appimaged, substituindo aplicativos do sistema. | Kitploit
Ferramentas/GitHubGitHub/refi64/cve-2020-25265-25266
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoMovimento LateralDesenvolvimento de PayloadsExploração de Binários
GitHubrefi64/cve-2020-25265-25266

CVE-2020-25265-25266

Exploit de prova de conceito demonstrando CVE-2020-25265 e CVE-2020-25266, usando um arquivo MP3 manipulado para obter execução de código arbitrário via libappimage e appimaged, substituindo aplicativos do sistema.

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
Ver Repositório
212há 5 anosAinda não revisado

CVE-2020-25265 / CVE-2020-25266

  • CVE-2020-25265
  • CVE-2020-25266

Este é um exploit de PoC do libappimage e do appimaged.

Usando uma combinação das duas CVEs, é possível criar um arquivo que não parece ser um appimage que é tanto implicitamente captado pelo appimaged quanto instalado, sobrescrevendo uma versão instalada no sistema do mesmo aplicativo.

Neste caso, um arquivo MP3 foi usado como payload, e o Nautilus foi o aplicativo sobrescrito.

Versões afetadas

Isso afeta todas as versões do appimaged e todas as versões do libappimage anteriores à 1.0.3.

O que acontece

  • O codec MP3 não possui um cabeçalho de arquivo, portanto o software de mídia precisa percorrer o arquivo procurando por um cabeçalho de frame. Isso significa que podemos colocar os cabeçalhos ELF e AppImage tipo 2 no início do arquivo, e o MP3 ainda será reproduzível. Isso torna o MP3 um alvo primordial para este PoC.

  • Um arquivo MP3 é modificado para conter um binário de payload após a mídia em reprodução, com um script Dart sendo usado para colocar os dados do MP3 entre o executável do payload e o cabeçalho ELF. (Observe que não ajustei as localizações dos símbolos na tabela de símbolos, pois isso exigiria mais esforço e não era necessário para este PoC.) O binário de payload tem menos de 1mb, portanto não causa um aumento perceptível no tamanho do arquivo. No final do arquivo, um sistema de arquivos squashfs é anexado, contendo o arquivo .desktop falso do Nautilus e o ícone.

    Observe que, embora adicionar o MP3 ao final do squashfs tivesse funcionado tecnicamente, há uma chance maior de confundir os players de mídia por aparecer tão tarde no arquivo, enquanto logo após o cabeçalho ELF fica a apenas algumas dezenas de bytes no arquivo.

  • o appimaged examina todos os arquivos em todos os diretórios rastreados, independentemente da extensão do arquivo. Quando ele capta o MP3, detecta os cabeçalhos ELF e AppImage e prossegue para extrair o arquivo .desktop contido nele.

  • O arquivo .desktop malicioso agora é gravado e aponta para o MP3 malicioso. Quando o usuário executar o Files novamente, ele iniciará o executável ELF embutido no MP3 em vez da instalação do sistema.

  • Normalmente, o arquivo .desktop seria nomeado como "appimagekit_...desktop", portanto não seria capaz de substituir totalmente nenhum aplicativo do sistema. No entanto, o Integrator.cpp no libappimage captura o campo Name sem validação ou escape, então podemos adicionar isso ao arquivo .desktop malicioso:

    root@kitploit:~
    Name=/../org.gnome.Nautilus
    Name[en]=Files
    

    e o arquivo será gravado em ~/.local/share/applications/org.gnome.Nautilus.desktop, mascarando assim o Nautilus instalado no sistema.

Mitigação

Garanta que a versão do libappimage instalada seja pelo menos 1.0.3, que corrige a validação do campo Name. Notavelmente, isso não inclui o libappimage do Debian neste momento, que está bastante desatualizado.

Todas as versões do appimaged são vulneráveis, e o projeto foi descontinuado. O go-appimage evita o problema de nome de arquivo ao captar apenas appimages chamados *.AppImage. O AppImageLauncher evita o problema de nome de arquivo ao pedir permissão ao usuário para instalar antes que a instalação ocorra.

Teste

Coloque um arquivo de áudio aleatório em audio.mp3 e execute dart bin/write_mp3.dart para construir o payload e gravar o arquivo MP3 modificado. Você precisa ter o Dart SDK e o FreePascal instalados para que isso funcione.

Notas de implementação

Pascal foi usado para o binário porque produziu os menores binários estaticamente vinculados entre as outras linguagens testadas (C estaticamente vinculado usando musl, Go) ao usar a funcionalidade de subprocesso.

Nos testes, world.execute(me) foi usado como arquivo de áudio, porque pareceu apropriado.

Baixar ferramenta