Detection rules › Sigma

Windows Binaries Write Suspicious Extensions

Status
test
Severity
high
Log source
category file_event, product windows
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects Windows executables that write files with suspicious extensions

MITRE ATT&CK coverage

TacticTechniques
Stealth

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 11: FileCreate

Rule body

title: Windows Binaries Write Suspicious Extensions
id: b8fd0e93-ff58-4cbd-8f48-1c114e342e62
related:
    - id: 1277f594-a7d1-4f28-a2d3-73af5cbeab43
      type: derived
status: test
description: Detects Windows executables that write files with suspicious extensions
references:
    - Internal Research
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-12
modified: 2025-10-07
tags:
    - attack.stealth
    - attack.t1036
logsource:
    category: file_event
    product: windows
detection:
    selection_generic:
        Image|endswith:
            - '\csrss.exe'
            - '\lsass.exe'
            - '\RuntimeBroker.exe'
            - '\sihost.exe'
            - '\smss.exe'
            - '\wininit.exe'
            - '\winlogon.exe'
        TargetFilename|endswith:
            - '.bat'
            - '.dll'
            - '.exe'
            - '.hta'
            - '.iso'
            - '.ps1'
            - '.txt'
            - '.vbe'
            - '.vbs'
    selection_special:
        Image|endswith:
            - '\dllhost.exe'
            - '\rundll32.exe'
            - '\svchost.exe'
        TargetFilename|endswith:
            - '.bat'
            - '.hta'
            - '.iso'
            - '.ps1'
            - '.vbe'
            - '.vbs'
    filter_main_AppLockerPolicyTest:
        Image: 'C:\Windows\System32\dllhost.exe'
        TargetFilename|contains|all:
            - ':\Users\'
            - '\AppData\Local\Temp\__PSScriptPolicyTest_'
        TargetFilename|endswith: '.ps1'
    filter_main_script_gpo_machine:
        Image: 'C:\Windows\system32\svchost.exe'
        TargetFilename|contains|all:
            - 'C:\Windows\System32\GroupPolicy\DataStore\'
            - '\sysvol\'
            - '\Policies\'
            - '\Machine\Scripts\Startup\'
        TargetFilename|endswith:
            - '.ps1'
            - '.bat'
    filter_main_clipchamp:
        Image: 'C:\Windows\system32\svchost.exe'
        TargetFilename|contains|all:
            - 'C:\Program Files\WindowsApps\Clipchamp'
            - '.ps1'
    filter_main_powershell_preview:
        Image:
            - 'C:\Windows\system32\svchost.exe'
            - 'C:\Windows\SysWOW64\svchost.exe'
        TargetFilename|startswith:
            - 'C:\Program Files\WindowsApps\Microsoft.PowerShellPreview'
            - 'C:\Program Files (x86)\WindowsApps\Microsoft.PowerShellPreview'
        TargetFilename|endswith: '.ps1'
    condition: 1 of selection_* and not 1 of filter_main_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

1 of selection_* and not 1 of filter_main_*

Stage 1: selection_generic

selection_generic:
    Image|endswith:
        - '\csrss.exe'
        - '\lsass.exe'
        - '\RuntimeBroker.exe'
        - '\sihost.exe'
        - '\smss.exe'
        - '\wininit.exe'
        - '\winlogon.exe'
    TargetFilename|endswith:
        - '.bat'
        - '.dll'
        - '.exe'
        - '.hta'
        - '.iso'
        - '.ps1'
        - '.txt'
        - '.vbe'
        - '.vbs'

Stage 2: selection_special

selection_special:
    Image|endswith:
        - '\dllhost.exe'
        - '\rundll32.exe'
        - '\svchost.exe'
    TargetFilename|endswith:
        - '.bat'
        - '.hta'
        - '.iso'
        - '.ps1'
        - '.vbe'
        - '.vbs'

Stage 3: not filter_main_*

filter_main_AppLockerPolicyTest:
    Image: 'C:\Windows\System32\dllhost.exe'
    TargetFilename|contains|all:
        - ':\Users\'
        - '\AppData\Local\Temp\__PSScriptPolicyTest_'
    TargetFilename|endswith: '.ps1'
filter_main_script_gpo_machine:
    Image: 'C:\Windows\system32\svchost.exe'
    TargetFilename|contains|all:
        - 'C:\Windows\System32\GroupPolicy\DataStore\'
        - '\sysvol\'
        - '\Policies\'
        - '\Machine\Scripts\Startup\'
    TargetFilename|endswith:
        - '.ps1'
        - '.bat'
filter_main_clipchamp:
    Image: 'C:\Windows\system32\svchost.exe'
    TargetFilename|contains|all:
        - 'C:\Program Files\WindowsApps\Clipchamp'
        - '.ps1'
filter_main_powershell_preview:
    Image:
        - 'C:\Windows\system32\svchost.exe'
        - 'C:\Windows\SysWOW64\svchost.exe'
    TargetFilename|startswith:
        - 'C:\Program Files\WindowsApps\Microsoft.PowerShellPreview'
        - 'C:\Program Files (x86)\WindowsApps\Microsoft.PowerShellPreview'
    TargetFilename|endswith: '.ps1'

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ImageeqC:\Windows\SysWOW64\svchost.exeexcludes:Image field:"Image" value:"C:\Windows\SysWOW64\svchost.exe"
ImageeqC:\Windows\system32\svchost.exeexcludes:Image field:"Image" value:"C:\Windows\system32\svchost.exe"
TargetFilenamestarts_withC:\Program Files (x86)\WindowsApps\Microsoft.PowerShellPreviewexcludes:TargetFilename field:"TargetFilename" value:"C:\Program Files (x86)\WindowsApps\Microsoft.PowerShellPreview"
TargetFilenamestarts_withC:\Program Files\WindowsApps\Microsoft.PowerShellPreviewexcludes:TargetFilename field:"TargetFilename" value:"C:\Program Files\WindowsApps\Microsoft.PowerShellPreview"
TargetFilenameends_with.ps1excludes:TargetFilename field:"TargetFilename" value:".ps1"
TargetFilenameends_with.batexcludes:TargetFilename field:"TargetFilename" value:".bat"
TargetFilenamematchC:\Windows\System32\GroupPolicy\DataStore\excludes:TargetFilename field:"TargetFilename" value:"C:\Windows\System32\GroupPolicy\DataStore\"
TargetFilenamematch\Machine\Scripts\Startup\excludes:TargetFilename field:"TargetFilename" value:"\Machine\Scripts\Startup\"
TargetFilenamematch\Policies\excludes:TargetFilename field:"TargetFilename" value:"\Policies\"
TargetFilenamematch\sysvol\excludes:TargetFilename field:"TargetFilename" value:"\sysvol\"
ImageeqC:\Windows\System32\dllhost.exeexcludes:Image field:"Image" value:"C:\Windows\System32\dllhost.exe"
TargetFilenamematch:\Users\excludes:TargetFilename field:"TargetFilename" value:":\Users\"
TargetFilenamematch\AppData\Local\Temp\__PSScriptPolicyTest_excludes:TargetFilename field:"TargetFilename" value:"\AppData\Local\Temp\__PSScriptPolicyTest_"
TargetFilenamematch.ps1excludes:TargetFilename field:"TargetFilename" value:".ps1"
TargetFilenamematchC:\Program Files\WindowsApps\Clipchampexcludes:TargetFilename field:"TargetFilename" value:"C:\Program Files\WindowsApps\Clipchamp"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \RuntimeBroker.exe corpus 4 (sigma 4)
  • \csrss.exe corpus 3 (sigma 3)
  • \dllhost.exe corpus 11 (sigma 11)
  • \lsass.exe corpus 5 (sigma 5)
  • \rundll32.exe corpus 94 (sigma 94)
  • \sihost.exe corpus 2 (sigma 2)
  • \smss.exe corpus 2 (sigma 2)
  • \svchost.exe corpus 23 (sigma 22, kusto 1)
  • \wininit.exe corpus 3 (sigma 3)
  • \winlogon.exe corpus 5 (sigma 5)
field:"Image" kind:ends_with
TargetFilenameends_with
  • .bat corpus 17 (sigma 17)
  • .dll corpus 24 (sigma 24)
  • .exe corpus 21 (sigma 20, splunk 1)
  • .hta corpus 14 (sigma 14)
  • .iso corpus 5 (sigma 5)
  • .ps1 corpus 17 (sigma 17)
  • .txt corpus 3 (sigma 3)
  • .vbe corpus 16 (sigma 16)
  • .vbs corpus 18 (sigma 18)
field:"TargetFilename" kind:ends_with