Detection rules › Sigma

Msiexec Quiet Installation

Status
test
Severity
medium
Log source
category process_creation, product windows
Author
frack113
Source
github.com/SigmaHQ/sigma

Adversaries may abuse msiexec.exe to proxy execution of malicious payloads. Msiexec.exe is the command-line utility for the Windows Installer and is thus commonly associated with executing installation packages (.msi)

Known false positives

  • WindowsApps installing updates via the quiet flag

MITRE ATT&CK coverage

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule body

title: Msiexec Quiet Installation
id: 79a87aa6-e4bd-42fc-a5bb-5e6fbdcd62f5
status: test
description: |
    Adversaries may abuse msiexec.exe to proxy execution of malicious payloads.
    Msiexec.exe is the command-line utility for the Windows Installer and is thus commonly associated with executing installation packages (.msi)
references:
    - https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1218.007/T1218.007.md
    - https://twitter.com/_st0pp3r_/status/1583914244344799235
author: frack113
date: 2022-01-16
modified: 2026-07-28
tags:
    - attack.stealth
    - attack.t1218.007
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\msiexec.exe'
        - OriginalFileName: 'msiexec.exe'
    selection_cli:
        # Note that there is no space before and after the arguments because it's possible to write a commandline as such
        # Example: msiexec -q/i [MSI Package]
        CommandLine|contains|windash:
            - '-i'
            - '-package'
            - '-a'
            - '-j'
    selection_quiet:
        CommandLine|contains|windash: '-q'
    filter_main_system_temp:
        ParentImage|startswith: 'C:\Windows\Temp\'
    filter_main_ccm:
        ParentImage: 'C:\Windows\CCM\Ccm32BitLauncher.exe'
        IntegrityLevel:
            - 'System'
            - 'S-1-16-16384'
    filter_optional_user_temp:
        # The %temp% is a very common location for installers
        ParentImage|startswith: 'C:\Users\'
        ParentImage|contains: '\AppData\Local\Temp\'
    filter_optional_wsl:
        # C:\WINDOWS\system32\msiexec.exe /quiet /i "C:\Users\xodih\AppData\Local\Temp\wsl.2.6.3.0.arm64 (2).msi" SKIPVALIDATION=1 /L*V C:\Users\xodih\AppData\Local\Temp\wsl-install-logs.txt
        ParentImage|endswith: 'C:\Windows\System32\wsl.exe'
        Image|endswith: 'C:\Windows\System32\msiexec.exe'
    condition: all of selection_* and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - WindowsApps installing updates via the quiet flag
level: medium

Stages and Predicates

Stage 0: condition

all of selection_* and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\msiexec.exe'
    - OriginalFileName: 'msiexec.exe'

Stage 2: selection_cli

selection_cli:
    CommandLine|contains|windash:
        - '-i'
        - '-package'
        - '-a'
        - '-j'

Stage 3: selection_quiet

selection_quiet:
    CommandLine|contains|windash: '-q'

Stage 4: not filter_main_*

filter_main_system_temp:
    ParentImage|startswith: 'C:\Windows\Temp\'
filter_main_ccm:
    ParentImage: 'C:\Windows\CCM\Ccm32BitLauncher.exe'
    IntegrityLevel:
        - 'System'
        - 'S-1-16-16384'

Stage 5: not filter_optional_*

filter_optional_user_temp:
    ParentImage|startswith: 'C:\Users\'
    ParentImage|contains: '\AppData\Local\Temp\'
filter_optional_wsl:
    ParentImage|endswith: 'C:\Windows\System32\wsl.exe'
    Image|endswith: 'C:\Windows\System32\msiexec.exe'

Exclusions

The rule actively suppresses these predicates.

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -a transforms: windash corpus 8 (sigma 6, elastic 1, splunk 1)
  • -i transforms: windash corpus 7 (sigma 7)
  • -j transforms: windash corpus 2 (sigma 2)
  • -package transforms: windash corpus 2 (sigma 2)
  • -q transforms: windash corpus 9 (sigma 6, kusto 2, splunk 1)
field:"CommandLine" kind:match
Imageends_with
  • \msiexec.exe corpus 20 (sigma 20)
field:"Image" kind:ends_with value:"\msiexec.exe"
OriginalFileNameeq
  • msiexec.exe corpus 20 (elastic 11, sigma 5, splunk 4)
field:"OriginalFileName" kind:eq value:"msiexec.exe"