Detection rules › Sigma

Potentially Suspicious WDAC Policy File Creation

Status
experimental
Severity
medium
Log source
product windows, category file_event
Author
X__Junior
Source
github.com/SigmaHQ/sigma

Detects suspicious Windows Defender Application Control (WDAC) policy file creation from abnormal processes that could be abused by attacker to block EDR/AV components while allowing their own malicious code to run on the system.

MITRE ATT&CK coverage

TacticTechniques
Defense ImpairmentNo specific technique

Event coverage

ProviderEventTitle
SysmonEvent ID 11FileCreate

Rule body yaml

title: Potentially Suspicious WDAC Policy File Creation
id: 1d2de8a6-4803-4fde-b85b-f58f3aa7a705
status: experimental
description: |
    Detects suspicious Windows Defender Application Control (WDAC) policy file creation from abnormal processes that could be abused by attacker to block EDR/AV components while allowing their own malicious code to run on the system.
references:
    - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/app-control-for-business/deployment/deploy-appcontrol-policies-using-group-policy
    - https://beierle.win/2024-12-20-Weaponizing-WDAC-Killing-the-Dreams-of-EDR/
    - https://github.com/logangoins/Krueger/tree/main
    - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/app-control-for-business/deployment/appcontrol-deployment-guide
    - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/app-control-for-business/deployment/deploy-appcontrol-policies-with-script
    - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/app-control-for-business/deployment/deploy-appcontrol-policies-with-memcm
author: X__Junior
date: 2025-02-07
modified: 2026-05-18
tags:
    - attack.defense-impairment
logsource:
    category: file_event
    product: windows
detection:
    selection_target:
        # This is a default location but unfortunately it could be any path configured in Group Policy Management Editor.
        # No file extension needed because any extension would work, check first reference.
        TargetFilename|contains: '\Windows\System32\CodeIntegrity\'
    filter_main_images:
        Image|endswith:
            - '\Microsoft.ConfigurationManagement.exe' # Replace with full path to avoid false negatives
            - '\WDAC Wizard.exe' # Replace with full path to avoid false negatives
            - 'C:\Program Files\PowerShell\7-preview\pwsh.exe'
            - 'C:\Program Files\PowerShell\7\pwsh.exe'
            - 'C:\Windows\System32\dllhost.exe'
            - 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe'
            - 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
            - 'C:\Windows\SysWOW64\dllhost.exe'
            - 'C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe'
            - 'C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe'
    filter_main_cli:
        - CommandLine|contains|all:
              - 'ConvertFrom-CIPolicy -XmlFilePath'
              - '-BinaryFilePath '
        - CommandLine|contains: 'CiTool --update-policy'
        - CommandLine|contains|all:
              - 'Copy-Item -Path'
              - '-Destination'
    filter_main_system:
        Image: 'System'
    filter_main_wuauclt:
        Image: 'C:\Windows\System32\wuauclt.exe'
    filter_main_wuaucltcore:
        Image:
            - 'C:\Windows\UUS\arm64\wuaucltcore.exe'
            - 'C:\Windows\UUS\Packages\Preview\arm64\wuaucltcore.exe'
    condition: selection_target and not 1 of filter_main_*
falsepositives:
    - Administrators and security vendors could leverage WDAC, apply additional filters as needed.
level: medium

Stages and Predicates

Stage 0: condition

selection_target and not 1 of filter_main_*

Stage 1: selection_target

selection_target:
    TargetFilename|contains: '\Windows\System32\CodeIntegrity\'

Stage 2: not filter_main_*

filter_main_images:
    Image|endswith:
        - '\Microsoft.ConfigurationManagement.exe'
        - '\WDAC Wizard.exe'
        - 'C:\Program Files\PowerShell\7-preview\pwsh.exe'
        - 'C:\Program Files\PowerShell\7\pwsh.exe'
        - 'C:\Windows\System32\dllhost.exe'
        - 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe'
        - 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
        - 'C:\Windows\SysWOW64\dllhost.exe'
        - 'C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe'
        - 'C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe'
filter_main_cli:
    - CommandLine|contains|all:
          - 'ConvertFrom-CIPolicy -XmlFilePath'
          - '-BinaryFilePath '
    - CommandLine|contains: 'CiTool --update-policy'
    - CommandLine|contains|all:
          - 'Copy-Item -Path'
          - '-Destination'
filter_main_system:
    Image: 'System'
filter_main_wuauclt:
    Image: 'C:\Windows\System32\wuauclt.exe'
filter_main_wuaucltcore:
    Image:
        - 'C:\Windows\UUS\arm64\wuaucltcore.exe'
        - 'C:\Windows\UUS\Packages\Preview\arm64\wuaucltcore.exe'

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
CommandLinematch-BinaryFilePath
CommandLinematchConvertFrom-CIPolicy -XmlFilePath
CommandLinematch-Destination
CommandLinematchCopy-Item -Path
CommandLinematchCiTool --update-policy
Imageends_withC:\Program Files\PowerShell\7-preview\pwsh.exe
Imageends_withC:\Program Files\PowerShell\7\pwsh.exe
Imageends_withC:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
Imageends_withC:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe
Imageends_withC:\Windows\SysWOW64\dllhost.exe
Imageends_withC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Imageends_withC:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe
Imageends_withC:\Windows\System32\dllhost.exe
Imageends_with\Microsoft.ConfigurationManagement.exe
Imageends_with\WDAC Wizard.exe
ImageeqC:\Windows\System32\wuauclt.exe
ImageeqC:\Windows\UUS\Packages\Preview\arm64\wuaucltcore.exe
ImageeqC:\Windows\UUS\arm64\wuaucltcore.exe
ImageeqSystem

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
TargetFilenamematch
  • \Windows\System32\CodeIntegrity\