Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Arile! Scopri di più
La tecnica Scheduled Task sfrutta il Task Scheduler di Windows per eseguire codice malevolo in modo programmato, ottenendo persistenza, esecuzione e scalata di privilegi in un'unica mossa. Si tratta di una sub-tecnica di T1053 (Scheduled Task/Job) e attraversa ben tre tattiche della kill chain: Execution (TA0002), dove il codice dell'avversario viene effettivamente lanciato sul sistema; Persistence (TA0003), perché un task pianificato sopravvive a riavvii e logout; Privilege Escalation (TA0004), poiché il task può essere configurato per girare nel contesto SYSTEM o di un account privilegiato.
I numeri parlano chiaro: 54 gruppi APT documentati la utilizzano, 118 famiglie di malware la implementano, e 12 campagne la includono nel proprio arsenale. Quattro mitigazioni formali ne limitano l'impatto. Questa diffusione capillare si spiega con la natura stessa del meccanismo: schtasks.exe è un binario legittimo firmato Microsoft, presente su ogni installazione Windows, e la sua invocazione non genera allarmi immediati nella maggior parte degli ambienti non tuned.
L'accesso al Task Scheduler avviene tramite la CLI con schtasks, via GUI dal Pannello di Controllo, attraverso wrapper .NET, tramite la libreria netapi32, via WMI, o sfruttando il cmdlet PowerShell Invoke-CimMethod con la classe PS_ScheduledTask. Gli attaccanti più sofisticati possono anche creare task "nascosti" eliminando il Security Descriptor dalla chiave di registro associata, rendendoli invisibili sia a schtasks /query sia all'interfaccia grafica.
Il Task Scheduler è uno degli strumenti più versatili che un red teamer possa utilizzare in laboratorio, perché consente di coprire tre tattiche con un singolo comando. La superficie di attacco è ampia e i vettori di creazione sono molteplici.
Persistenza classica via CLI. Il metodo più diretto replica ciò che gruppi come APT3 e Earth Lusca hanno fatto in produzione. Il primo ha usato un task in contesto SYSTEM eseguito al logon, il secondo un trigger ONLOgon con percorso personalizzato. In laboratorio, la creazione base si ottiene con:
schtasks /create /tn "WinUpdate" /tr "C:\Temp\payload.exe" /sc ONLOGON /ru SYSTEM /f
Il flag /ru SYSTEM forza l'esecuzione in contesto privilegiato, simulando l'escalation. Il flag /f sovrascrive un task esistente senza conferma, utile per lo scenario di hijacking documentato nella campagna SolarWinds Compromise (C0024), dove APT29 modificava task legittimi esistenti, eseguiva i propri tool e poi ripristinava la configurazione originale.
Esecuzione remota per lateral movement. Questa è la variante usata da Ember Bear e Naikon. Utilizzando credenziali valide, si crea un task su un host remoto, come documentato anche nella campagna Operation CuckooBees (C0012):
schtasks /create /s <IP_TARGET> /u <DOMINIO\utente> /p
Il trigger /sc ONCE con orario specificato consente un'esecuzione puntuale che lascia meno tracce di un task ricorrente.
Distribuzione via GPO. L'approccio di Storm-0501 durante la distribuzione del ransomware Embargo e di Sandworm Team nell'attacco alla rete elettrica ucraina (C0034) ha previsto la creazione di task tramite Group Policy Object. In laboratorio si può simulare con SharpGPOAbuse (open source), che modifica GPO esistenti per aggiungere Immediate Scheduled Task.
Task nascosti. La tecnica usata dal malware Tarrask consiste nell'eliminare il valore SD (Security Descriptor) dalla chiave di registro HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\<NomeTask>. Questo richiede permessi SYSTEM e rende il task invisibile sia alla GUI sia a schtasks /query. Per simularlo, dopo aver creato un task, si opera sul registro con PsExec (freemium) di Sysinternals per ottenere una shell SYSTEM e poi si rimuove il valore con:
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\NomeTask" /v SD /f
Wrapper alternativi. Impacket (open source) include lo script atexec.py, lo stesso usato da menuPass, che crea ed esegue task remoti via RPC. Empire (open source) offre moduli dedicati per la creazione di task via PowerShell, come documentato nella campagna Frankenstein (C0001).
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo