Detection rules › Sigma

Shell Process Spawned by Java.EXE

Status
test
Severity
medium
Log source
category process_creation, product windows
Author
Andreas Hunkeler (@Karneades), Nasreddine Bencherchali
Source
github.com/SigmaHQ/sigma

Detects shell spawned from Java host process, which could be a sign of exploitation (e.g. log4j exploitation)

Known false positives

  • Legitimate calls to system binaries
  • Company specific internal usage

MITRE ATT&CK coverage

TacticTechniques
Initial AccessNo specific technique
PersistenceNo specific technique
Privilege EscalationNo specific technique

Telemetry coverage

Rule body

title: Shell Process Spawned by Java.EXE
id: dff1e1cc-d3fd-47c8-bfc2-aeb878a754c0
related:
    - id: 0d34ed8b-1c12-4ff2-828c-16fc860b766d
      type: similar
status: test
description: Detects shell spawned from Java host process, which could be a sign of exploitation (e.g. log4j exploitation)
references:
    - https://web.archive.org/web/20231230220738/https://www.lunasec.io/docs/blog/log4j-zero-day/
author: Andreas Hunkeler (@Karneades), Nasreddine Bencherchali
date: 2021-12-17
modified: 2024-01-18
tags:
    - attack.initial-access
    - attack.persistence
    - attack.privilege-escalation
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        ParentImage|endswith: '\java.exe'
        Image|endswith:
            - '\bash.exe'
            - '\cmd.exe'
            - '\powershell.exe'
            - '\pwsh.exe'
    filter_main_build:
        ParentImage|contains: 'build'  # excluding CI build agents
        CommandLine|contains: 'build'  # excluding CI build agents
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Legitimate calls to system binaries
    - Company specific internal usage
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    ParentImage|endswith: '\java.exe'
    Image|endswith:
        - '\bash.exe'
        - '\cmd.exe'
        - '\powershell.exe'
        - '\pwsh.exe'

Stage 2: not filter_main_build

filter_main_build:
    ParentImage|contains: 'build'
    CommandLine|contains: 'build'

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
CommandLinematchbuildexcludes:CommandLine field:"CommandLine" value:"build"
ParentImagematchbuildexcludes:ParentImage field:"ParentImage" value:"build"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \bash.exe corpus 21 (sigma 21)
  • \cmd.exe corpus 130 (sigma 130)
  • \powershell.exe corpus 179 (sigma 178, kusto 1)
  • \pwsh.exe corpus 165 (sigma 164, kusto 1)
field:"Image" kind:ends_with
ParentImageends_with
  • \java.exe corpus 8 (sigma 8)
field:"ParentImage" kind:ends_with value:"\java.exe"