Script di Avvio: Boot or Logon Initialization Scripts - RC Scripts (T1037.004)

La modifica degli RC script rappresenta una delle tecniche di persistenza più eleganti nei sistemi Unix-like. Questi file, eseguiti automaticamente all'avvio con privilegi root, permettono agli attaccanti di mantenere l'accesso anche dopo riavvii del sistema.

La tecnica si colloca nelle tattiche TA0003 (Persistence) e TA0004 (Privilege Escalation) della kill chain, consentendo sia il mantenimento dell'accesso che l'esecuzione con privilegi elevati. Particolarmente efficace su sistemi lightweight come hypervisor ESXi, dispositivi IoT ed embedded dove l'utente root è predefinito.

Con 3 gruppi APT documentati che sfruttano attivamente questa tecnica e 4 malware specifici, l'abuso degli RC script rimane una minaccia concreta nonostante il progressivo abbandono in favore di systemd su molte distribuzioni moderne.

Per testare la persistenza tramite RC script, inizia verificando quali file di avvio sono presenti sul sistema target. Su distribuzioni Linux tradizionali, il file principale è /etc/rc.local:

echo "nohup /tmp/backdoor.sh &" >> /etc/rc.local

Su sistemi ESXi, il percorso differisce leggermente. UNC3886 ha dimostrato l'efficacia di questa tecnica posizionando script in /etc/rc.local.d/:

echo '#!/bin/sh' > /etc/rc.local.d/99-persistence.sh
echo '/bin/sh /tmp/payload.sh &' >> /etc/rc.local.d/99-persistence.sh
chmod +x /etc/rc.local.d/99-persistence.sh

Per sistemi macOS legacy (Panther v10.3 e precedenti), il file target è /etc/rc.common. Il malware iKitten utilizzava questa tecnica aggiungendo una riga simile a:

/usr/local/bin/malicious_binary &

Verifica sempre i permessi prima della modifica. Gli RC script richiedono privilegi root, quindi assicurati di avere l'accesso necessario. Su Ubuntu e derivate che mantengono compatibilità backward, controlla che il file abbia i permessi di esecuzione:

ls -la /etc/rc.local
chmod +x /etc/rc.local

Per simulare l'approccio di Cyclops Blink, che modificava script con nomi specifici come S51armled, esplora la directory /etc/init.d/:

cp /etc/init.d/skeleton /etc/init.d/S99malware
update-rc.d S99malware defaults

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

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