Event Subscription WMI: Windows Management Instrumentation Event Subscription (T1546.003)

La persistenza tramite WMI Event Subscription rappresenta una tecnica sofisticata che sfrutta l'infrastruttura nativa di Windows per mantenere l'accesso ai sistemi compromessi. Gli attaccanti configurano filtri, consumer e binding WMI che eseguono codice malevolo al verificarsi di eventi specifici come l'avvio del sistema, il login di un utente o anche a intervalli temporali predefiniti.

Questa tecnica si manifesta in due fasi critiche della kill chain: TA0003 (Persistence) per mantenere l'accesso attraverso riavvii e cambi di credenziali, e TA0004 (Privilege Escalation) poiché l'esecuzione avviene tramite il processo WmiPrvSE.exe con privilegi SYSTEM elevati.

L'impatto è significativo: 10 gruppi APT documentati utilizzano questa tecnica, insieme a 13 famiglie di malware e 2 campagne di alto profilo. La compilazione di script WMI in file MOF tramite mofcomp.exe aggiunge un ulteriore livello di complessità all'attacco.

Per comprendere la potenza di questa tecnica, iniziamo creando un event subscription WMI persistente. Il comando PowerShell seguente stabilisce un consumer che esegue calc.exe ogni volta che notepad.exe viene avviato:

$FilterArgs = @{Name="TestFilter"; EventNameSpace="root\cimv2"; QueryLanguage="WQL"; Query="SELECT * FROM Win32_ProcessStartTrace WHERE ProcessName='notepad.exe'"}

$Filter = New-CimInstance -Namespace root/subscription -ClassName __EventFilter -Property $FilterArgs

La creazione del consumer CommandLineEventConsumer richiede privilegi amministrativi. Questo consumer può eseguire qualsiasi comando con privilegi SYSTEM:

$ConsumerArgs = @{Name="TestConsumer"; CommandLineTemplate="C:\Windows\System32\calc.exe"}

$Consumer = New-CimInstance -Namespace root/subscription -ClassName CommandLineEventConsumer -Property $ConsumerArgs

Il binding finale collega filtro e consumer. Una volta stabilito, persiste attraverso i riavvii del sistema:

$BindingArgs = @{Filter=[Ref]$Filter; Consumer=[Ref]$Consumer}

New-CimInstance -Namespace root/subscription -ClassName __FilterToConsumerBinding -Property $BindingArgs

Per un approccio più furtivo, Blue Mockingbird ha dimostrato l'uso di file MOF compilati. Crea un file persistence.mof con il seguente contenuto, poi compilalo con mofcomp.exe persistence.mof. Questo metodo bypassa molti controlli di sicurezza tradizionali.

La rimozione richiede l'eliminazione di tutti e tre i componenti nell'ordine corretto: prima il binding, poi consumer e filtro. Tools come PoshC2 e SILENTTRINITY automatizzano questo processo fornendo moduli pre-configurati per la persistenza WMI.

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.