
Un tool utilizza la manipolazione diretta del registro per creare attività pianificate senza attivare i normali log degli eventi.
Ispirato dalla ricerca di WithSecure sulla Scheduled Task Tampering, hanno spiegato la fattibilità di creare un'attività pianificata esclusivamente attraverso la manipolazione delle chiavi di registro. Un approccio di questo tipo può bypassare la generazione di log di eventi di creazione di attività pianificate, come 4698 e 106, offrendo un metodo più stealth per stabilire la persistenza. Alla luce di queste intuizioni, ho sviluppato questo POC per dimostrare la creazione di attività pianificate tramite manipolazione diretta del registro.
Per creare una nuova attività pianificata è necessario aggiungere diverse chiavi di registro e i relativi valori associati. Poiché la struttura dei valori di registro relativi alle attività pianificate non è documentata, la mia metodologia per costruire queste strutture si è basata principalmente su tentativi ed errori, guidata dal confronto con i valori di registro delle attività pianificate legittime. Inoltre, ho fatto riferimento anche alle interfacce nel file header Taskschd.h e ho attinto ampiamente da Cyber.WTF Windows Registry Analysis – Today's Episode: Tasks. Questa ricerca è stata preziosa per guidarmi nella formulazione della struttura di ciascun valore di registro, come Triggers, Actions e DynamicInfo, essenziali per costruire un'attività pianificata funzionante.
Lo strumento offre le seguenti funzionalità:
BruteRatel's memexec)*Nota:
ScheduledTaskCreated) in MDE (Microsoft Defender For Endpoint)Usage: GhostTask.exe <hostname/localhost> <operation> <taskname> <program> <argument> <username> <scheduletype> <time/second> <day>
- hostname/localhost: Nome del computer remoto o "localhost".
- operation: add/delete
- add: Crea o modifica un'attività pianificata utilizzando solo le chiavi di registro. Richiede il riavvio del servizio "Schedule" per caricare la definizione dell'attività.
- delete: Elimina un'attività pianificata. Richiede il riavvio del servizio "Schedule" per scaricare l'attività.
- taskname: Nome dell'attività pianificata.
- program: Programma da eseguire.
- argument: Argomenti per il programma.
- username: Account utente sotto il quale verrà eseguita l'attività pianificata.
- scheduletype: Trigger supportati: second, daily, weekly e logon.
- time/second (applicabile per i trigger 'second', 'daily' e 'weekly'):
- Per trigger 'second': Specificare la frequenza in secondi per l'esecuzione dell'attività.
- Per i trigger 'daily' e 'weekly': Specificare l'ora esatta (es., 22:30) per l'esecuzione dell'attività.
- day (applicabile per trigger 'weekly'): Giorni per eseguire l'attività pianificata (es., monday, thursday).
x86_64-w64-mingw32-gcc GhostTask.c -o GhostTask.exe -lrpcrt4
GhostTask.exe localhost add demo "cmd.exe" "/c notepad.exe" LAB\Administrator weekly 14:12 monday,thursday

GhostTask.exe localhost add "Microsoft\Office\Office Automatic Updates 2.0" "cmd.exe" "/c notepad.exe" LAB\employee001 daily 20:37

Come descritto nel blog di WithSecure (sezione Extra: Lateral Movement), questa tecnica può essere utilizzata per creare remotamente una nuova attività pianificata con un Silver Ticket appositamente costruito.
kerberos::golden /domain:LAB.CORP /sid:S-1-5-21-1111111111-1111111111-1111111111 /aes256:[aes256hash] /user:Administrator /service:cifs /target:dc01.lab.corp /sids:S-1-5-18 /endin:600 /renewmax:10080
Creare una nuova attività pianificata in remoto sul server DC01 che avvia notepad.exe ogni giorno alle 15:19:
GhostTask.exe DC01.lab.corp add demo "cmd.exe" "/c notepad.exe" LAB\Administrator daily 15:19
