Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-25265-25266 — Proof-of-concept exploit che dimostra CVE-2020-25265 e CVE-2020-25266, utilizzando un file MP3 appositamente creato per ottenere l'esecuzione di codice arbitrario tramite libappimage e appimaged, sovrascrivendo le applicazioni di sistema. | Kitploit
Strumenti/GitHubGitHub/refi64/cve-2020-25265-25266
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitMovimento LateraleSviluppo PayloadBinary Exploitation
GitHubrefi64/cve-2020-25265-25266

CVE-2020-25265-25266

Proof-of-concept exploit che dimostra CVE-2020-25265 e CVE-2020-25266, utilizzando un file MP3 appositamente creato per ottenere l'esecuzione di codice arbitrario tramite libappimage e appimaged, sovrascrivendo le applicazioni di sistema.

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
2125 anni faNon ancora revisionato

CVE-2020-25265 / CVE-2020-25266

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

Questo è un exploit PoC di libappimage e appimaged.

Utilizzando una combinazione delle due CVE, si può creare un file che non sembra essere un appimage che viene sia individuato implicitamente da appimaged sia installato, sovrascrivendo una versione installata a livello di sistema della stessa applicazione.

In questo caso, un file MP3 è stato usato come payload e Nautilus è stata l'applicazione sovrascritta.

Versioni interessate

Questo riguarda tutte le versioni di appimaged e tutte le versioni di libappimage precedenti alla 1.0.3.

Cosa succede

  • Il codec MP3 non ha un header di file, quindi i software multimediali devono scansionare il file alla ricerca di un header di frame. Questo significa che possiamo posizionare gli header ELF e AppImage di tipo 2 all'inizio del file, e l'MP3 sarà comunque riproducibile. Questo rende l'MP3 un bersaglio ideale per questo PoC.

  • Un file MP3 viene modificato per contenere un binario payload dopo il media riprodotto, con uno script Dart usato per posizionare i dati MP3 tra l'eseguibile payload e l'header ELF. (Nota: non ho regolato le posizioni dei simboli nella tabella dei simboli, perché avrebbe richiesto più sforzo e non era necessario per questo PoC.) Il binario payload è più piccolo di 1 MB, quindi non causa un aumento evidente della dimensione del file. Alla fine del file, un filesystem squashfs viene aggiunto, contenente il falso file desktop di Nautilus e l'icona.

    Nota che, sebbene aggiungere l'MP3 alla fine dello squashfs avrebbe tecnicamente funzionato, c'è una maggiore probabilità di confondere i lettori multimediali perché appare così tardi nel file, mentre subito dopo l'header ELF si è a solo poche decine di byte dall'inizio del file.

  • appimaged scansiona tutti i file in tutte le directory monitorate, indipendentemente dall'estensione del file. Quando rileva l'MP3, individua gli header ELF e AppImage e procede a estrarre il file desktop contenuto al suo interno.

  • Il file desktop rogue viene ora scritto e punta all'MP3 malevolo. La prossima volta che l'utente avvia Files, avvierà l'eseguibile ELF incorporato nell'MP3 invece dell'installazione di sistema.

  • Normalmente, il file desktop sarebbe chiamato "appimagekit_...desktop", quindi non sarebbe in grado di sovrascrivere completamente alcuna applicazione di sistema. Tuttavia, Integrator.cpp in libappimage preleva il campo Name senza validazione o escaping, quindi possiamo aggiungere questo al file desktop rogue:

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

    e il file verrà scritto in ~/.local/share/applications/org.gnome.Nautilus.desktop, mascherando così il Nautilus installato a livello di sistema.

Mitigazione

Assicurati che la versione di libappimage installata sia almeno la 1.0.3, che corregge la validazione del campo Name. È importante notare che questo non include al momento la libappimage di Debian, che è piuttosto datata.

Tutte le versioni di appimaged sono vulnerabili e il progetto è stato deprecato. go-appimage evita il problema del nome file rilevando solo gli appimage denominati *.AppImage. AppImageLauncher evita il problema del nome file chiedendo all'utente il permesso di installare prima che l'installazione abbia luogo.

Test

Metti un file audio casuale in audio.mp3 ed esegui dart bin/write_mp3.dart per costruire il payload e scrivere il file MP3 modificato. Perché questo funzioni, devi avere installati Dart SDK e FreePascal.

Note di implementazione

Pascal è stato usato per il binario perché produceva i binari staticamente collegati più piccoli tra gli altri linguaggi testati (C collegato staticamente tramite musl, Go) quando si utilizza la funzionalità di subprocess.

Nei test, world.execute(me) è stato usato come file audio, perché sembrava appropriato.

Scarica lo strumento