Detection rules › Sigma

Potential Persistence Via PowerShell User Profile Using Add-Content

Severity
medium
Author
frack113, Nasreddine Bencherchali (Nextron Systems)
Source
upstream

Detects calls to "Add-Content" cmdlet in order to modify the content of the user profile and potentially adding suspicious commands for persistence

MITRE ATT&CK coverage

TacticTechniques
PersistenceT1546.013 Event Triggered Execution: PowerShell Profile
Privilege EscalationT1546.013 Event Triggered Execution: PowerShell Profile

Event coverage

ProviderEvent IDTitle
PowerShell4104Creating Scriptblock text (MessageNumber of MessageTotal).

Stages and Predicates

Stage 1: all of selection_add

ScriptBlockText|contains: 'Add-Content $profile'

Stage 2: all of selection_options

or:
ScriptBlockText|contains: '-Value ''IEX '
ScriptBlockText|contains: '-Value ''Invoke-Expression'
ScriptBlockText|contains: '-Value ''Invoke-WebRequest'
ScriptBlockText|contains: '-Value ''Start-Process'
ScriptBlockText|contains: '-Value "IEX '
ScriptBlockText|contains: '-Value "Invoke-Expression'
ScriptBlockText|contains: '-Value "Invoke-WebRequest'
ScriptBlockText|contains: '-Value "Start-Process'

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
  • -Value "IEX
  • -Value "Invoke-Expression
  • -Value "Invoke-WebRequest
  • -Value "Start-Process
  • -Value 'IEX
  • -Value 'Invoke-Expression
  • -Value 'Invoke-WebRequest
  • -Value 'Start-Process
  • Add-Content $profile

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.