Detection rules › Sigma

Change PowerShell Policies to an Insecure Level - PowerShell

Severity
medium
Author
frack113
Source
upstream

Detects changing the PowerShell script execution policy to a potentially insecure level using the "Set-ExecutionPolicy" cmdlet.

MITRE ATT&CK coverage

TacticTechniques
ExecutionT1059.001 Command and Scripting Interpreter: PowerShell

Event coverage

ProviderEvent IDTitle
PowerShell4104Creating Scriptblock text (MessageNumber of MessageTotal).

Stages and Predicates

Stage 1: all of selection_cmdlet

ScriptBlockText|contains: Set-ExecutionPolicy

Stage 2: all of selection_option

or:
ScriptBlockText|contains: Unrestricted
ScriptBlockText|contains: bypass

Stage 3: not 1 of filter_optional_chocolatey

or:
ScriptBlockText|contains: '(New-Object System.Net.WebClient).DownloadString(''https://chocolatey.org/install.ps1'')'
ScriptBlockText|contains: '(New-Object System.Net.WebClient).DownloadString(''https://community.chocolatey.org/install.ps1'')'

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
ScriptBlockTextmatch
  • (New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1') corpus 2 (sigma 2)
  • (New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')
  • Set-ExecutionPolicy
  • Unrestricted
  • bypass corpus 2 (sigma 2)

Neighbors

Broader alternatives (more inclusive than this rule)

These rules match a superset of what this rule catches. They cover the same events plus more. Use them if you want wider coverage and can absorb more false positives.