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

La tecnica T1546.004 sfrutta un meccanismo profondamente radicato nei sistemi Unix e macOS: l'esecuzione automatica di script di configurazione ad ogni avvio o terminazione di una shell. Ogni volta che un utente apre un terminale, effettua login via SSH o avvia una nuova sessione interattiva, la shell legge una catena precisa di file — /etc/profile, /etc/profile.d/, ~/.bash_profile, ~/.bashrc, ~/.bash_logout per bash, oppure /etc/zprofile, ~/.zshrc, ~/.zlogin per zsh su macOS 10.15+.

Inserendo comandi malevoli in questi file, un attaccante ottiene esecuzione ricorrente senza dover ricorrere a servizi, cron job o unit systemd più visibili. La tecnica copre due tattiche MITRE: TA0003 (Persistence), perché sopravvive a reboot e nuove sessioni utente, e TA0004 (Privilege Escalation), quando la modifica avviene su file di sistema (/etc/profile, /etc/bashrc) letti da shell avviate con privilegi superiori.

L'impatto è significativo perché richiede modifiche minime — a volte una singola riga — e si mimetizza tra centinaia di righe legittime di configurazione. I dati MITRE riportano 1 gruppo APT (Contagious Interview) che ha adottato l'approccio su macOS, 4 famiglie malware documentate (Linux Rabbit, XCSSET, Green Lambert, RotaJakiro) e la campagna ShadowRay contro infrastrutture AI vulnerabili. La superficie d'attacco è ampia: qualsiasi sistema Linux, macOS o Unix-like con account utente attivi è potenzialmente esposto.

In un'esercitazione red team, la modifica dei file di shell offre persistenza silenziosa e a basso costo. Il primo passo è enumerare quali shell sono in uso e quali file di configurazione esistono già nell'utente compromesso. Un semplice echo $SHELL seguito da ls -la ~/.bash ~/.zsh* ~/.profile* rivela lo stato iniziale.

Per persistenza a livello utente su bash, la tecnica classica consiste nell'appendere una riga al file letto per primo dalla shell di login. Il comportamento di bash è di caricare ~/.bash_profile, poi ~/.bash_login, poi ~/.profile, fermandosi al primo esistente. Un attaccante privilegia quindi ~/.bash_profile:

echo 'nohup /tmp/.cache/beacon &>/dev/null &' >> ~/.bash_profile

Per garantire esecuzione anche in shell interattive non-login (nuovi tab del terminale, sessioni SSH successive), si aggiunge una riga analoga in ~/.bashrc. La combinazione dei due file copre praticamente ogni scenario di apertura shell.

Su macOS con zsh, il target primario è ~/.zshrc per le shell interattive e ~/.zprofile per le login shell. L'approccio adottato da XCSSET è particolarmente elegante: scrive il payload in un file non standard ~/.zshrc_aliases e aggiunge a ~/.zshrc la riga [ -f $HOME/.zshrc_aliases ] && . $HOME/.zshrc_aliases, ottenendo separazione tra loader e payload che complica la detection basata su pattern semplici.

Per escalation di privilegi, se si dispone già di accesso root o di una scrittura arbitraria su file di sistema, /etc/profile e /etc/profile.d/.sh vengono eseguiti da ogni shell di login su tutto il sistema. Un file .sh piazzato in /etc/profile.d/ è particolarmente insidioso perché la directory è progettata per drop-in di configurazione e passa spesso inosservata.

Per simulare la catena in laboratorio si può usare Atomic Red Team (open source), che include test specifici per T1546.004 con payload benigni. Per la fase di post-exploitation, framework come Metasploit (open source) e Sliver (open source) offrono moduli di persistenza già pronti. Su macOS, Mythic (open source) con l'agente Poseidon supporta persistenza via zsh config.

Regola di ingaggio: durante il red team, documenta ogni file modificato e mantieni un rollback pulito. L'aggiunta di un marker commentato tipo # RT-EXERCISE-YYYY-MM-DD facilita il cleanup e riduce il rischio di lasciare residui dopo l'engagement.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.