EXPLORE
← Back to Explore
crowdstrike_cqlHunting

Installed Browser Extensions (Hunt Extension Name)

This query will output a table with all installed browser extensions. Replace "vpn" with the string you want to hunt for.

Detection Query

// Get browser extension event
#event_simpleName=InstalledBrowserExtension BrowserExtensionId!="no-extension-available"

// Look for string "vpn" in extension name
| BrowserExtensionName=/vpn/i

// Make a new field that includes the extension ID and Name
| Extension:=format(format="%s (%s)", field=[BrowserExtensionId, BrowserExtensionName])

// Aggregate by endpoint and browser profile
| groupBy([event_platform, aid, ComputerName, UserName, BrowserProfileId, BrowserName], function=([collect([Extension])]))

// Get unnecessary field
| drop([_count])

// Convert browser name from decimal to human readable
| case{
    BrowserName="3" | BrowserName:="Chrome";
    BrowserName="4" | BrowserName:="Edge";
    *;
}

Author

CrowdStrike

Data Sources

Endpoint

Platforms

windowslinux

Tags

Huntingcs_module:Insight
Raw Content
# --- Query Metadata ---
# Human-readable name for the query. Will be displayed as the title.
name: Installed Browser Extensions (Hunt Extension Name)

# Description of what the query does and its purpose.
description: This query will output a table with all installed browser extensions.

# The author or team that created the query.
author: CrowdStrike

# The required log sources to run this query successfully in Next-Gen SIEM.
# This will be displayed in the UI to inform the user.
log_sources:
  - Endpoint

# The CrowdStrike modules required to run this query.
cs_required_modules:
  - Insight

# Tags for filtering and categorization.
# Include relevant techniques, tactics, or platforms.
tags:
  - Hunting

# --- Query Content ---
# The actual CrowdStrike Query Language (CQL) code.
# Using the YAML block scalar `|` allows for multi-line strings.
cql: |
  // Get browser extension event
  #event_simpleName=InstalledBrowserExtension BrowserExtensionId!="no-extension-available"
  
  // Look for string "vpn" in extension name
  | BrowserExtensionName=/vpn/i
  
  // Make a new field that includes the extension ID and Name
  | Extension:=format(format="%s (%s)", field=[BrowserExtensionId, BrowserExtensionName])
  
  // Aggregate by endpoint and browser profile
  | groupBy([event_platform, aid, ComputerName, UserName, BrowserProfileId, BrowserName], function=([collect([Extension])]))
  
  // Get unnecessary field
  | drop([_count])
  
  // Convert browser name from decimal to human readable
  | case{
      BrowserName="3" | BrowserName:="Chrome";
      BrowserName="4" | BrowserName:="Edge";
      *;
  }

# Explanation of the query.
# Using the YAML block scalar `|` allows for multi-line strings.
# Uses markdown for formatting on the webpage.
explanation: |
  Replace "vpn" with the string you want to hunt for.