Servizi Systemd Malevoli: Systemd Service (T1543.002)

La tecnica T1543.002 documenta l'abuso di systemd, il sistema di init predefinito nella maggior parte delle distribuzioni Linux moderne, per ottenere persistenza ed eventuale escalation di privilegi. Un avversario crea o modifica file unit con estensione .service — collocati in /etc/systemd/system/, /lib/systemd/system/ per il livello di sistema, oppure in $HOME/.config/systemd/user/ per il livello utente — inserendo comandi arbitrari nelle direttive ExecStart, ExecStartPre, ExecStartPost, ExecReload o ExecStop.

Sul piano tattico la tecnica ricade in TA0003 (Persistence), perché il payload viene rieseguito ad ogni avvio o riavvio del servizio, e in TA0004 (Privilege Escalation), poiché la direttiva User permette di far girare un binario come root o come altro account privilegiato quando il servizio è registrato a livello di sistema. Nella kill chain si colloca dopo l'Initial Access e frequentemente accompagna fasi di Defense Evasion tramite symlink verso payload nascosti in filesystem non standard.

I dati MITRE contano 3 gruppi APT, 8 famiglie malware, 1 campagna documentata (il 2022 Ukraine Electric Power Attack di Sandworm) e 4 mitigazioni. La diffusione è amplificata da attori come Rocke, TeamTNT e Scattered Spider, oltre a impianti Linux di rilievo come Exaramel, Fysbis, RotaJakiro e SysUpdate, a testimonianza della centralità di systemd come vettore di persistenza cross-attore.

In un ingaggio red team la simulazione di T1543.002 parte dal presupposto di avere già una shell su host Linux, meglio se con capacità di scrittura in /etc/systemd/system/. La procedura minima consiste nel produrre un file unit e attivarlo con systemctl (built-in Linux).

Un esempio di unit persistente a livello sistema:

[Unit]\nDescription=System Health Monitor\nAfter=network.target\n\n[Service]\nType=simple\nExecStart=/usr/local/bin/health-check.sh\nRestart=always\nUser=root\n\n[Install]\nWantedBy=multi-user.target

Salvato come /etc/systemd/system/health-monitor.service, viene registrato con:

sudo systemctl daemon-reload sudo systemctl enable --now health-monitor.service

La direttiva WantedBy=multi-user.target replica esattamente la configurazione utilizzata da Sandworm Team per GOGETTER durante l'attacco alla rete elettrica ucraina del 2022. Per contesti non privilegiati si sfrutta il piano utente con systemctl --user enable, che colloca il servizio sotto ~/.config/systemd/user/ e lo attiva alla logon session, se loginctl enable-linger è concesso.

Per l'escalation di privilegi la ricognizione va indirizzata a unit già esistenti con permessi laschi. Il comando find /etc/systemd/system -type f -writable 2>/dev/null individua file .service scrivibili dall'utente corrente; analogamente ls -la /lib/systemd/system/*.service verifica ownership anomale. Se un servizio eseguito come root punta a un binario o script in una directory scrivibile, la sostituzione del target ottiene esecuzione privilegiata al successivo restart. La tecnica dei symlink descritta nei dati MITRE — come nel caso di SysUpdate, che collega uno script user-owned a un percorso letto dal daemon di sistema — è particolarmente efficace contro controlli superficiali sui path.

Per automatizzare l'enumerazione conviene affidarsi a LinPEAS (open source) e linux-smart-enumeration (open source), entrambi ospitati su GitHub, che segnalano unit file writable e binari ExecStart con permessi deboli. In ambito adversary emulation, Atomic Red Team (open source) include test dedicati a T1543.002 che generano unit di prova e ne verificano il caricamento; ideali per validare la detection prima e dopo il tuning delle regole SIEM. La cleanup richiede systemctl disable, systemctl stop, rimozione del file .service e nuovo daemon-reload per evitare unit orfane in stato not-found.

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.
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.