Skip to main content
T1176Persistencemedium difficulty

Software Extensions

Software Extensions (T1176) covers persistence through malicious browser and IDE add-ons: a Chrome extension force-loaded with --load-extension, a .crx dropped straight into a profile folder, or a rogue VS Code extension. Extensions inherit the host application's permissions, so a compromised one reads cookies, sessions, and source code without tripping alerts built for standalone executables.

Practice detecting Software Extensions on realistic XDR, SIEM alerts in SOCSimulator Operations.

XDRSIEM

What is Software Extensions?

Software Extensions is documented as technique T1176 in MITRE ATT&CK® v19.1 under the Persistence tactic. Detection requires visibility into XDR, SIEM telemetry.

A browser extension is granted the permissions declared in its manifest at install time, things like tabs, cookies, webRequest, and host access to all_urls, and it keeps those permissions on every browser launch afterward. Adversaries reach that install point three ways: social engineering a user into adding a look-alike extension from the Web Store, force-loading an unpacked extension directly with the --load-extension command-line flag, or pushing an extension ID through the ExtensionInstallForcelist registry policy so it installs silently across every managed endpoint. Because the extension runs inside the trusted browser process, it can read or rewrite every page the user visits and lift session cookies without ever appearing as a standalone malicious binary on disk.

The IDE variant, T1176.002, works the same way inside developer tooling. Visual Studio Code's Marketplace vetting is thinner than most app stores, and MITRE's own technique page documents incidents where malicious VSCode extensions exposed personally identifiable information and gave attackers backdoor access after developers installed them. A compromised IDE extension executes arbitrary code the moment the workspace loads, and because developers run their IDE with their own repo credentials and often live CI/CD tokens, the blast radius extends past the browser into source code and build pipelines.

ChromeLoader is the clearest real-world example of the browser variant. It distributes through ISO files disguised as cracked games or pirated media on pay-per-install sites, and once mounted, an installer performs cross-process injection into svchost.exe via the Task Scheduler COM API to run encoded PowerShell on a schedule. That PowerShell downloads a compressed extension package to disk and spawns chrome.exe with --load-extension pointing at it, sidestepping the Web Store review process entirely, and the resulting extension blocks the user from reaching Chrome's extension management page to remove it.

Where Software Extensions fits in an attack

Extension abuse almost never opens an intrusion by itself; it follows an already-successful lure. Users install ChromeLoader-bearing installers from pirated-media searches, or a phishing email delivers a macro document that runs the extension-drop PowerShell directly. Once the extension loads, it sits in Persistence and usually doubles as Collection: reading form fields, redirecting search traffic, or lifting the session cookies of whatever site the browser opens next.

What follows depends on the payload's goal. Adware-focused families like ChromeLoader monetize through ad injection and search hijacking. Cookie-theft-focused extensions harvest authenticated sessions and hand them to infostealer infrastructure for account takeover, achieving initial access to SaaS tools without ever needing the victim's password. Extensions also survive browser restarts and most reimaging playbooks that focus on the OS rather than per-profile browser state, so a malicious extension can outlive an otherwise-clean incident response unless the analyst explicitly checks installed extensions and force-install policy during closure.

Detection Strategies

The following detection strategies help SOC analysts identify Software Extensions activity. These methods apply across XDR, SIEM environments and can be implemented as detection rules, correlation queries, or behavioral analytics in your security platform.

Sigma
detection:
  selection:
    Image|endswith:
      - '\brave.exe'
      - '\chrome.exe'
      - '\msedge.exe'
      - '\opera.exe'
      - '\vivaldi.exe'
    CommandLine|contains: '--load-extension='
  condition: selection

SigmaHQ's Chromium load-extension rule (tagged attack.t1176.001): any Chromium-based browser launched with the load-extension flag to sideload an unpacked add-on. This is the documented mechanism ChromeLoader uses to inject its ad-hijacking extension after a PowerShell-driven install.

EQL
file where host.os.type == "windows" and event.type == "creation" and
(
  (file.extension == "xpi" and file.path : "?:\\Users\\*\\AppData\\Roaming\\*\\Profiles\\*\\Extensions\\*.xpi")
  or (file.extension == "crx" and file.path : "?:\\Users\\*\\AppData\\Local\\*\\*\\User Data\\*\\Webstore Downloads\\*")
)

Derived from Elastic's Browser Extension Install rule, mapped directly to T1176/T1176.001: a .xpi written into a Firefox profile's Extensions folder, or a .crx written outside Chrome's own Webstore Downloads cache. File-creation telemetry catches extensions dropped by a script instead of installed through the store UI.

Simulated example generated by SOCSimulator Research
Timestamp: 2026-07-16T02:41:09.318Z
DeviceName: WS-ACCT-22.corp.local
FileName: chrome.exe
ProcessCommandLine: chrome.exe --load-extension="C:\Users\jsantos\AppData\Local\Temp\ext_cache\a13f" --no-first-run
InitiatingProcessFileName: powershell.exe
InitiatingProcessCommandLine: powershell.exe -enc SQBFAFgAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4A
AccountName: CORP\jsantos

Tuning and false positives

Legitimate enterprise tooling looks a lot like this. IT-managed browsers push approved extensions such as password managers, DLP agents, and VPN clients through the same ExtensionInstallForcelist registry mechanism attackers abuse, and QA or security teams use --load-extension routinely to test an unpacked build before Web Store submission. Browser automation frameworks like Selenium, and intercepting proxies like Burp Suite, also load a custom extension on launch, which SigmaHQ's own rule notes as the expected false-positive source.

The fix is an allow-list keyed on extension ID and installing process, not the presence of the flag or the registry key alone. Maintain the list of extension IDs your organization pushes via GPO, exclude your QA and test-automation service accounts from the --load-extension rule, and alert only on IDs or install paths outside that set. For file-creation rules, exclude the browser's own installer as the writing process and treat anything else, an Office app, a script interpreter, an unfamiliar binary, writing into the extension cache as the signal worth chasing.

Example Alerts

These realistic alert examples show what Software Extensions looks like in your security tools. Use them to tune detection rules and train analysts to recognize true positives versus false positives in live environments.

HighXDR

Chrome Launched with --load-extension from Temp Directory

powershell.exe on WS-ACCT-22.corp.local spawned chrome.exe with --load-extension="C:\Users\jsantos\AppData\Local\Temp\ext_cache\a13f", loading an unpacked extension outside the Web Store. The parent PowerShell process had decoded a base64 command moments earlier, consistent with ChromeLoader-style injection.

MediumXDR

.crx Dropped Outside Web Store Download Path

A .crx file named productivity_helper.crx was written to C:\Users\jsantos\AppData\Local\Google\Chrome\User Data\Default\Extension Cache\ by an Office child process (WINWORD.EXE spawning cmd.exe), not the browser itself. Extension files created by anything other than Chrome's own installer are a strong install-time signal.

HighSIEM

Chrome Extension Force-Installed via Registry Policy

Registry Event 13 on FS-07.corp.local wrote a new value under Software\Policies\Google\Chrome\ExtensionInstallForcelist referencing extension ID 'bihmplhobchoageeokmgbdihknkjbknd', an ID not present on the approved-extensions change ticket for this host.

Responding to Software Extensions

When this fires, first identify the extension ID and check it against your approved list and a reputation source. If it is unrecognized, pull the install context: what process wrote the .crx or .xpi, or the registry key, which user account, and whether a help-desk ticket or GPO change explains it. Check the extension's requested permissions, since access to cookies, all_urls, or webRequest on every site is the difference between a minor nuisance and full session-hijacking capability.

If the extension is confirmed unauthorized, disable it through browser policy or remove the profile's Extensions folder entry, then rotate any session cookies and credentials the browser had active at install time, since a cookie-stealing extension may already have exfiltrated live sessions before the alert fired. Check other browsers and other hosts for the same extension ID or the same force-install registry key, since enterprise-scale abuse usually pushes through GPO to more than one machine, and escalate to IR if the same PowerShell or task-scheduler pattern ChromeLoader-style droppers use shows up alongside it.

Frequently Asked Questions

How do SOC analysts detect Software Extensions?
Detection centers on XDR, SIEM telemetry for the persistence phase of the attack. Alert on chrome.exe, brave.exe, msedge.exe, opera.exe, or vivaldi.exe process creation where the command line contains --load-extension=, which force-loads an unpacked extension outside the Chrome Web Store review path. This mirrors SigmaHQ's Chromium load-extension rule and is the exact mechanism ChromeLoader malware uses to inject its ad-hijacking extension via PowerShell. Watch for .crx file creation under \AppData\Local\Google\Chrome\User Data\...\Webstore Downloads\ and .xpi creation under \AppData\Roaming\...\Profiles\...\Extensions\, the two on-disk drop points Elastic's Browser Extension Install rule keys on for Chromium and Firefox respectively.
What does a Software Extensions alert look like?
A representative XDR detection is "Chrome Launched with --load-extension from Temp Directory" (high severity): powershell.exe on WS-ACCT-22.corp.local spawned chrome.exe with --load-extension="C:\Users\jsantos\AppData\Local\Temp\ext_cache\a13f", loading an unpacked extension outside the Web Store. The parent PowerShell process had decoded a base64 command moments earlier, consistent with ChromeLoader-style injection.
Which tools detect Software Extensions, and how can I practice?
Software Extensions (T1176) is best surfaced with XDR, SIEM telemetry, which exposes the persistence signals described above. Practice detecting it on those exact consoles in SOCSimulator Operations, free.
Glossary

What is Persistence? SOC Glossary

Persistence is the set of techniques an adversary uses to keep access to a compromised system after whatever gave them t…

Read more
Glossary

What is EDR? SOC Glossary

Endpoint Detection and Response (EDR) is a security technology that continuously monitors endpoint activity, recording p…

Read more
Glossary

What is Threat Hunting? SOC Glossary

Threat hunting is the proactive, human-led process of searching through security telemetry to find hidden threats that e…

Read more
Glossary

What is IOC? SOC Glossary

An Indicator of Compromise (IOC) is an observable artifact, such as a file hash, IP address, domain name, URL, registry …

Read more
Career Path

Threat Hunter Career Guide: Salary & Skills

Threat Hunters do not wait for alerts. You develop hypotheses based on threat intelligence and adversary behavior models…

Read more
Career Path

Detection Engineer Career Guide: Salary & Skills

Detection Engineers build the rules, analytics, and automated workflows that determine what the SOC can see. You transla…

Read more
Tool

XDR Training Console: SOCSimulator

The XDR console in SOCSimulator replicates the investigation workflow of platforms like CrowdStrike Falcon, Microsoft De…

Read more
Tool

SIEM Training Console: SOCSimulator

The SIEM console in SOCSimulator replicates the workflow of enterprise platforms like Splunk Enterprise Security, Micros…

Read more
Comparison

SOCSimulator Vs. Letsdefend: Platform Comparison

SOCSimulator wins on operational realism. You get multi-tool shift simulation with SLA pressure, noise injection, and al…

Read more
Glossary

SOC Glossary: Security Operations Terminology

Complete glossary of Security Operations Center terminology for aspiring SOC analysts.

Read more
Feature

Shift Mode: Real-Time SOC Simulation

Practice alert triage under realistic time pressure with SLA timers and noise injection.

Read more
Feature

Operations: Guided Training Operations

Structured CTF-style investigation operations covering real-world attack scenarios.

Read more