Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2020-25265-25266 — Exploit de preuve de concept démontrant les vulnérabilités CVE-2020-25265 et CVE-2020-25266, utilisant un fichier MP3 spécialement conçu pour exécuter du code arbitraire via libappimage et appimaged, en remplaçant les applications système. | Kitploit
Outils/GitHubGitHub/refi64/cve-2020-25265-25266
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationMouvement LatéralDéveloppement de Charges UtilesExploitation de Binaires
GitHubrefi64/cve-2020-25265-25266

CVE-2020-25265-25266

Exploit de preuve de concept démontrant les vulnérabilités CVE-2020-25265 et CVE-2020-25266, utilisant un fichier MP3 spécialement conçu pour exécuter du code arbitraire via libappimage et appimaged, en remplaçant les applications système.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
212il y a 5 ansPas encore vérifié

CVE-2020-25265 / CVE-2020-25266

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

Ceci est une preuve de concept (PoC) d'exploitation de libappimage et appimaged.

En combinant les deux CVE, on peut créer un fichier qui ne semble pas être une appimage, mais qui est implicitement détecté et installé par appimaged, remplaçant ainsi une version installée du système de la même application.

Dans ce cas, un fichier MP3 a été utilisé comme charge utile, et Nautilus était l'application remplacée.

Versions concernées

Cela affecte toutes les versions d'appimaged et toutes les versions de libappimage antérieures à 1.0.3.

Ce qui se passe

  • Le codec MP3 n'a pas d'en-tête de fichier, donc les logiciels multimedia doivent parcourir le fichier à la recherche d'un en-tête de trame. Cela signifie que nous pouvons placer les en-têtes ELF et AppImage de type 2 au début du fichier, et le MP3 sera toujours lisible. Cela fait du MP3 une cible de choix pour cette PoC.

  • Un fichier MP3 est modifié pour contenir un binaire de charge utile après le média joué, un script Dart étant utilisé pour placer les données MP3 entre l'exécutable de charge utile et l'en-tête ELF. (Notez que je n'ai pas ajusté les emplacements des symboles dans la table des symboles, car cela aurait demandé plus d'efforts et n'était pas nécessaire pour cette PoC.) Le binaire de charge utile fait moins de 1 Mo, donc il n'entraîne pas d'augmentation notable de la taille du fichier. À la toute fin du fichier, un système de fichiers squashfs est ajouté, contenant le faux fichier .desktop de Nautilus et son icône.

    Notez que, bien qu'ajouter le MP3 à la fin du squashfs aurait techniquement fonctionné, cela a plus de chances de confondre les lecteurs multimédias car il apparaît si tard dans le fichier, alors que juste après l'en-tête ELF, il n'est qu'à quelques dizaines d'octets dans le fichier.

  • appimaged scanne tous les fichiers dans tous les répertoires surveillés, indépendamment de l'extension du fichier. Lorsqu'il détecte le MP3, il détecte les en-têtes ELF et AppImage, et procède à l'extraction du fichier .desktop qu'il contient.

  • Le fichier .desktop malveillant est maintenant écrit et pointe vers le MP3 malveillant. Lorsque l'utilisateur lance Fichiers (Files) la prochaine fois, il démarrera l'exécutable ELF intégré dans le MP3 au lieu de l'installation système.

  • Normalement, le fichier .desktop serait nommé "appimagekit_...desktop", donc il ne pourrait pas remplacer entièrement les applications système. Cependant, Integrator.cpp dans libappimage récupère le champ Name sans validation ni échappement, donc nous pouvons ajouter ceci au fichier .desktop malveillant :

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

    et le fichier sera écrit vers ~/.local/share/applications/org.gnome.Nautilus.desktop, masquant ainsi le Nautilus installé par le système.

Atténuation

Assurez-vous que votre version installée de libappimage est au moins la 1.0.3, qui corrige la validation du champ Name. Notamment, cela n'inclut pas actuellement la version de libappimage de Debian, qui est assez obsolète.

Toutes les versions d'appimaged sont vulnérables, et le projet a été déprécié. go-appimage évite le problème de nom de fichier en ne détectant que les appimages nommées *.AppImage. AppImageLauncher évite le problème de nom de fichier en demandant à l'utilisateur l'autorisation d'installer avant l'installation.

Test

Placez un fichier audio aléatoire dans audio.mp3 et exécutez dart bin/write_mp3.dart pour construire la charge utile et écrire le fichier MP3 modifié. Vous avez besoin du SDK Dart et de FreePascal installés pour que cela fonctionne.

Notes d'implémentation

Pascal a été utilisé pour le binaire car il produisait les exécutables statiquement liés les plus petits parmi les autres langages testés (C lié statiquement avec musl, Go) lors de l'utilisation de fonctionnalités de sous-processus.

Lors des tests, world.execute(me) a été utilisé comme fichier audio, car cela semblait approprié.

Télécharger l’outil