Systemd Timers: Task Scheduling via Systemd Timer Units (T1053.006)

La tecnica T1053.006 descrive l'abuso dei systemd timers come meccanismo di schedulazione per l'esecuzione di codice malevolo su sistemi Linux moderni. I timer sono unit file con estensione .timer che innescano l'attivazione di corrispondenti unit .service, offrendo un'alternativa più flessibile a cron e integrata nativamente nel gestore di init e servizi di systemd.

Dal punto di vista tattico, questa tecnica copre tre fasi della kill chain: Execution (TA0002), perché consente di lanciare payload al boot o secondo pianificazioni ricorrenti; Persistence (TA0003), perché sopravvive a riavvii e cambi di credenziali; e Privilege Escalation (TA0004), quando il timer viene installato in percorsi privilegiati come /etc/systemd/system/ o /usr/lib/systemd/system/ e viene eseguito nel contesto di root.

Gli attaccanti scelgono i systemd timer per due ragioni pratiche. In primo luogo, l'attivazione può essere pilotata via systemctl anche remotamente attraverso una sessione SSH, semplificando l'operatività post-exploitation. In secondo luogo, la separazione tra file .timer e .service distribuisce la logica su più artefatti, riducendo la probabilità che un singolo controllo statico intercetti la persistenza. La variante user-level, ospitata in ~/.config/systemd/user/, permette inoltre di mantenere accesso a livello utente senza necessità di privilegi elevati, sfuggendo a molti controlli focalizzati sulle directory di sistema.

In un ingaggio red team su Linux, l'impianto di un systemd timer è una routine di persistenza pulita e riproducibile in laboratorio. Il presupposto è avere ottenuto una shell con privilegi adeguati: root per la persistenza system-wide, utente standard per quella user-level.

Per la variante privilegiata si creano due file. Il primo è il service unit in /etc/systemd/system/backdoor.service, che dichiara Type=simple e imposta ExecStart= verso il payload (ad esempio una reverse shell in Python o un binario compilato). Il secondo è il timer in /etc/systemd/system/backdoor.timer, con una sezione [Timer] che definisce OnBootSec= e OnUnitActiveSec= per riattivare il servizio a intervalli regolari, e una sezione [Install] con WantedBy=timers.target. L'attivazione avviene con:

systemctl daemon-reload

systemctl enable --now backdoor.timer

La verifica dello stato si ottiene con systemctl list-timers --all, che elenca tutti i timer con prossima attivazione e ultimo trigger.

Per la persistenza user-level, il red teamer scrive i file in ~/.config/systemd/user/ e li abilita con systemctl --user enable --now backdoor.timer. Va notato che i timer utente richiedono una sessione attiva o l'abilitazione di loginctl enable-linger per l'account, così da mantenere il manager utente residente anche senza login interattivo — un dettaglio che spesso passa inosservato ai difensori.

Sul piano dell'offuscamento, i nomi delle unit vengono scelti per mimare servizi legittimi (ad esempio systemd-resolved-helper.timer o dbus-monitor.timer) e i payload vengono spostati in path plausibili come /usr/local/lib/ o /var/lib/. La calendarizzazione con OnCalendar= permette schedule realistiche (settimanali, notturne) meno rumorose degli intervalli brevi.

Sul fronte tooling, framework come Metasploit (open source) espongono moduli di persistenza Linux che possono essere adattati, mentre Empire nella sua fork mantenuta BC-Security (open source) e Sliver di Bishop Fox (open source) permettono di orchestrare l'impianto e la gestione dell'implant. Per la fase di ricognizione locale prima dell'impianto, LinPEAS dal progetto PEASS-ng (open source) enumera timer esistenti, permessi sulle directory systemd e configurazioni sospette, aiutando a scegliere il vettore meno rilevabile. In laboratorio è utile validare la detection con Atomic Red Team di Red Canary (open source), che include test dedicati a T1053.006.

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.