Detection rules › Elastic
Potential Evasion via dotNET Framework Installation Utility
The Installer tool is a command-line utility that allows you to install and uninstall server resources by executing the installer components in specified assemblies. Adversaries may abuse this utility to run malicious code.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Stealth | |
| Command & Control |
Rule body
[rule]
description = """
The Installer tool is a command-line utility that allows you to install and uninstall server resources by executing the
installer components in specified assemblies. Adversaries may abuse this utility to run malicious code.
"""
id = "7558b740-a23a-4c73-a060-12ed4e1ddc14"
license = "Elastic License v2"
name = "Potential Evasion via dotNET Framework Installation Utility"
os_list = ["windows"]
reference = ["https://lolbas-project.github.io/lolbas/Binaries/Installutil/"]
version = "1.0.22"
query = '''
process where event.action == "start" and
(
((process.name : "installutil.exe" or process.pe.original_file_name == "InstallUtil.exe") and process.command_line : ("*/LogFile*", "*http*")) or
descendant of [process where event.action == "start" and
(process.name : "installutil.exe" or process.pe.original_file_name == "InstallUtil.exe") and process.command_line : "*/LogFile*"]
) and
not (process.executable : "?:\\Windows\\System32\\conhost.exe" and process.args : "0xffffffff" and process.args : "-ForceV1") and
not (process.name : "installutil.exe" and
process.args : ("?:\\Program Files\\*", "?:\\Program Files (x86)\\*", "PFU.PaperStream.Capture.FiScannerEventService.exe", "PFU.PaperStream.Capture.ReleaseService.exe")) and
not (process.parent.name : "installutil.exe" and process.parent.args : ("?:\\Program Files\\*", "?:\\Program Files (x86)\\*")) and
not process.executable :
("?:\\Program Files\\*exe",
"?:\\Program Files (x86)\\*.exe",
"?:\\Windows\\System32\\wbem\\mofcomp.exe",
"?:\\Windows\\SysWOW64\\wbem\\mofcomp.exe",
"?:\\Windows\\system32\\conhost.exe",
"?:\\Windows\\SysWOW64\\conhost.exe",
"?:\\Windows\\Sys*\\net.exe",
"?:\\Windows\\Sys*\\net1.exe",
"?:\\Windows\\System32\\wbem\\mofcomp.exe") and
not process.parent.executable :
("?:\\Program Files*\\SolarWinds\\Orion\\ConfigurationWizard.exe",
"?:\\Program Files*\\Rescue and Smart Assistant\\InstallUtil64.exe",
"?:\\Program Files*\\Rescue and Smart Assistant\\*.exe",
"?:\\Windows\\System32\\msiexec.exe") and
not (process.executable : "?:\\Windows\\System32\\sc.exe" and process.args : "delete") and
not (process.args : "/LogFile=C:\\ProgramData\\Veeam\\Setup\\Temp\\Veeam.Backup.PowerShell.InstallLog" and process.parent.name : "msiexec.exe") and
not (process.name : "InstallUtil.exe" and process.args : ("C:\\Estensa\\Bin64Client\\SL.Server.Cache.WindowsService.exe", "\\SolarWinds TFTP Server.exe"))
'''
min_endpoint_version = "7.15.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1218"
name = "System Binary Proxy Execution"
reference = "https://attack.mitre.org/techniques/T1218/"
[[threat.technique.subtechnique]]
id = "T1218.004"
name = "InstallUtil"
reference = "https://attack.mitre.org/techniques/T1218/004/"
[threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1105"
name = "Ingress Tool Transfer"
reference = "https://attack.mitre.org/techniques/T1105/"
[threat.tactic]
id = "TA0011"
name = "Command and Control"
reference = "https://attack.mitre.org/tactics/TA0011/"
[internal]
min_endpoint_version = "7.15.0"
Stages and Predicates
Stage 1: process
process where event.action == "start" and
(
((process.name : "installutil.exe" or process.pe.original_file_name == "InstallUtil.exe") and process.command_line : ("*/LogFile*", "*http*")) or
descendant of [process where event.action == "start" and
(process.name : "installutil.exe" or process.pe.original_file_name == "InstallUtil.exe") and process.command_line : "*/LogFile*"]
) and
not (process.executable : "?:\\Windows\\System32\\conhost.exe" and process.args : "0xffffffff" and process.args : "-ForceV1") and
not (process.name : "installutil.exe" and
process.args : ("?:\\Program Files\\*", "?:\\Program Files (x86)\\*", "PFU.PaperStream.Capture.FiScannerEventService.exe", "PFU.PaperStream.Capture.ReleaseService.exe")) and
not (process.parent.name : "installutil.exe" and process.parent.args : ("?:\\Program Files\\*", "?:\\Program Files (x86)\\*")) and
not process.executable :
("?:\\Program Files\\*exe",
"?:\\Program Files (x86)\\*.exe",
"?:\\Windows\\System32\\wbem\\mofcomp.exe",
"?:\\Windows\\SysWOW64\\wbem\\mofcomp.exe",
"?:\\Windows\\system32\\conhost.exe",
"?:\\Windows\\SysWOW64\\conhost.exe",
"?:\\Windows\\Sys*\\net.exe",
"?:\\Windows\\Sys*\\net1.exe",
"?:\\Windows\\System32\\wbem\\mofcomp.exe") and
not process.parent.executable :
("?:\\Program Files*\\SolarWinds\\Orion\\ConfigurationWizard.exe",
"?:\\Program Files*\\Rescue and Smart Assistant\\InstallUtil64.exe",
"?:\\Program Files*\\Rescue and Smart Assistant\\*.exe",
"?:\\Windows\\System32\\msiexec.exe") and
not (process.executable : "?:\\Windows\\System32\\sc.exe" and process.args : "delete") and
not (process.args : "/LogFile=C:\\ProgramData\\Veeam\\Setup\\Temp\\Veeam.Backup.PowerShell.InstallLog" and process.parent.name : "msiexec.exe") and
not (process.name : "InstallUtil.exe" and process.args : ("C:\\Estensa\\Bin64Client\\SL.Server.Cache.WindowsService.exe", "\\SolarWinds TFTP Server.exe"))
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.args | eq | -ForceV1 | excludes:process.args field:"process.args" value:"-ForceV1" |
process.args | eq | 0xffffffff | excludes:process.args field:"process.args" value:"0xffffffff" |
process.executable | eq | ?:\Windows\System32\conhost.exe | excludes:process.executable field:"process.executable" value:"?:\Windows\System32\conhost.exe" |
process.args | eq | /LogFile=C:\ProgramData\Veeam\Setup\Temp\Veeam.Backup.PowerShell.InstallLog | excludes:process.args field:"process.args" value:"/LogFile=C:\ProgramData\Veeam\Setup\Temp\Veeam.Backup.PowerShell.InstallLog" |
process.parent.name | eq | msiexec.exe | excludes:process.parent.name field:"process.parent.name" value:"msiexec.exe" |
process.args | eq | C:\Estensa\Bin64Client\SL.Server.Cache.WindowsService.exe, \SolarWinds TFTP Server.exe | excludes:process.args field:"process.args" value:"C:\Estensa\Bin64Client\SL.Server.Cache.WindowsService.exe" field:"process.args" value:"\SolarWinds TFTP Server.exe" |
process.name | eq | InstallUtil.exe | excludes:process.name field:"process.name" value:"InstallUtil.exe" |
process.args | eq | delete | excludes:process.args field:"process.args" value:"delete" |
process.executable | eq | ?:\Windows\System32\sc.exe | excludes:process.executable field:"process.executable" value:"?:\Windows\System32\sc.exe" |
process.args | wildcard | ?:\Program Files\*, ?:\Program Files (x86)\*, PFU.PaperStream.Capture.FiScannerEventService.exe, PFU.PaperStream.Capture.ReleaseService.exe | excludes:process.args |
process.name | eq | installutil.exe | excludes:process.name field:"process.name" value:"installutil.exe" |
process.parent.args | starts_with | ?:\Program Files\, ?:\Program Files (x86)\ | excludes:process.parent.args field:"process.parent.args" value:"?:\Program Files\" field:"process.parent.args" value:"?:\Program Files (x86)\" |
process.parent.name | eq | installutil.exe | excludes:process.parent.name field:"process.parent.name" value:"installutil.exe" |
process.executable | wildcard | ?:\Program Files\*exe, ?:\Program Files (x86)\*.exe, ?:\Windows\System32\wbem\mofcomp.exe, ?:\Windows\SysWOW64\wbem\mofcomp.exe, ?:\Windows\system32\conhost.exe, ?:\Windows\SysWOW64\conhost.exe, ?:\Windows\Sys*\net.exe, ?:\Windows\Sys*\net1.exe, ?:\Windows\System32\wbem\mofcomp.exe | excludes:process.executable |
process.parent.executable | wildcard | ?:\Program Files*\SolarWinds\Orion\ConfigurationWizard.exe, ?:\Program Files*\Rescue and Smart Assistant\InstallUtil64.exe, ?:\Program Files*\Rescue and Smart Assistant\*.exe, ?:\Windows\System32\msiexec.exe | excludes:process.parent.executable |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
event.action | eq |
| field:"EventType" kind:eq value:"start" |
process.command_line | wildcard |
| field:"CommandLine" kind:wildcard |
process.name | wildcard |
| field:"process_name" kind:wildcard value:"installutil.exe" |
process.pe.original_file_name | eq |
| field:"OriginalFileName" kind:eq value:"InstallUtil.exe" |