Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2020-25265-25266 | Kitploit
Tools/GitHubGitHub/refi64/cve-2020-25265-25266
Privilege EscalationSchwachstellenanalyseExploitationLaterale BewegungPayload-EntwicklungBinary-Exploitation
GitHubrefi64/cve-2020-25265-25266

CVE-2020-25265-25266

Repository anzeigen
21vor 5 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2020-25265 / CVE-2020-25266

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

Dies ist ein PoC-Exploit für libappimage und appimaged.

Durch eine Kombination der beiden CVEs kann man eine Datei erstellen, die nicht wie ein AppImage aussieht, die von appimaged sowohl implizit aufgenommen als auch installiert wird und dabei eine systemweit installierte Version derselben Anwendung überschreibt.

In diesem Fall wurde eine MP3-Datei als Payload verwendet, und Nautilus war die überschriebene Anwendung.

Betroffene Versionen

Dies betrifft alle Versionen von appimaged und alle libappimage-Versionen älter als 1.0.3.

Was passiert

  • Der MP3-Codec hat keinen Datei-Header, daher muss Medien-Software die Datei auf der Suche nach einem Frame-Header durchsuchen. Das bedeutet, dass wir die ELF- und AppImage-Typ-2-Header am Anfang der Datei platzieren können und das MP3 trotzdem abspielbar bleibt. Das macht MP3 zu einem idealen Ziel für diesen PoC.

  • Eine MP3-Datei wird modifiziert, um nach dem abspielbaren Medium ein Payload-Binary zu enthalten, wobei ein Dart-Skript verwendet wird, um die MP3-Daten zwischen dem Payload-Programm und dem ELF-Header zu platzieren. (Hinweis: Ich habe die Positionen der Symbole in der Symboltabelle nicht angepasst, da dies mehr Aufwand erfordert hätte und für diesen PoC nicht nötig war.) Das Payload-Binary ist kleiner als 1 MB, sodass es keine spürbare Vergrößerung der Datei verursacht. Ganz am Ende der Datei wird ein squashfs- Dateisystem angehängt, das die gefälschte Nautilus-Desktopdatei und das Icon enthält.

    Beachten Sie, dass das Hinzufügen des MP3 ans Ende des squashfs technisch zwar funktioniert hätte, aber eine höhere Wahrscheinlichkeit besteht, Media-Player zu verwirren, da es so spät in der Datei erscheint, während die Stelle direkt nach dem ELF-Header nur wenige Dutzend Bytes nach Dateibeginn liegt.

  • appimaged durchsucht alle Dateien in allen überwachten Verzeichnissen, unabhängig von der Dateierweiterung. Wenn es die MP3-Datei aufnimmt, erkennt es die ELF- und AppImage-Header und extrahiert anschließend die darin enthaltene Desktopdatei.

  • Die manipulierte Desktopdatei wird nun geschrieben und verweist auf die schädliche MP3-Datei. Wenn der Benutzer das nächste Mal „Files“ ausführt, startet die Anwendung das eingebettete ELF-Programm der MP3-Datei anstelle der Systeminstallation.

  • Normalerweise würde die Desktopdatei als „appimagekit_...desktop“ benannt, sodass sie keine Systemanwendungen vollständig überschreiben könnte. Allerdings würde Integrator.cpp in libappimage das Namensfeld ohne Validierung oder Escaping übernehmen, sodass wir dies zur manipulierten Desktopdatei hinzufügen können:

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

    und die Datei wird nach ~/.local/share/applications/org.gnome.Nautilus.desktop geschrieben, wodurch das systemweit installierte Nautilus maskiert wird.

Gegenmaßnahmen

Stellen Sie sicher, dass Ihre installierte libappimage-Version mindestens 1.0.3 ist, die die Validierung des Name-Feldes behebt. Bemerkenswerterweise schließt dies derzeit das libappimage von Debian nicht ein, das ziemlich veraltet ist.

Alle Versionen von appimaged sind verwundbar, und das Projekt wurde eingestellt. go-appimage umgeht das Dateinamenproblem, indem es nur AppImages mit dem Namen *.AppImage aufnimmt. AppImageLauncher umgeht das Dateinamenproblem, indem es den Benutzer vor der Installation um Erlaubnis fragt.

Testen

Legen Sie eine beliebige Audiodatei in audio.mp3 ab und führen Sie dart bin/write_mp3.dart aus, um das Payload zu erstellen und die modifizierte MP3-Datei zu schreiben. Sie benötigen das Dart SDK und FreePascal, damit dies funktioniert.

Hinweise zur Implementierung

Pascal wurde für das Binary verwendet, weil es bei der Nutzung von Subprocess-Funktionalität die kleinsten statisch gelinkten Binaries der anderen getesteten Sprachen (C statisch gelinkt mit musl, Go) erzeugte.

Beim Testen wurde world.execute(me) als Audiodatei verwendet, weil es passend schien.

Tool herunterladen