Detection rules › Sigma
Execution Of Non-Existing File
Detects process creation events where the Image field lacks an absolute path, which occurs when the backing file no longer exists on disk at the time of logging - commonly caused by Process Ghosting or other unorthodox process creation techniques.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation | |
| Stealth |
Telemetry coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule body
title: Execution Of Non-Existing File
id: 71158e3f-df67-472b-930e-7d287acaa3e1
status: test
description: |
Detects process creation events where the Image field lacks an absolute path,
which occurs when the backing file no longer exists on disk at the time of
logging - commonly caused by Process Ghosting or other unorthodox process creation techniques.
references:
- https://pentestlaboratories.com/2021/12/08/process-ghosting/
- https://www.elastic.co/blog/process-ghosting-a-new-executable-image-tampering-attack
author: Max Altgelt (Nextron Systems)
date: 2021-12-09
modified: 2026-07-05
tags:
- attack.stealth
- attack.privilege-escalation
- attack.t1055
logsource:
category: process_creation
product: windows
detection:
filter_main_image_absolute_path:
Image|contains: '\'
filter_optional_null:
Image: null
filter_optional_empty:
Image:
- '-'
- ''
filter_optional_4688:
- Image:
- 'MemCompression'
- 'Registry'
- 'System'
- 'vmmem'
- 'vmmemWSL'
- CommandLine:
- 'MemCompression'
- 'Registry'
- 'vmmem'
- 'vmmemWSL'
condition: not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
not 1 of filter_main_* and not 1 of filter_optional_*Stage 1: not filter_main_image_absolute_path
filter_main_image_absolute_path:
Image|contains: '\'
Stage 2: not filter_optional_*
filter_optional_null:
Image: null
filter_optional_empty:
Image:
- '-'
- ''
filter_optional_4688:
- Image:
- 'MemCompression'
- 'Registry'
- 'System'
- 'vmmem'
- 'vmmemWSL'
- CommandLine:
- 'MemCompression'
- 'Registry'
- 'vmmem'
- 'vmmemWSL'
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Image | match | \ | excludes:Image field:"Image" value:"\" |
CommandLine | eq | MemCompression | excludes:CommandLine field:"CommandLine" value:"MemCompression" |
CommandLine | eq | Registry | excludes:CommandLine field:"CommandLine" value:"Registry" |
CommandLine | eq | vmmem | excludes:CommandLine field:"CommandLine" value:"vmmem" |
CommandLine | eq | vmmemWSL | excludes:CommandLine field:"CommandLine" value:"vmmemWSL" |
Image | eq | - | excludes:Image field:"Image" value:"-" |
Image | eq | MemCompression | excludes:Image field:"Image" value:"MemCompression" |
Image | eq | Registry | excludes:Image field:"Image" value:"Registry" |
Image | eq | System | excludes:Image field:"Image" value:"System" |
Image | eq | vmmem | excludes:Image field:"Image" value:"vmmem" |
Image | eq | vmmemWSL | excludes:Image field:"Image" value:"vmmemWSL" |
Image | is_null | excludes:Image |