Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-25265-25266 | Kitploit
Herramientas/GitHubGitHub/refi64/cve-2020-25265-25266
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónMovimiento LateralDesarrollo de PayloadsExplotación de Binarios
GitHubrefi64/cve-2020-25265-25266

CVE-2020-25265-25266

Ver Repositorio
21hace 5 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2020-25265 / CVE-2020-25266

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

Este es un exploit PoC de libappimage y appimaged.

Usando una combinación de los dos CVE, se puede crear un archivo que no parece ser un appimage, que es recogido implícitamente por appimaged e instalado, sobrescribiendo una versión instalada en el sistema de la misma aplicación.

En este caso, se usó un archivo MP3 como payload, y Nautilus fue la aplicación sobrescrita.

Versiones afectadas

Esto afecta a todas las versiones de appimaged y a todas las versiones de libappimage anteriores a la 1.0.3.

Qué sucede

  • El códec MP3 no tiene encabezado de archivo, por lo que el software multimedia debe escanear el archivo en busca de un encabezado de trama. Esto significa que podemos colocar los encabezados ELF y de tipo 2 de AppImage al principio del archivo, y el MP3 seguirá siendo reproducible. Esto hace que el MP3 sea un objetivo ideal para usar en este PoC.

  • Se modifica un archivo MP3 para que contenga un binario payload después del contenido multimedia reproducible, usando un script Dart para colocar los datos MP3 entre el ejecutable payload y el encabezado ELF. (Nótese que no ajusté las ubicaciones de los símbolos en la tabla de símbolos, ya que habría requerido más esfuerzo y no era necesario para este PoC). El binario payload tiene menos de 1 MB, por lo que no causa un aumento perceptible en el tamaño del archivo. Al final del archivo, se añade un sistema de archivos squashfs que contiene el falso archivo .desktop de Nautilus y el icono.

    Nótese que, aunque añadir el MP3 al final del squashfs técnicamente habría funcionado, tiene más probabilidades de confundir a los reproductores multimedia por aparecer tan tarde en el archivo, mientras que justo después del encabezado ELF está solo a unas pocas decenas de bytes del inicio del archivo.

  • appimaged escanea todos los archivos en todos los directorios rastreados, independientemente de la extensión del archivo. Cuando detecta el MP3, identifica los encabezados ELF y AppImage, y procede a extraer el archivo .desktop que contiene.

  • El archivo .desktop malicioso ahora se escribe y apunta al MP3 malicioso. La próxima vez que el usuario ejecute Files, se iniciará el ejecutable ELF incrustado en el MP3 en lugar de la instalación del sistema.

  • Normalmente, el archivo .desktop se llamaría "appimagekit_...desktop", por lo que no podría sobrescribir por completo ninguna aplicación del sistema. Sin embargo, Integrator.cpp en libappimage toma el campo Name sin validación ni escape, por lo que podemos añadir esto al archivo .desktop malicioso:

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

    y el archivo se escribirá en ~/.local/share/applications/org.gnome.Nautilus.desktop, enmascarando así el Nautilus instalado en el sistema.

Mitigación

Asegúrate de que tu versión instalada de libappimage sea al menos la 1.0.3, que corrige la validación del campo Name. Cabe destacar que esto no incluye la libappimage de Debian por el momento, que está bastante desactualizada.

Todas las versiones de appimaged son vulnerables, y el proyecto ha sido deprecado. go-appimage evita el problema del nombre de archivo al recoger únicamente appimages llamados *.AppImage. AppImageLauncher evita el problema del nombre de archivo al pedir permiso al usuario para instalar antes de que tenga lugar la instalación.

Pruebas

Coloca un archivo de audio aleatorio en audio.mp3 y ejecuta dart bin/write_mp3.dart para construir el payload y escribir el archivo MP3 modificado. Necesitas tener instalados el Dart SDK y FreePascal para que esto funcione.

Notas de implementación

Pascal se usó para el binario porque produjo los binarios de enlace estático más pequeños de entre los otros lenguajes probados (C enlazado estáticamente usando musl, Go) al utilizar funcionalidad de subprocesos.

En las pruebas, se usó world.execute(me) como archivo de audio, porque parecía apropiado.

Descargar herramienta