Skip to content

Office Add-Ins

Add-ins Office loads at startup, with LoadBehavior deciding whether they load.

Use it to list the add-ins each Office application loads at startup, and spot one that does not belong.

  • NTUSER.DAT
  • Persistence

What It Is

Microsoft Office loads add-ins at startup from Addins keys, with one subkey per add-in under the Office application's key. Each entry has a LoadBehavior value that tells the application when to load the add-in and records whether it is loaded, with 3 meaning load at startup. Other values include a Description, a FriendlyName shown in the add-ins dialogue and a Manifest path. The per-user entries live in the user's NTUSER.DAT hive, and machine-wide entries under HKLM.

What It Proves

An add-in registered under an Office application with LoadBehavior set to 3 is loaded and connected each time that application starts. It is a supported extension point an attacker can abuse.

What It Does Not Prove

Genuine add-ins fill these keys, so judge by the add-in target and publisher. LoadBehavior set to 0 or 2 means it is present but does not load automatically.

Where It Lives

Office Add-Ins lives in the NTUSER.DAT hive, and every user profile has its own copy, so what it shows belongs to one user. Offline Hive shows the path inside the hive file, as Registry Explorer opens it, and Live System shows the same key as regedit shows it on a running machine. The line under the path is where the hive file sits on disk.

NTUSER.DAT\Software\Microsoft\Office\<app>\Addins\<progid>
Hive file: C:\Users\<user>\NTUSER.DAT

What It Looks Like

These are three values from this key on ws-042, the fictional machine the wiki follows, decoded into plain English. Each row shows the value as Windows stores it, its name, type and data, then what it tells you.

Values in Office Add-Ins, each with what it tells you
Registry ValueWhat It Tells You

Outlook\Addins\TeamsAddin.FastConnect\FriendlyName

REG_SZMicrosoft Teams Meeting Add-in for Microsoft Office

alice's Outlook has the Teams Meeting Add-in registered, a genuine Microsoft add-in. Resolve its ProgID to the DLL to confirm the publisher.

Outlook\Addins\TeamsAddin.FastConnect\LoadBehavior

REG_DWORD0x00000003 (3)

LoadBehavior 3 loads it each time Outlook starts, the usual setting for this add-in. Judge an add-in by its DLL and publisher, not by this value.

Excel\Addins\PDFMaker.OfficeAddin\LoadBehavior

REG_DWORD0x00000002 (2)

Excel's Acrobat PDFMaker add-in has LoadBehavior 2, so it no longer loads at start. A user turned it off or a load failed, so resolve its DLL before ruling it out.

How to Read It

List add-ins under each Office application, such as Word, Excel and Outlook. Read LoadBehavior, where 3 loads at startup, 9 or 16 on demand, and 0 or 2 not automatically. Resolve the add-in to its DLL, manifest or document and check where it lives.

When Windows Writes It
When an add-in is installed or its LoadBehavior changes.
Which Windows Versions
Microsoft Office on Windows 7 to 11
Tools That Parse It
Autoruns, Registry Explorer, RECmd

Hunt It

Microsoft does not say which keys Defender records, so confirm it records these first. A hit shows an add-in registered, not that it loaded. A LoadBehavior of 3 on a new add-in is the one to review.

KQLDefender XDR, Advanced hunting
// Add-ins registered or set to load under OfficeDeviceRegistryEvents| where Timestamp > ago(30d)| where DeviceName startswith "ws-042"| where RegistryKey contains @"\Office\" and RegistryKey contains @"\Addins\"| project Timestamp, ActionType, RegistryKey, RegistryValueName, RegistryValueData, InitiatingProcessCommandLine

Confirm It With

One artefact can mislead on its own. These other records show the same activity, or pin down when it happened, so use them to back up what Office Add-Ins shows.

  • Office Application Loads a DLL, Sysmon Event 7Not in the RegistryShows the add-in actually loading when the Office app starts.

Sources