Detection rules › Sigma
Tamper Windows Defender - ScriptBlockLogging
Detects PowerShell scripts attempting to disable scheduled scanning and other parts of Windows Defender ATP or set default actions to allow.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Defense Evasion | T1562.001 Impair Defenses: Disable or Modify Tools |
Event coverage
| Provider | Event ID | Title |
|---|---|---|
| PowerShell | 4104 | Creating Scriptblock text (MessageNumber of MessageTotal). |
Stages and Predicates
Stage 1: all of selection_options_disabling_preference
ScriptBlockText|contains: Set-MpPreference
Stage 2: all of selection_options_disabling_function
or:
ScriptBlockText|contains: '-DisableArchiveScanning $true'
ScriptBlockText|contains: '-DisableArchiveScanning 1'
ScriptBlockText|contains: '-DisableBehaviorMonitoring $true'
ScriptBlockText|contains: '-DisableBehaviorMonitoring 1'
ScriptBlockText|contains: '-DisableBlockAtFirstSeen $true'
ScriptBlockText|contains: '-DisableBlockAtFirstSeen 1'
ScriptBlockText|contains: '-DisableCatchupFullScan $true'
ScriptBlockText|contains: '-DisableCatchupFullScan 1'
ScriptBlockText|contains: '-DisableCatchupQuickScan $true'
ScriptBlockText|contains: '-DisableCatchupQuickScan 1'
ScriptBlockText|contains: '-DisableIOAVProtection $true'
ScriptBlockText|contains: '-DisableIOAVProtection 1'
ScriptBlockText|contains: '-DisableIntrusionPreventionSystem $true'
ScriptBlockText|contains: '-DisableIntrusionPreventionSystem 1'
ScriptBlockText|contains: '-DisableRealtimeMonitoring $true'
ScriptBlockText|contains: '-DisableRealtimeMonitoring 1'
ScriptBlockText|contains: '-DisableRemovableDriveScanning $true'
ScriptBlockText|contains: '-DisableRemovableDriveScanning 1'
ScriptBlockText|contains: '-DisableScanningMappedNetworkDrivesForFullScan $true'
ScriptBlockText|contains: '-DisableScanningMappedNetworkDrivesForFullScan 1'
ScriptBlockText|contains: '-DisableScanningNetworkFiles $true'
ScriptBlockText|contains: '-DisableScanningNetworkFiles 1'
ScriptBlockText|contains: '-DisableScriptScanning $true'
ScriptBlockText|contains: '-DisableScriptScanning 1'
ScriptBlockText|contains: '-MAPSReporting $false'
ScriptBlockText|contains: '-MAPSReporting 0'
ScriptBlockText|contains: '-dbaf $true'
ScriptBlockText|contains: '-dbaf 1'
ScriptBlockText|contains: '-dbm $true'
ScriptBlockText|contains: '-dbm 1'
ScriptBlockText|contains: '-dips $true'
ScriptBlockText|contains: '-dips 1'
ScriptBlockText|contains: '-drdsc $true'
ScriptBlockText|contains: '-drdsc 1'
ScriptBlockText|contains: '-drtm $true'
ScriptBlockText|contains: '-drtm 1'
ScriptBlockText|contains: '-dscrptsc $true'
ScriptBlockText|contains: '-dscrptsc 1'
ScriptBlockText|contains: '-dsmndf $true'
ScriptBlockText|contains: '-dsmndf 1'
ScriptBlockText|contains: '-dsnf $true'
ScriptBlockText|contains: '-dsnf 1'
ScriptBlockText|contains: '-dss $true'
ScriptBlockText|contains: '-dss 1'
Stage 3: all of selection_other_default_actions_allow
ScriptBlockText|contains: Set-MpPreference
Stage 4: all of selection_other_default_actions_func
or:
ScriptBlockText|contains: 'HighThreatDefaultAction Allow'
ScriptBlockText|contains: 'LowThreatDefaultAction Allow'
ScriptBlockText|contains: 'ModerateThreatDefaultAction Allow'
ScriptBlockText|contains: 'SevereThreatDefaultAction Allow'
ScriptBlockText|contains: 'htdefac Allow'
ScriptBlockText|contains: 'ltdefac Allow'
ScriptBlockText|contains: 'mtdefac Allow'
ScriptBlockText|contains: 'stdefac Allow'
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)