ID | Technique | Tactic |
---|---|---|
T1053.005 | Scheduled Task | Execution |
Detection: WinEvent Windows Task Scheduler Event Action Started
Description
The following analytic detects the execution of tasks registered in Windows Task Scheduler by monitoring EventID 200 (action run) and 201 (action completed) from the Task Scheduler logs. This detection leverages Task Scheduler logs to identify potentially suspicious or unauthorized task executions. Monitoring these events is significant for a SOC as it helps uncover evasive techniques used for persistence, unauthorized code execution, or other malicious activities. If confirmed malicious, this activity could lead to unauthorized access, data exfiltration, or the execution of harmful payloads, posing a significant threat to the environment.
Search
1`wineventlog_task_scheduler` EventCode IN ("200","201")
2| stats count min(_time) as firstTime max(_time) as lastTime by TaskName dvc EventCode
3| `security_content_ctime(firstTime)`
4| `security_content_ctime(lastTime)`
5| `winevent_windows_task_scheduler_event_action_started_filter`
Data Source
Name | Platform | Sourcetype | Source |
---|---|---|---|
Windows Event Log TaskScheduler 200 | Windows | 'wineventlog' |
'WinEventLog:Microsoft-Windows-TaskScheduler/Operational' |
Macros Used
Name | Value |
---|---|
security_content_ctime | convert timeformat="%Y-%m-%dT%H:%M:%S" ctime($field$) |
winevent_windows_task_scheduler_event_action_started_filter | search * |
winevent_windows_task_scheduler_event_action_started_filter
is an empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.
Annotations
Default Configuration
This detection is configured by default in Splunk Enterprise Security to run with the following settings:
Setting | Value |
---|---|
Disabled | true |
Cron Schedule | 0 * * * * |
Earliest Time | -70m@m |
Latest Time | -10m@m |
Schedule Window | auto |
Creates Risk Event | False |
Implementation
Task Scheduler logs are required to be collected. Enable logging with inputs.conf by adding a stanza for [WinEventLog://Microsoft-Windows-TaskScheduler/Operational] and renderXml=false. Note, not translating it in XML may require a proper extraction of specific items in the Message.
Known False Positives
False positives will be present. Filter based on ActionName paths or specify keywords of interest.
Associated Analytic Story
Risk Based Analytics (RBA)
Risk Message | Risk Score | Impact | Confidence |
---|---|---|---|
A Scheduled Task was scheduled and ran on $dvc$. | 80 | 80 | 100 |
References
-
https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1053.005/T1053.005.md
-
https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/
Detection Testing
Test Type | Status | Dataset | Source | Sourcetype |
---|---|---|---|---|
Validation | ✅ Passing | N/A | N/A | N/A |
Unit | ✅ Passing | Dataset | XmlWinEventLog:Microsoft-Windows-TaskScheduler/Operational |
XmlWinEventLog |
Integration | ✅ Passing | Dataset | XmlWinEventLog:Microsoft-Windows-TaskScheduler/Operational |
XmlWinEventLog |
Replay any dataset to Splunk Enterprise by using our replay.py
tool or the UI.
Alternatively you can replay a dataset into a Splunk Attack Range
Source: GitHub | Version: 5