Persistenza via Emond: Event Monitor Daemon (T1546.014)

La tecnica T1546.014 sfrutta emond, l'Event Monitor Daemon di macOS, come vettore di persistenza ed escalation di privilegi. Si tratta di un Launch Daemon storicamente presente nel sistema operativo Apple che accetta eventi da vari servizi, li processa attraverso un motore di regole e innesca azioni configurate. Il binario risiede in /sbin/emond e carica automaticamente qualsiasi regola presente in /etc/emond.d/rules/, eseguendola al verificarsi di eventi specifici come l'avvio del sistema o l'autenticazione utente.

Dal punto di vista tattico, la tecnica copre due obiettivi della matrice MITRE ATT&CK. In TA0003 (Persistence) garantisce all'attaccante un meccanismo di riesecuzione automatica del payload attraverso riavvii e cambi credenziali. In TA0004 (Privilege Escalation) consente il salto da utente amministratore a root, poiché il servizio emond è avviato dal Launch Daemon con privilegi di sistema.

Il file plist di configurazione del daemon si trova in /System/Library/LaunchDaemons/com.apple.emond.plist e richiede la presenza di un file nella QueueDirectories /private/var/db/emondClients per attivarsi. Questo dettaglio operativo è cruciale sia per l'attaccante che deve creare l'artefatto sia per il difensore che deve monitorarlo. Le regole sono file plist che dichiarano nome, tipo di evento e azione, tipicamente un comando shell o l'invio di un'email. Nella kill chain la tecnica si colloca nella fase post-exploitation, dopo che l'accesso iniziale è stato ottenuto e prima del consolidamento della compromissione.

Per riprodurre T1546.014 in un contesto di red team autorizzato su macOS, la sequenza operativa parte dalla verifica dello stato del daemon e dalla creazione degli artefatti richiesti. Su versioni recenti di macOS emond è stato deprecato, quindi la tecnica è realistica soprattutto su sistemi legacy (macOS 10.15 e precedenti) o in ambienti dove il daemon è stato preservato.

Il primo passo consiste nel verificare che il Launch Daemon sia caricato:

sudo launchctl list | grep emond

Successivamente si crea il file segnaposto nella QueueDirectory, indispensabile per attivare il servizio:

sudo touch /private/var/db/emondClients/redteam

A questo punto si prepara una regola plist in /etc/emond.d/rules/redteam.plist che dichiara un evento di tipo startup o periodic e associa un'azione RunCommand. La struttura tipica prevede le chiavi name, enabled, eventTypes e actions, con quest'ultima che punta al percorso del binario da eseguire e agli argomenti. Il payload può essere una reverse shell scritta in bash o Python, oppure il caricamento di un LaunchAgent secondario per ridurre la superficie di detection sulla regola stessa.

Una volta piazzata la regola, si forza il ricaricamento:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.emond.plist sudo launchctl load /System/Library/LaunchDaemons/com.apple.emond.plist

Per la validazione dell'esecuzione con privilegi root, un semplice comando id > /tmp/emond_test.txt nella regola permette di confermare il contesto di esecuzione senza generare traffico di rete.

Sul fronte tooling, il framework Mythic (open source) offre agent macOS come Apfell e Poseidon che possono essere utilizzati per orchestrare il deployment del payload post-esecuzione della regola. Empire nella sua fork mantenuta da BC Security (open source) include moduli di persistenza macOS utili come riferimento architetturale. Per la generazione dei plist in modo programmatico, PlistBuddy è nativo del sistema:

/usr/libexec/PlistBuddy -c "Add :name string RedTeamRule" /etc/emond.d/rules/redteam.plist

In laboratorio è utile confrontare il comportamento con altre tecniche di persistenza macOS come i LaunchAgent e i LoginItem per costruire scenari di detection engineering realistici. Documentare l'orario esatto di creazione dei file e il comando di esecuzione consente al blue team di calibrare le regole di correlazione durante il debrief.

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.