Scheduled Task Execution at Scale via GPOedit

Detects the modification of Group Policy Object attributes to execute a scheduled task in the objects controlled by the GPO.

Rule type: query

Rule indices:

  • winlogbeat-*
  • logs-system.*

Severity: medium

Risk score: 47

Runs every: 5 minutes

Searches indices from: now-6m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

References:

Tags:

  • Elastic
  • Host
  • Windows
  • Threat Detection
  • Privilege Escalation
  • Active Directory
  • Investigation Guide

Version: 102 (version history)

Added (Elastic Stack release): 8.0.0

Last modified (Elastic Stack release): 8.6.0

Rule authors: Elastic

Rule license: Elastic License v2

Investigation guideedit

## Triage and analysis

### Investigating Scheduled Task Execution at Scale via GPO

Group Policy Objects (GPOs) can be used by attackers to execute scheduled tasks at scale to compromise objects controlled
by a given GPO. This is done by changing the contents of the `<GPOPath>\Machine\Preferences\ScheduledTasks\ScheduledTasks.xml`
file.

#### Possible investigation steps

- This attack abuses a legitimate mechanism of Active Directory, so it is important to determine whether the activity
is legitimate and the administrator is authorized to perform this operation.
- Retrieve the contents of the `ScheduledTasks.xml` file, and check the `<Command>` and `<Arguments>` XML tags for any
potentially malicious commands or binaries.
- Investigate other alerts associated with the user/host during the past 48 hours.
- Scope which objects may be compromised by retrieving information about which objects are controlled by the GPO.

### False positive analysis

- Verify if the execution is allowed and done under change management, and if the execution is legitimate.

### Related rules

- Group Policy Abuse for Privilege Addition - b9554892-5e0e-424b-83a0-5aef95aa43bf
- Startup/Logon Script added to Group Policy Object - 16fac1a1-21ee-4ca6-b720-458e3855d046

### Response and remediation

- Initiate the incident response process based on the outcome of the triage.
- The investigation and containment must be performed in every computer controlled by the GPO, where necessary.
- Remove the script from the GPO.
- Check if other GPOs have suspicious scheduled tasks attached.
- Determine the initial vector abused by the attacker and take action to prevent reinfection through the same vector.
- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the
mean time to respond (MTTR).

Rule queryedit

(event.code: "5136" and
winlog.event_data.AttributeLDAPDisplayName:("gPCMachineExtensionNames"
or "gPCUserExtensionNames") and winlog.event_data.AttributeValue:(*
CAB54552-DEEA-4691-817E-ED4A4D1AFC72* and
*AADCED64-746C-4633-A97C-D61349046527*)) or (event.code: "5145" and
winlog.event_data.ShareName: "\\\\*\\SYSVOL" and
winlog.event_data.RelativeTargetName: *ScheduledTasks.xml and
(message: WriteData or winlog.event_data.AccessList: *%%4417*))

Threat mappingedit

Framework: MITRE ATT&CKTM

Rule version historyedit

Version 102 (8.6.0 release)
  • Formatting only
Version 101 (8.5.0 release)
  • Formatting only
Version 6 (8.4.0 release)
  • Updated query, changed from:

    (event.code: "5136" and
    winlog.event_data.AttributeLDAPDisplayName:("gPCMachineExtensionNames"
    or "gPCUserExtensionNames") and winlog.event_data.AttributeValue:(
    *CAB54552-DEEA-4691-817E-ED4A4D1AFC72* and
    *AADCED64-746C-4633-A97C-D61349046527*)) or (event.code: "5145" and
    winlog.event_data.ShareName: "\\\\*\\SYSVOL" and
    winlog.event_data.RelativeTargetName: *ScheduledTasks.xml and
    (message: WriteData or winlog.event_data.AccessList: *%%4417*))
Version 4 (8.3.0 release)
  • Formatting only
Version 3 (8.2.0 release)
  • Formatting only
Version 2 (8.1.0 release)
  • Formatting only