Detection rules › Sigma

Uncommon AddinUtil.EXE CommandLine Execution

Status
test
Severity
medium
Log source
category process_creation, product windows
Author
Michael McKinley (@McKinleyMike), Tony Latteri (@TheLatteri)
Source
github.com/SigmaHQ/sigma

Detects execution of the Add-In deployment cache updating utility (AddInutil.exe) with uncommon Addinroot or Pipelineroot paths. An adversary may execute AddinUtil.exe with uncommon Addinroot/Pipelineroot paths that point to the adversaries Addins.Store payload.

MITRE ATT&CK coverage

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule body

title: Uncommon AddinUtil.EXE CommandLine Execution
id: 4f2cd9b6-4a17-440f-bb2a-687abb65993a
status: test
description: |
    Detects execution of the Add-In deployment cache updating utility (AddInutil.exe) with uncommon Addinroot or Pipelineroot paths. An adversary may execute AddinUtil.exe with uncommon Addinroot/Pipelineroot paths that point to the adversaries Addins.Store payload.
references:
    - https://www.blue-prints.blog/content/blog/posts/lolbin/addinutil-lolbas.html
author: Michael McKinley (@McKinleyMike), Tony Latteri (@TheLatteri)
date: 2023-09-18
tags:
    - attack.stealth
    - attack.t1218
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\addinutil.exe'
        - OriginalFileName: 'AddInUtil.exe'
    selection_cli:
        CommandLine|contains:
            - '-AddInRoot:'
            - '-PipelineRoot:'
    filter_main_addinroot:
        CommandLine|contains:
            - '-AddInRoot:"C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA'
            - '-AddInRoot:C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA'
            - '-PipelineRoot:"C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA'
            - '-PipelineRoot:C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA'
    condition: all of selection_* and not 1 of filter_main_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

all of selection_* and not 1 of filter_main_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\addinutil.exe'
    - OriginalFileName: 'AddInUtil.exe'

Stage 2: selection_cli

selection_cli:
    CommandLine|contains:
        - '-AddInRoot:'
        - '-PipelineRoot:'

Stage 3: not filter_main_addinroot

filter_main_addinroot:
    CommandLine|contains:
        - '-AddInRoot:"C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA'
        - '-AddInRoot:C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA'
        - '-PipelineRoot:"C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA'
        - '-PipelineRoot:C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA'

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
CommandLinematch-AddInRoot:C:\Program Files (x86)\Common Files\Microsoft Shared\VSTAexcludes:CommandLine field:"CommandLine" value:"-AddInRoot:C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA"
CommandLinematch-AddInRoot:"C:\Program Files (x86)\Common Files\Microsoft Shared\VSTAexcludes:CommandLine
CommandLinematch-PipelineRoot:C:\Program Files (x86)\Common Files\Microsoft Shared\VSTAexcludes:CommandLine field:"CommandLine" value:"-PipelineRoot:C:\Program Files (x86)\Common Files\Microsoft Shared\VSTA"
CommandLinematch-PipelineRoot:"C:\Program Files (x86)\Common Files\Microsoft Shared\VSTAexcludes:CommandLine

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -AddInRoot: corpus 2 (sigma 2)
  • -PipelineRoot: corpus 2 (sigma 2)
field:"CommandLine" kind:match
Imageends_with
  • \addinutil.exe corpus 4 (sigma 4)
field:"Image" kind:ends_with value:"\addinutil.exe"
OriginalFileNameeq
  • AddInUtil.exe corpus 4 (sigma 3, elastic 1)
field:"OriginalFileName" kind:eq value:"AddInUtil.exe"