Persistenza nei Sistemi Linux: Systemd Service (T1543.002)

I servizi systemd rappresentano uno dei meccanismi più potenti per mantenere l'accesso persistente sui sistemi Linux moderni. Questa tecnica sfrutta il sistema di gestione dei processi che controlla l'avvio, l'arresto e la supervisione dei servizi su distribuzioni come Ubuntu, Red Hat e Debian.

Gli attaccanti creano o modificano file .service per eseguire payload malevoli ad ogni riavvio del sistema o quando specifici eventi si verificano. La tecnica si colloca nelle tattiche TA0003 (Persistence) e TA0004 (Privilege Escalation), apparendo nelle fasi di post-exploitation e privilege escalation della kill chain.

L'impatto è significativo: 3 gruppi APT documentati utilizzano attivamente questa tecnica, insieme a 8 famiglie di malware e 1 campagna di alto profilo contro infrastrutture critiche ucraine nel 2022.

La creazione di un servizio systemd malevolo richiede privilegi elevati ma garantisce persistenza robusta. Il primo passo consiste nel creare un file di servizio nella directory appropriata.

Per un servizio system-level, crea il file in /etc/systemd/system/:

sudo nano /etc/systemd/system/backdoor.service

Il contenuto minimo del servizio include le direttive di esecuzione:

[Unit]
Description=System Monitoring Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/monitor
Restart=always
User=root

[Install]
WantedBy=multi-user.target

La direttiva ExecStart punta al payload malevolo. Per mascherare l'attività, gli attaccanti spesso usano nomi generici come "syslogd" o "monitor". Il malware Gomir utilizza esattamente questa strategia nominando il servizio "syslogd".

Dopo aver creato il file, abilita e avvia il servizio:

sudo systemctl daemon-reload
sudo systemctl enable backdoor.service
sudo systemctl start backdoor.service

Per tecniche più avanzate, sfrutta i systemd generators che creano servizi dinamicamente durante il boot. Posiziona uno script eseguibile in /etc/systemd/system-generators/:

#!/bin/bash
cat > /run/systemd/generator/persistence.service << EOF
[Service]
ExecStart=/tmp/.hidden/payload
EOF

Gli attaccanti possono anche abusare dei symlink per nascondere il payload reale. SysUpdate copia script in /usr/lib/systemd/system/ con symlink mappati a directory root-owned per elevare i privilegi.

Per user-level persistence senza root, crea servizi in ~/.config/systemd/user/:

mkdir -p ~/.config/systemd/user/
cp backdoor.service ~/.config/systemd/user/
systemctl --user enable backdoor.service

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

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

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.