Detection rules › Elastic
Windows Installer with Suspicious Properties
Identifies the execution of an installer from an archive or with suspicious properties. Adversaries may abuse msiexec.exe to launch local or network accessible MSI files in an attempt to bypass application whitelisting.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry coverage
Rule body
[metadata]
creation_date = "2023/09/26"
integration = ["endpoint"]
maturity = "production"
updated_date = "2026/07/28"
[rule]
author = ["Elastic"]
building_block_type = "default"
description = """
Identifies the execution of an installer from an archive or with suspicious properties. Adversaries may abuse
msiexec.exe to launch local or network accessible MSI files in an attempt to bypass application whitelisting.
"""
from = "now-119m"
index = ["logs-endpoint.events.*"]
interval = "60m"
language = "eql"
license = "Elastic License v2"
name = "Windows Installer with Suspicious Properties"
references = ["https://lolbas-project.github.io/lolbas/Binaries/Msiexec/"]
risk_score = 21
rule_id = "55f07d1b-25bc-4a0f-aa0c-05323c1319d0"
severity = "low"
tags = [
"Domain: Endpoint",
"OS: Windows",
"Use Case: Threat Detection",
"Tactic: Defense Evasion",
"Rule Type: BBR",
"Data Source: Elastic Defend",
]
type = "eql"
query = '''
sequence by host.id with maxspan=1m
[registry where host.os.type == "windows" and event.type == "change" and process.name : "msiexec.exe" and
(
(registry.value : "InstallSource" and
registry.data.strings : ("?:\\Users\\*\\Temp\\Temp?_*.zip\\*",
"?:\\Users\\*\\*.7z\\*",
"?:\\Users\\*\\*.rar\\*")) or
(registry.value : ("DisplayName", "ProductName") and registry.data.strings : "SetupTest")
)]
[process where host.os.type == "windows" and event.action == "start" and
process.parent.name : "msiexec.exe" and
not process.name : "msiexec.exe" and
not (process.executable : ("?:\\Program Files (x86)\\*.exe", "?:\\Program Files\\*.exe") and process.code_signature.trusted == true)]
'''
[[rule.threat]]
framework = "MITRE ATT&CK"
[[rule.threat.technique]]
id = "T1218"
name = "System Binary Proxy Execution"
reference = "https://attack.mitre.org/techniques/T1218/"
[[rule.threat.technique.subtechnique]]
id = "T1218.007"
name = "Msiexec"
reference = "https://attack.mitre.org/techniques/T1218/007/"
[rule.threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
Stages and Predicates
Ordered sequence: each step below must occur in order within 1m, correlated by host.id.
Stage 1: registry
[registry where host.os.type == "windows" and event.type == "change" and process.name : "msiexec.exe" and
(
(registry.value : "InstallSource" and
registry.data.strings : ("?:\\Users\\*\\Temp\\Temp?_*.zip\\*",
"?:\\Users\\*\\*.7z\\*",
"?:\\Users\\*\\*.rar\\*")) or
(registry.value : ("DisplayName", "ProductName") and registry.data.strings : "SetupTest")
)]
Stage 2: process
[process where host.os.type == "windows" and event.action == "start" and
process.parent.name : "msiexec.exe" and
not process.name : "msiexec.exe" and
not (process.executable : ("?:\\Program Files (x86)\\*.exe", "?:\\Program Files\\*.exe") and process.code_signature.trusted == true)]
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.code_signature.trusted | eq | true | excludes:process.code_signature.trusted field:"process.code_signature.trusted" value:"true" |
process.executable | wildcard | ?:\Program Files (x86)\*.exe, ?:\Program Files\*.exe | excludes:process.executable field:"process.executable" value:"?:\Program Files (x86)\*.exe" field:"process.executable" value:"?:\Program Files\*.exe" |
process.name | eq | msiexec.exe | excludes:process.name field:"process.name" value:"msiexec.exe" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
event.action | eq |
| field:"EventType" kind:eq value:"start" |
event.type | eq |
| field:"event.type" kind:eq value:"change" |
process.name | wildcard |
| field:"process_name" kind:wildcard value:"msiexec.exe" |
process.parent.name | wildcard |
| field:"parent_process_name" kind:wildcard value:"msiexec.exe" |
registry.data.strings | wildcard |
| field:"Details" kind:wildcard |
registry.value | wildcard |
| field:"registry_value_name" kind:wildcard |