Detection rules › Sigma

Execution of Suspicious File Type Extension

Status
test
Severity
medium
Log source
category process_creation, product windows
Author
Max Altgelt (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects whether the image specified in a process creation event doesn't refer to an ".exe" (or other known executable extension) file. This can be caused by process ghosting or other unorthodox methods to start a process. This rule might require some initial baselining to align with some third party tooling in the user environment.

MITRE ATT&CK coverage

TacticTechniques
StealthNo specific technique

Telemetry coverage

Rule body

title: Execution of Suspicious File Type Extension
id: c09dad97-1c78-4f71-b127-7edb2b8e491a
status: test
description: |
    Detects whether the image specified in a process creation event doesn't refer to an ".exe" (or other known executable extension) file. This can be caused by process ghosting or other unorthodox methods to start a process.
    This rule might require some initial baselining to align with some third party tooling in the user environment.
references:
    - https://pentestlaboratories.com/2021/12/08/process-ghosting/
author: Max Altgelt (Nextron Systems)
date: 2021-12-09
modified: 2023-11-23
tags:
    - attack.stealth
logsource:
    category: process_creation
    product: windows
detection:
    known_image_extension:
        Image|endswith:
            - '.bin'
            - '.cgi'
            - '.com'
            - '.exe'
            - '.scr'
            - '.tmp' # sadly many installers use this extension
    filter_main_image: # Windows utilities without extension
        Image:
            - 'System'
            - 'Registry'
            - 'MemCompression'
            - 'vmmem'
    filter_main_msi_installers:
        Image|contains: ':\Windows\Installer\MSI'
    filter_main_driver_store:
        Image|contains: ':\Windows\System32\DriverStore\FileRepository\'
    filter_main_msi_rollbackfiles:
        Image|contains: ':\Config.Msi\'
        Image|endswith:
            - '.rbf'
            - '.rbs'
    filter_main_windows_temp:
        - ParentImage|contains: ':\Windows\Temp\'
        - Image|contains: ':\Windows\Temp\'
    filter_main_deleted:
        Image|contains: ':\$Extend\$Deleted\'
    filter_main_empty:
        Image:
            - '-'
            - ''
    filter_main_null:
        Image: null
    filter_optional_avira:
        ParentImage|contains: ':\ProgramData\Avira\'
    filter_optional_nvidia:
        Image|contains: 'NVIDIA\NvBackend\'
        Image|endswith: '.dat'
    filter_optional_winpakpro:
        Image|contains:
            - ':\Program Files (x86)\WINPAKPRO\'
            - ':\Program Files\WINPAKPRO\'
        Image|endswith: '.ngn'
    filter_optional_myq_server:
        Image|endswith:
            - ':\Program Files (x86)\MyQ\Server\pcltool.dll'
            - ':\Program Files\MyQ\Server\pcltool.dll'
    filter_optional_wsl:
        Image|contains|all:
            - '\AppData\Local\Packages\'
            - '\LocalState\rootfs\'
    filter_optional_lzma_exe:
        Image|endswith: '\LZMA_EXE'
    filter_optional_firefox:
        Image|contains: ':\Program Files\Mozilla Firefox\'
    filter_optional_docker:
        ParentImage: 'C:\Windows\System32\services.exe'
        Image|endswith: 'com.docker.service'
    condition: not known_image_extension and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

not known_image_extension and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: not known_image_extension

known_image_extension:
    Image|endswith:
        - '.bin'
        - '.cgi'
        - '.com'
        - '.exe'
        - '.scr'
        - '.tmp'

Stage 2: not filter_main_*

filter_main_image:
    Image:
        - 'System'
        - 'Registry'
        - 'MemCompression'
        - 'vmmem'
filter_main_msi_installers:
    Image|contains: ':\Windows\Installer\MSI'
filter_main_driver_store:
    Image|contains: ':\Windows\System32\DriverStore\FileRepository\'
filter_main_msi_rollbackfiles:
    Image|contains: ':\Config.Msi\'
    Image|endswith:
        - '.rbf'
        - '.rbs'
filter_main_windows_temp:
    - ParentImage|contains: ':\Windows\Temp\'
    - Image|contains: ':\Windows\Temp\'
filter_main_deleted:
    Image|contains: ':\$Extend\$Deleted\'
filter_main_empty:
    Image:
        - '-'
        - ''
filter_main_null:
    Image: null

Stage 3: not filter_optional_*

filter_optional_avira:
    ParentImage|contains: ':\ProgramData\Avira\'
filter_optional_nvidia:
    Image|contains: 'NVIDIA\NvBackend\'
    Image|endswith: '.dat'
filter_optional_winpakpro:
    Image|contains:
        - ':\Program Files (x86)\WINPAKPRO\'
        - ':\Program Files\WINPAKPRO\'
    Image|endswith: '.ngn'
filter_optional_myq_server:
    Image|endswith:
        - ':\Program Files (x86)\MyQ\Server\pcltool.dll'
        - ':\Program Files\MyQ\Server\pcltool.dll'
filter_optional_wsl:
    Image|contains|all:
        - '\AppData\Local\Packages\'
        - '\LocalState\rootfs\'
filter_optional_lzma_exe:
    Image|endswith: '\LZMA_EXE'
filter_optional_firefox:
    Image|contains: ':\Program Files\Mozilla Firefox\'
filter_optional_docker:
    ParentImage: 'C:\Windows\System32\services.exe'
    Image|endswith: 'com.docker.service'

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with.binexcludes:Image field:"Image" value:".bin"
Imageends_with.cgiexcludes:Image field:"Image" value:".cgi"
Imageends_with.comexcludes:Image field:"Image" value:".com"
Imageends_with.exeexcludes:Image field:"Image" value:".exe"
Imageends_with.screxcludes:Image field:"Image" value:".scr"
Imageends_with.tmpexcludes:Image field:"Image" value:".tmp"
Imageends_with.rbfexcludes:Image field:"Image" value:".rbf"
Imageends_with.rbsexcludes:Image field:"Image" value:".rbs"
Imagematch:\Config.Msi\excludes:Image field:"Image" value:":\Config.Msi\"
Imageeq-excludes:Image field:"Image" value:"-"
ImageeqMemCompressionexcludes:Image field:"Image" value:"MemCompression"
ImageeqRegistryexcludes:Image field:"Image" value:"Registry"
ImageeqSystemexcludes:Image field:"Image" value:"System"
Imageeqvmmemexcludes:Image field:"Image" value:"vmmem"
Imageis_null(no value, null check)excludes:Image
Imagematch:\$Extend\$Deleted\excludes:Image field:"Image" value:":\$Extend\$Deleted\"
Imagematch:\Windows\Installer\MSIexcludes:Image field:"Image" value:":\Windows\Installer\MSI"
Imagematch:\Windows\System32\DriverStore\FileRepository\excludes:Image field:"Image" value:":\Windows\System32\DriverStore\FileRepository\"
Imagematch:\Windows\Temp\excludes:Image field:"Image" value:":\Windows\Temp\"
ParentImagematch:\Windows\Temp\excludes:ParentImage field:"ParentImage" value:":\Windows\Temp\"
Imagematch:\Program Files (x86)\WINPAKPRO\excludes:Image field:"Image" value:":\Program Files (x86)\WINPAKPRO\"
Imagematch:\Program Files\WINPAKPRO\excludes:Image field:"Image" value:":\Program Files\WINPAKPRO\"
Imageends_with.ngnexcludes:Image field:"Image" value:".ngn"
Imageends_with.datexcludes:Image field:"Image" value:".dat"
ImagematchNVIDIA\NvBackend\excludes:Image field:"Image" value:"NVIDIA\NvBackend\"
Imageends_withcom.docker.serviceexcludes:Image field:"Image" value:"com.docker.service"
ParentImageeqC:\Windows\System32\services.exeexcludes:ParentImage field:"ParentImage" value:"C:\Windows\System32\services.exe"
Imagematch\AppData\Local\Packages\excludes:Image field:"Image" value:"\AppData\Local\Packages\"
Imagematch\LocalState\rootfs\excludes:Image field:"Image" value:"\LocalState\rootfs\"
Imageends_with:\Program Files (x86)\MyQ\Server\pcltool.dllexcludes:Image field:"Image" value:":\Program Files (x86)\MyQ\Server\pcltool.dll"
Imageends_with:\Program Files\MyQ\Server\pcltool.dllexcludes:Image field:"Image" value:":\Program Files\MyQ\Server\pcltool.dll"
Imageends_with\LZMA_EXEexcludes:Image field:"Image" value:"\LZMA_EXE"
Imagematch:\Program Files\Mozilla Firefox\excludes:Image field:"Image" value:":\Program Files\Mozilla Firefox\"
ParentImagematch:\ProgramData\Avira\excludes:ParentImage field:"ParentImage" value:":\ProgramData\Avira\"