Detection rules › Sigma

Potential Persistence Via Visual Studio Tools for Office

Status
test
Severity
medium
Log source
product windows, category registry_set
Author
Bhabesh Raj
Source
github.com/SigmaHQ/sigma

Detects persistence via Visual Studio Tools for Office (VSTO) add-ins in Office applications.

MITRE ATT&CK coverage

Event coverage

ProviderEventTitle
SysmonEvent ID 13RegistryEvent (Value Set)

Rule body yaml

title: Potential Persistence Via Visual Studio Tools for Office
id: 9d15044a-7cfe-4d23-8085-6ebc11df7685
status: test
description: Detects persistence via Visual Studio Tools for Office (VSTO) add-ins in Office applications.
references:
    - https://twitter.com/_vivami/status/1347925307643355138
    - https://vanmieghem.io/stealth-outlook-persistence/
author: Bhabesh Raj
date: 2021-01-10
modified: 2026-01-09
tags:
    - attack.t1137.006
    - attack.persistence
logsource:
    category: registry_set
    product: windows
detection:
    selection:
        TargetObject|contains:
            - '\Software\Microsoft\Office\Outlook\Addins\'
            - '\Software\Microsoft\Office\Word\Addins\'
            - '\Software\Microsoft\Office\Excel\Addins\'
            - '\Software\Microsoft\Office\Powerpoint\Addins\'
            - '\Software\Microsoft\VSTO\Security\Inclusion\'
    filter_main_system:
        Image:
            - 'C:\Windows\System32\msiexec.exe'
            - 'C:\Windows\SysWOW64\msiexec.exe'
            - 'C:\Windows\System32\regsvr32.exe'
            - 'C:\Windows\SysWOW64\regsvr32.exe' # e.g. default Evernote installation
    filter_main_office_click_to_run:
        Image|startswith:
            - 'C:\Program Files\Common Files (x86)\Microsoft Shared\ClickToRun\'
            - 'C:\Program Files\Common Files\Microsoft Shared\ClickToRun\'
        Image|endswith: '\OfficeClickToRun.exe'
    filter_main_integrator:
        Image:
            - 'C:\Program Files (x86)\Microsoft Office\root\integration\integrator.exe'
            - 'C:\Program Files\Microsoft Office\root\integration\integrator.exe'
    filter_main_office_apps:
        Image|startswith:
            - 'C:\Program Files\Microsoft Office\OFFICE'
            - 'C:\Program Files (x86)\Microsoft Office\OFFICE'
            - 'C:\Program Files\Microsoft Office\Root\OFFICE'
            - 'C:\Program Files (x86)\Microsoft Office\Root\OFFICE'
            - 'C:\PROGRA~2\MICROS~2\Office'
        Image|endswith:
            - '\excel.exe'
            - '\Integrator.exe'
            - '\OneNote.exe'
            - '\outlook.exe'
            - '\powerpnt.exe'
            - '\Teams.exe'
            - '\visio.exe'
            - '\winword.exe'
    filter_main_vsto:
        Image|startswith:
            - 'C:\Program Files\Common Files\Microsoft Shared\VSTO\'
            - 'C:\Program Files (x86)\Microsoft Shared\VSTO\'
        Image|endswith: '\VSTOInstaller.exe'
    filter_optional_avg:
        Image:
            - 'C:\Program Files\AVG\Antivirus\RegSvr.exe'
            - 'C:\Program Files (x86)\AVG\Antivirus\RegSvr.exe'
        TargetObject|contains: '\Microsoft\Office\Outlook\Addins\Antivirus.AsOutExt\'
    filter_optional_avast:
        Image:
            - 'C:\Program Files\Avast Software\Avast\RegSvr.exe'
            - 'C:\Program Files (x86)\Avast Software\Avast\RegSvr.exe'
        TargetObject|contains: '\Microsoft\Office\Outlook\Addins\Avast.AsOutExt\'
    condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Legitimate Addin Installation
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection

selection:
    TargetObject|contains:
        - '\Software\Microsoft\Office\Outlook\Addins\'
        - '\Software\Microsoft\Office\Word\Addins\'
        - '\Software\Microsoft\Office\Excel\Addins\'
        - '\Software\Microsoft\Office\Powerpoint\Addins\'
        - '\Software\Microsoft\VSTO\Security\Inclusion\'

Stage 2: not filter_main_*

filter_main_system:
    Image:
        - 'C:\Windows\System32\msiexec.exe'
        - 'C:\Windows\SysWOW64\msiexec.exe'
        - 'C:\Windows\System32\regsvr32.exe'
        - 'C:\Windows\SysWOW64\regsvr32.exe'
filter_main_office_click_to_run:
    Image|startswith:
        - 'C:\Program Files\Common Files (x86)\Microsoft Shared\ClickToRun\'
        - 'C:\Program Files\Common Files\Microsoft Shared\ClickToRun\'
    Image|endswith: '\OfficeClickToRun.exe'
filter_main_integrator:
    Image:
        - 'C:\Program Files (x86)\Microsoft Office\root\integration\integrator.exe'
        - 'C:\Program Files\Microsoft Office\root\integration\integrator.exe'
filter_main_office_apps:
    Image|startswith:
        - 'C:\Program Files\Microsoft Office\OFFICE'
        - 'C:\Program Files (x86)\Microsoft Office\OFFICE'
        - 'C:\Program Files\Microsoft Office\Root\OFFICE'
        - 'C:\Program Files (x86)\Microsoft Office\Root\OFFICE'
        - 'C:\PROGRA~2\MICROS~2\Office'
    Image|endswith:
        - '\excel.exe'
        - '\Integrator.exe'
        - '\OneNote.exe'
        - '\outlook.exe'
        - '\powerpnt.exe'
        - '\Teams.exe'
        - '\visio.exe'
        - '\winword.exe'
filter_main_vsto:
    Image|startswith:
        - 'C:\Program Files\Common Files\Microsoft Shared\VSTO\'
        - 'C:\Program Files (x86)\Microsoft Shared\VSTO\'
    Image|endswith: '\VSTOInstaller.exe'

Stage 3: not filter_optional_*

filter_optional_avg:
    Image:
        - 'C:\Program Files\AVG\Antivirus\RegSvr.exe'
        - 'C:\Program Files (x86)\AVG\Antivirus\RegSvr.exe'
    TargetObject|contains: '\Microsoft\Office\Outlook\Addins\Antivirus.AsOutExt\'
filter_optional_avast:
    Image:
        - 'C:\Program Files\Avast Software\Avast\RegSvr.exe'
        - 'C:\Program Files (x86)\Avast Software\Avast\RegSvr.exe'
    TargetObject|contains: '\Microsoft\Office\Outlook\Addins\Avast.AsOutExt\'

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
Imageends_with\Integrator.exe
Imageends_with\OneNote.exe
Imageends_with\Teams.exe
Imageends_with\excel.exe
Imageends_with\outlook.exe
Imageends_with\powerpnt.exe
Imageends_with\visio.exe
Imageends_with\winword.exe
Imagestarts_withC:\PROGRA~2\MICROS~2\Office
Imagestarts_withC:\Program Files (x86)\Microsoft Office\OFFICE
Imagestarts_withC:\Program Files (x86)\Microsoft Office\Root\OFFICE
Imagestarts_withC:\Program Files\Microsoft Office\OFFICE
Imagestarts_withC:\Program Files\Microsoft Office\Root\OFFICE
Imagestarts_withC:\Program Files (x86)\Microsoft Shared\VSTO\
Imagestarts_withC:\Program Files\Common Files\Microsoft Shared\VSTO\
Imageends_with\VSTOInstaller.exe
Imagestarts_withC:\Program Files\Common Files (x86)\Microsoft Shared\ClickToRun\
Imagestarts_withC:\Program Files\Common Files\Microsoft Shared\ClickToRun\
Imageends_with\OfficeClickToRun.exe
ImageeqC:\Program Files (x86)\Microsoft Office\root\integration\integrator.exe
ImageeqC:\Program Files\Microsoft Office\root\integration\integrator.exe
ImageeqC:\Windows\SysWOW64\msiexec.exe
ImageeqC:\Windows\SysWOW64\regsvr32.exe
ImageeqC:\Windows\System32\msiexec.exe
ImageeqC:\Windows\System32\regsvr32.exe
ImageeqC:\Program Files (x86)\AVG\Antivirus\RegSvr.exe
ImageeqC:\Program Files\AVG\Antivirus\RegSvr.exe
TargetObjectmatch\Microsoft\Office\Outlook\Addins\Antivirus.AsOutExt\
ImageeqC:\Program Files (x86)\Avast Software\Avast\RegSvr.exe
ImageeqC:\Program Files\Avast Software\Avast\RegSvr.exe
TargetObjectmatch\Microsoft\Office\Outlook\Addins\Avast.AsOutExt\

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
TargetObjectmatch
  • \Software\Microsoft\Office\Excel\Addins\
  • \Software\Microsoft\Office\Outlook\Addins\
  • \Software\Microsoft\Office\Powerpoint\Addins\
  • \Software\Microsoft\Office\Word\Addins\
  • \Software\Microsoft\VSTO\Security\Inclusion\