Manual Loading of a Suspicious Chromium Extension

Detects the manual loading of a Chromium-based browser extension via command line arguments. This activity is suspicious and could indicate a threat actor loading a malicious extension to persist or collect browsing secrets such as cookies and authentication tokens.

Elastic rule (View on GitHub)

  1[metadata]
  2creation_date = "2026/01/30"
  3integration = ["endpoint"]
  4maturity = "production"
  5updated_date = "2026/01/30"
  6
  7[rule]
  8author = ["Elastic"]
  9description = """
 10Detects the manual loading of a Chromium-based browser extension via command line arguments. This activity 
 11is suspicious and could indicate a threat actor loading a malicious extension to persist or collect browsing 
 12secrets such as cookies and authentication tokens.
 13"""
 14from = "now-9m"
 15index = ["logs-endpoint.events.process-*"]
 16language = "eql"
 17license = "Elastic License v2"
 18name = "Manual Loading of a Suspicious Chromium Extension"
 19references = [
 20    "https://cedowens.medium.com/remotely-dumping-chrome-cookies-revisited-b25343257209",
 21    "https://github.com/cedowens/Dump-Chrome-Cookies"
 22]
 23risk_score = 73
 24rule_id = "f1f3070e-045c-4e03-ae58-d11d43d2ee51"
 25severity = "high"
 26tags = [
 27    "Domain: Endpoint",
 28    "OS: macOS",
 29    "Use Case: Threat Detection",
 30    "Tactic: Persistence",
 31    "Tactic: Credential Access",
 32    "Data Source: Elastic Defend",
 33    "Resources: Investigation Guide"
 34]
 35timestamp_override = "event.ingested"
 36type = "eql"
 37note = """## Triage and analysis
 38
 39> **Disclaimer**:
 40> This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance. While every effort has been made to ensure its quality, we recommend validating the content and adapting it to suit your specific environment and operational needs.
 41
 42### Investigating Manual Loading of a Suspicious Chromium Extension
 43
 44Chromium-based browsers support loading extensions from local directories using the --load-extension command line flag, bypassing the normal extension store installation process. Threat actors abuse this capability to load malicious extensions that can steal cookies, capture session tokens, intercept form submissions, or inject content into web pages. Unlike store-installed extensions, manually loaded extensions don't undergo security review and can request arbitrary permissions. This detection rule identifies browsers launched with the --load-extension flag from suspicious parent processes.
 45
 46### Possible investigation steps
 47
 48- Examine the process.args containing --load-extension to identify the full path of the extension being loaded.
 49- Navigate to the extension directory and review the manifest.json to understand the permissions requested, including access to cookies, tabs, or web requests.
 50- Analyze the extension's JavaScript files for malicious functionality such as cookie exfiltration, form interception, or communication with external servers.
 51- Review the process.parent.executable to understand how the browser was launched with the malicious extension and trace back to the initial execution vector.
 52- Check for network connections made by the browser process to identify potential data exfiltration endpoints.
 53- Review browser profile data for evidence of credential theft or session hijacking.
 54- Search for the same extension path across other systems to identify potential lateral movement or widespread deployment.
 55
 56### False positive analysis
 57
 58- Cypress and other automated testing frameworks load extensions for browser automation. These are already excluded in the query.
 59- ChromeDriver used for Selenium testing loads extensions programmatically. These paths are excluded in the query.
 60- Developer debugging may require manual extension loading during active development. Verify with development teams if such activities are expected.
 61- Enterprise browser customization may deploy internal extensions via command line. Review with IT operations to document approved extensions.
 62
 63### Response and remediation
 64
 65- Immediately terminate the browser process to stop any ongoing malicious activity such as cookie theft or session hijacking.
 66- Remove the malicious extension directory from the filesystem to prevent future loading.
 67- Clear browser session data including cookies, cached credentials, and saved passwords for the affected browser profile.
 68- Review and revoke any sessions for sensitive web applications that were accessed while the extension was loaded.
 69- Investigate how the malicious extension was deployed and remediate the initial access vector.
 70- Block the malicious extension path or hash in endpoint security policies to prevent reloading.
 71- Reset passwords for web accounts that may have been compromised through the malicious extension.
 72- Check browser sync settings to ensure the malicious extension doesn't propagate to other devices.
 73"""
 74query = '''
 75process where host.os.type == "macos" and event.action == "exec" and
 76  process.name in ("Google Chrome", "Brave Browser", "Microsoft Edge") and
 77  process.args like "--load-extension=/*" and
 78  not (process.args like "--load-extension=/Users/*/Library/Application Support/Cypress/*" and
 79       process.parent.executable like ("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
 80                                        "/Users/*/Library/Caches/Cypress/*/Cypress.app/Contents/MacOS/Cypress")) and
 81  not process.parent.executable like ("/opt/homebrew/Caskroom/chromedriver/*/chromedriver",
 82                                    "/Applications/Cypress.app/Contents/MacOS/Cypress",
 83                                    "/usr/local/bin/chromedriver")
 84'''
 85
 86[[rule.threat]]
 87framework = "MITRE ATT&CK"
 88
 89  [rule.threat.tactic]
 90  name = "Persistence"
 91  id = "TA0003"
 92  reference = "https://attack.mitre.org/tactics/TA0003/"
 93
 94  [[rule.threat.technique]]
 95  name = "Software Extensions"
 96  id = "T1176"
 97  reference = "https://attack.mitre.org/techniques/T1176/"
 98
 99[[rule.threat]]
100framework = "MITRE ATT&CK"
101
102  [rule.threat.tactic]
103  name = "Credential Access"
104  id = "TA0006"
105  reference = "https://attack.mitre.org/tactics/TA0006/"
106
107  [[rule.threat.technique]]
108  name = "Steal Web Session Cookie"
109  id = "T1539"
110  reference = "https://attack.mitre.org/techniques/T1539/"

Triage and analysis

Disclaimer: This investigation guide was created using generative AI technology and has been reviewed to improve its accuracy and relevance. While every effort has been made to ensure its quality, we recommend validating the content and adapting it to suit your specific environment and operational needs.

Investigating Manual Loading of a Suspicious Chromium Extension

Chromium-based browsers support loading extensions from local directories using the --load-extension command line flag, bypassing the normal extension store installation process. Threat actors abuse this capability to load malicious extensions that can steal cookies, capture session tokens, intercept form submissions, or inject content into web pages. Unlike store-installed extensions, manually loaded extensions don't undergo security review and can request arbitrary permissions. This detection rule identifies browsers launched with the --load-extension flag from suspicious parent processes.

Possible investigation steps

  • Examine the process.args containing --load-extension to identify the full path of the extension being loaded.
  • Navigate to the extension directory and review the manifest.json to understand the permissions requested, including access to cookies, tabs, or web requests.
  • Analyze the extension's JavaScript files for malicious functionality such as cookie exfiltration, form interception, or communication with external servers.
  • Review the process.parent.executable to understand how the browser was launched with the malicious extension and trace back to the initial execution vector.
  • Check for network connections made by the browser process to identify potential data exfiltration endpoints.
  • Review browser profile data for evidence of credential theft or session hijacking.
  • Search for the same extension path across other systems to identify potential lateral movement or widespread deployment.

False positive analysis

  • Cypress and other automated testing frameworks load extensions for browser automation. These are already excluded in the query.
  • ChromeDriver used for Selenium testing loads extensions programmatically. These paths are excluded in the query.
  • Developer debugging may require manual extension loading during active development. Verify with development teams if such activities are expected.
  • Enterprise browser customization may deploy internal extensions via command line. Review with IT operations to document approved extensions.

Response and remediation

  • Immediately terminate the browser process to stop any ongoing malicious activity such as cookie theft or session hijacking.
  • Remove the malicious extension directory from the filesystem to prevent future loading.
  • Clear browser session data including cookies, cached credentials, and saved passwords for the affected browser profile.
  • Review and revoke any sessions for sensitive web applications that were accessed while the extension was loaded.
  • Investigate how the malicious extension was deployed and remediate the initial access vector.
  • Block the malicious extension path or hash in endpoint security policies to prevent reloading.
  • Reset passwords for web accounts that may have been compromised through the malicious extension.
  • Check browser sync settings to ensure the malicious extension doesn't propagate to other devices.

References

Related rules

to-top