Detection rules › Sigma
Potential Persistence Via PowerShell User Profile Using Add-Content
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
| Tactic | Techniques |
|---|---|
| Persistence | T1546.013 Event Triggered Execution: PowerShell Profile |
| Privilege Escalation | T1546.013 Event Triggered Execution: PowerShell Profile |
Event coverage
| Provider | Event ID | Title |
|---|---|---|
| PowerShell | 4104 | Creating 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.
| Field | Kind | Values |
|---|---|---|
ScriptBlockText | match |
|
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.
- Potential PowerShell Obfuscation via Invalid Escape Sequences (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Backtick-Escaped Variable Expansion (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Character Array Reconstruction (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Concatenated Dynamic Command Invocation (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via High Numeric Character Proportion (drops 1 filter this rule applies)
- Potential Dynamic IEX Reconstruction via Environment Variables (drops 1 filter this rule applies)
- Dynamic IEX Reconstruction via Method String Access (drops 1 filter this rule applies)
- PowerShell Obfuscation via Negative Index String Reversal (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Reverse Keywords (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via String Concatenation (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via String Reordering (drops 1 filter this rule applies)
- Potential PowerShell Obfuscation via Special Character Overuse (drops 1 filter this rule applies)