Detection rules › Elastic
Execution from a Downloaded ISO File
Identifies the execution of a process from a downloaded ISO file. Attacker may abuse ISO files to deliver malicious programs.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Rule body
[rule]
description = """
Identifies the execution of a process from a downloaded ISO file. Attacker may abuse ISO files to deliver malicious
programs.
"""
id = "df9cc41e-4686-4aa0-8f79-60055dd01812"
license = "Elastic License v2"
name = "Execution from a Downloaded ISO File"
os_list = ["windows"]
version = "1.0.28"
query = '''
sequence with maxspan=5m
[file where event.action != "deletion" and file.extension : ("ISO", "IMG") and
(
file.path : ("?:\\Users\\*\\Downloads\\*",
"?:\\Users\\*\\Content.Outlook\\*",
"?:\\Users\\*\\AppData\\Local\\Temp\\Temp?_*") or
file.name : "*:Zone.Identifier" or
file.Ext.windows.zone_identifier > 1
) and
not process.executable : "?:\\Windows\\System32\\dllhost.exe"
]
[process where event.action == "start" and
process.parent.name : ("explorer.exe", "cmd.exe", "powershell.exe") and
process.working_directory : "?:\\" and
/* execution from mounted ISO file */
(process.executable : "\\Device\\CdRom*" or (process.executable : "?:\\*" and not process.executable : "?:\\*\\*")) and
not (process.pe.original_file_name : ("setup.exe", "SqlSetupBootstrapper.exe") and process.code_signature.trusted == true)
]
'''
min_endpoint_version = "7.15.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 1
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1566"
name = "Phishing"
reference = "https://attack.mitre.org/techniques/T1566/"
[[threat.technique.subtechnique]]
id = "T1566.001"
name = "Spearphishing Attachment"
reference = "https://attack.mitre.org/techniques/T1566/001/"
[threat.tactic]
id = "TA0001"
name = "Initial Access"
reference = "https://attack.mitre.org/tactics/TA0001/"
[internal]
min_endpoint_version = "7.15.0"
Stages and Predicates
Stage 1: file
[file where event.action != "deletion" and file.extension : ("ISO", "IMG") and
(
file.path : ("?:\\Users\\*\\Downloads\\*",
"?:\\Users\\*\\Content.Outlook\\*",
"?:\\Users\\*\\AppData\\Local\\Temp\\Temp?_*") or
file.name : "*:Zone.Identifier" or
file.Ext.windows.zone_identifier > 1
) and
not process.executable : "?:\\Windows\\System32\\dllhost.exe"
]
Stage 2: process
[process where event.action == "start" and
process.parent.name : ("explorer.exe", "cmd.exe", "powershell.exe") and
process.working_directory : "?:\\" and
(process.executable : "\\Device\\CdRom*" or (process.executable : "?:\\*" and not process.executable : "?:\\*\\*")) and
not (process.pe.original_file_name : ("setup.exe", "SqlSetupBootstrapper.exe") and process.code_signature.trusted == true)
]
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.executable | eq | ?:\Windows\System32\dllhost.exe | excludes:process.executable field:"process.executable" value:"?:\Windows\System32\dllhost.exe" |
process.code_signature.trusted | eq | true | excludes:process.code_signature.trusted field:"process.code_signature.trusted" value:"true" |
process.pe.original_file_name | eq | setup.exe, SqlSetupBootstrapper.exe | excludes:process.pe.original_file_name field:"process.pe.original_file_name" value:"setup.exe" field:"process.pe.original_file_name" value:"SqlSetupBootstrapper.exe" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
event.action | eq |
| field:"EventType" kind:eq value:"start" |
event.action | ne |
| field:"EventType" kind:ne value:"deletion" |
file.Ext.windows.zone_identifier | gt |
| field:"file.Ext.windows.zone_identifier" kind:gt value:"1" |
file.extension | wildcard |
| field:"file.extension" kind:wildcard |
file.name | wildcard |
| field:"file.name" kind:wildcard value:"*:Zone.Identifier" |
file.path | wildcard |
| field:"TargetFilename" kind:wildcard |
process.executable | wildcard |
| field:"Image" kind:wildcard |
process.parent.name | wildcard |
| field:"parent_process_name" kind:wildcard |
process.working_directory | wildcard |
| field:"CurrentDirectory" kind:wildcard value:"?:\" |