Try in Splunk Security Cloud

Description

The following detection identifies Scheduled Tasks registering (creating a new task) a binary or script to run from a public directory which includes users\public, \programdata\ and \windows\temp. Upon triage, review the binary or script in the command line for legitimacy, whether an approved binary/script or not. In addition, capture the binary or script in question and analyze for further behaviors. Identify the source and contain the endpoint.

  • Type: Anomaly
  • Product: Splunk Enterprise, Splunk Enterprise Security, Splunk Cloud
  • Datamodel: Endpoint- Datasource: Splunk Add-on for Sysmon
  • Last Updated: 2021-03-01
  • Author: Michael Haag, Splunk
  • ID: 7feb7972-7ac3-11eb-bac8-acde48001122

Annotations

ATT&CK
ID Technique Tactic
T1053.005 Scheduled Task Execution, Persistence, Privilege Escalation
T1053 Scheduled Task/Job Execution, Persistence, Privilege Escalation
Kill Chain Phase
  • Exploitation
NIST
CIS20
CVE
1
2
3
4
5
6
| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=schtasks.exe (Processes.process=*\\users\\public\\* OR Processes.process=*\\programdata\\* OR Processes.process=*windows\\temp*)  Processes.process=*/create* by Processes.dest Processes.user Processes.parent_process Processes.process_name Processes.process Processes.process_id Processes.parent_process_id 
| `drop_dm_object_name(Processes)` 
| `security_content_ctime(firstTime)`
| `security_content_ctime(lastTime)`
| `suspicious_scheduled_task_from_public_directory_filter`

Macros

The SPL above uses the following Macros:

Note that suspicious_scheduled_task_from_public_directory_filter is a empty macro by default. It allows the user to filter out any results (false positives) without editing the SPL.

Required field

  • _time
  • Processes.process_name
  • Processes.process
  • Processes.dest
  • Processes.user
  • Processes.parent_process
  • Processes.process_name
  • Processes.process_id
  • Processes.parent_process_id

How To Implement

To successfully implement this search you need to be ingesting information on process that include the name of the process responsible for the changes from your endpoints into the Endpoint datamodel in the Processes node.

Known False Positives

Limited false positives may be present. Filter as needed by parent process or command line argument.

Associated Analytic story

RBA

Risk Score Impact Confidence Message
35.0 70 50 Suspicious scheduled task registered on $dest$

Reference

Test Dataset

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 | version: 1