Detection rules › Splunk

Supernova Webshell

Status
experimental
Severity
medium
Group by
Web.src, Web.user, Web.vendor_product, _time, c-uri, c-useragent, cs-host
Author
John Stoner, Splunk
Source
github.com/splunk/security_content

The following analytic detects the presence of the Supernova webshell, used in the SUNBURST attack, by identifying specific patterns in web URLs. The detection leverages Splunk to search for URLs containing "logoimagehandler.ashxcodes*", "logoimagehandler.ashxclazz*", "logoimagehandler.ashxmethod*", and "logoimagehandler.ashxargs*". This activity is significant as it indicates potential unauthorized access and arbitrary code execution on a compromised system. If confirmed malicious, this could lead to data theft, ransomware deployment, or other severe outcomes. Immediate steps include reviewing the web URLs, inspecting on-disk artifacts, and analyzing concurrent processes and network connections.

MITRE ATT&CK coverage

Rule body splunk

name: Supernova Webshell
id: 2ec08a09-9ff1-4dac-b59f-1efd57972ec1
version: 10
creation_date: '2021-01-06'
modification_date: '2026-05-13'
author: John Stoner, Splunk
status: experimental
type: TTP
description: The following analytic detects the presence of the Supernova webshell, used in the SUNBURST attack, by identifying specific patterns in web URLs. The detection leverages Splunk to search for URLs containing "*logoimagehandler.ashx*codes*", "*logoimagehandler.ashx*clazz*", "*logoimagehandler.ashx*method*", and "*logoimagehandler.ashx*args*". This activity is significant as it indicates potential unauthorized access and arbitrary code execution on a compromised system. If confirmed malicious, this could lead to data theft, ransomware deployment, or other severe outcomes. Immediate steps include reviewing the web URLs, inspecting on-disk artifacts, and analyzing concurrent processes and network connections.
data_source: []
search: |-
    | tstats `security_content_summariesonly` count FROM datamodel=Web.Web
      WHERE web.url=*logoimagehandler.ashx*codes*
        OR
        Web.url=*logoimagehandler.ashx*clazz*
        OR
        Web.url=*logoimagehandler.ashx*method*
        OR
        Web.url=*logoimagehandler.ashx*args*
      BY Web.src Web.dest Web.url
         Web.vendor_product Web.user Web.http_user_agent
         _time span=1s
    | `supernova_webshell_filter`
how_to_implement: To successfully implement this search, you need to be monitoring web traffic to your Solarwinds Orion. The logs should be ingested into splunk and populating/mapped to the Web data model.
known_false_positives: There might be false positives associted with this detection since items like args as a web argument is pretty generic.
references:
    - https://www.splunk.com/en_us/blog/security/detecting-supernova-malware-solarwinds-continued.html
    - https://www.guidepointsecurity.com/blog/supernova-solarwinds-net-webshell-analysis/
finding:
    title: Potential Supernova Webshell on $dest$
    entity:
        field: user
        type: user
        score: 50
intermediate_findings:
    entities:
        - field: dest
          type: system
          score: 50
          message: Potential Supernova Webshell on $dest$
analytic_story:
    - NOBELIUM Group
    - Earth Alux
    - GhostRedirector IIS Module and Rungan Backdoor
asset_type: Web Server
mitre_attack_id:
    - T1505.003
    - T1133
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: web
security_domain: network

Stages and Predicates

Stage 1: tstats

| tstats `security_content_summariesonly` count FROM datamodel=Web.Web
  WHERE web.url=*logoimagehandler.ashx*codes*
    OR
    Web.url=*logoimagehandler.ashx*clazz*
    OR
    Web.url=*logoimagehandler.ashx*method*
    OR
    Web.url=*logoimagehandler.ashx*args*
  BY Web.src Web.dest Web.url
     Web.vendor_product Web.user Web.http_user_agent
     _time span=1s

Stage 2: search

| `supernova_webshell_filter`

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
Web.urleq
  • "*logoimagehandler.ashx*args*"
  • "*logoimagehandler.ashx*clazz*"
  • "*logoimagehandler.ashx*method*"
web.urleq
  • "*logoimagehandler.ashx*codes*"