Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Aprile! Scopri di più
La tecnica Windows Service consiste nel creare o modificare servizi di Windows per eseguire payload malevoli in modo ricorrente, sfruttando uno dei meccanismi più radicati nell'architettura del sistema operativo. I servizi Windows sono programmi che si avviano automaticamente al boot e operano in background con privilegi SYSTEM, il che li rende un vettore ideale sia per la persistenza (TA0003) sia per la privilege escalation (TA0004).
Un avversario può registrare un nuovo servizio tramite sc.exe, manipolare direttamente il Registry sotto HKLM\System\CurrentControlSet\Services, oppure interagire con le API native come CreateServiceW(). Il ventaglio di abusi si estende al caricamento di driver malevoli (file .sys), al cosiddetto Bring Your Own Vulnerable Driver (BYOVD) per escalare i privilegi tramite driver firmati ma vulnerabili, e persino alla creazione di servizi nascosti attraverso la manipolazione dei permessi SDDL con sc sdset.
I numeri attestano la centralità di questa tecnica nel panorama delle minacce: 26 gruppi APT documentati, 108 famiglie software, 4 campagne strutturate e 5 mitigazioni raccomandate. Dalla cyber-espionage industriale alla distruzione di infrastrutture critiche, i servizi Windows rappresentano una superficie d'attacco trasversale che ogni professionista della sicurezza deve saper aggredire, rilevare e ricostruire.
La simulazione di questa tecnica in un laboratorio red team può seguire diversi percorsi, dal più banale all'elusivo, ciascuno con un valore didattico differente.
Creazione di un servizio malevolo con sc.exe. Il caso base è il più diretto e replica fedelmente ciò che fanno molti malware documentati. Da un prompt con privilegi di amministratore:
sc create EvilSvc binPath= "cmd.exe /c start C:\Temp\payload.exe" start= auto obj= LocalSystem
Nota la sintassi: lo spazio dopo binPath= è obbligatorio in sc.exe. Per avviare il servizio immediatamente: sc start EvilSvc. Questa procedura rispecchia esattamente ciò che Earth Lusca fa con il servizio SysUpdate, concatenando creazione, configurazione e avvio in una sola riga.
Persistenza tramite DLL e ServiceDLL. Diversi malware — tra cui Volgmer, GreyEnergy e Gelsemium — non registrano un eseguibile ma una DLL come ServiceDLL dentro un servizio esistente o nuovo. Per simularlo, crea un servizio di tipo share e imposta la chiave Registry manualmente:
sc create SvcHostTest binPath= "C:\Windows\System32\svchost.exe -k netsvcs" type= share start= auto
Poi, con reg.exe:
reg add "HKLM\System\CurrentControlSet\Services\SvcHostTest\Parameters" /v ServiceDll /t REG_EXPAND_SZ /d "C:\Temp\evil.dll" /f
Simulazione BYOVD. Per replicare la tecnica utilizzata da Medusa Group con driver firmati ma vulnerabili, puoi caricare un driver di test con PnPUtil.exe (open source, incluso in Windows):
pnputil /add-driver C:\Temp\vuln_driver.inf /install
In alternativa, Cobalt Strike (a pagamento) offre il modulo service-exe per installare beacon come servizio. Per chi cerca un'alternativa open source, Metasploit Framework (open source) dispone del modulo exploit/windows/local/service_permissions per individuare servizi con permessi deboli e sostituirne il binario.
Servizio nascosto tramite SDDL. Per replicare la tecnica di hiding, dopo aver creato il servizio:
sc sdset EvilSvc "D:(D;;DCLCWPDTSD;;;IU)(D;;DCLCWPDTSD;;;SU)(D;;DCLCWPDTSD;;;BA)"
Questo nega l'accesso in lettura a utenti interattivi, service account e amministratori, rendendo il servizio invisibile a Get-Service e sc query.
Per la detection validation, Atomic Red Team (open source) offre test specifici per T1543.003 pronti all'uso che automatizzano queste procedure in modo sicuro e reversibile.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo