Detection rules › Sigma

Mint Sandstorm - ManageEngine Suspicious Process Execution

Status
test
Severity
critical
Log source
product windows, category process_creation
Author
Nasreddine Bencherchali (Nextron Systems), MSTIC (idea)
Source
github.com/SigmaHQ/sigma

Detects suspicious execution from ManageEngine as seen used by Mint Sandstorm

MITRE ATT&CK coverage

TacticTechniques
ExecutionNo specific technique

Event coverage

Rule body yaml

title: Mint Sandstorm - ManageEngine Suspicious Process Execution
id: 58d8341a-5849-44cd-8ac8-8b020413a31b
status: test
description: Detects suspicious execution from ManageEngine as seen used by Mint Sandstorm
references:
    - https://www.microsoft.com/en-us/security/blog/2023/04/18/nation-state-threat-actor-mint-sandstorm-refines-tradecraft-to-attack-high-value-targets/
author: Nasreddine Bencherchali (Nextron Systems), MSTIC (idea)
date: 2023-04-20
modified: 2025-10-19
tags:
    - attack.execution
    - detection.emerging-threats
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent_path:
        ParentImage|contains:
            - 'manageengine'
            - 'ServiceDesk'
    selection_parent_image:
        ParentImage|contains: '\java'
    selection_special_child_powershell_img:
        Image|endswith:
            - '\powershell.exe'
            - '\powershell_ise.exe'
    selection_special_child_powershell_cli:
        - CommandLine|contains:
              - ' echo '
              - '-dumpmode'
              - '-ssh'
              - '.dmp'
              - 'add-MpPreference'
              - 'adscredentials'
              - 'bitsadmin'
              - 'certutil'
              - 'csvhost.exe'
              - 'DownloadFile'
              - 'DownloadString'
              - 'dsquery'
              - 'ekern.exe'
              - 'FromBase64String'
              - 'iex '
              - 'iex('
              - 'Invoke-Expression'
              - 'Invoke-WebRequest'
              - 'localgroup administrators'
              - 'o365accountconfiguration'
              - 'samaccountname='
              - 'set-MpPreference'
              - 'svhost.exe'
              - 'System.IO.Compression'
              - 'System.IO.MemoryStream'
              - 'usoprivate'
              - 'usoshared'
              - 'whoami'
        - CommandLine|re: '[-/–][Ee^]{1,2}[ncodema^]*\s[A-Za-z0-9+/=]{15,}'
        - CommandLine|re: 'net\s+user'
        - CommandLine|re: 'net\s+group'
        - CommandLine|re: 'query\ssession'
    selection_special_child_lsass_1:
        CommandLine|contains: 'lsass'
    selection_special_child_lsass_2:
        CommandLine|contains:
            - 'procdump'
            - 'tasklist'
            - 'findstr'
    selection_child_wget:
        Image|endswith: '\wget.exe'
        CommandLine|contains: 'http'
    selection_child_curl:
        Image|endswith: '\curl.exe'
        CommandLine|contains: 'http'
    selection_child_script:
        CommandLine|contains:
            - 'E:jscript'
            - 'e:vbscript'
    selection_child_localgroup:
        CommandLine|contains|all:
            - 'localgroup Administrators'
            - '/add'
    selection_child_net:
        CommandLine|contains: 'net' # Covers net1
        CommandLine|contains|all:
            - 'user'
            - '/add'
    selection_child_reg:
        - CommandLine|contains|all:
              - 'reg add'
              - 'DisableAntiSpyware'
              - '\Microsoft\Windows Defender'
        - CommandLine|contains|all:
              - 'reg add'
              - 'DisableRestrictedAdmin'
              - 'CurrentControlSet\Control\Lsa'
    selection_child_wmic_1:
        CommandLine|contains|all:
            - 'wmic'
            - 'process call create'
    selection_child_wmic_2:
        CommandLine|contains|all:
            - 'wmic'
            - 'delete'
            - 'shadowcopy'
    selection_child_vssadmin:
        CommandLine|contains|all:
            - 'vssadmin'
            - 'delete'
            - 'shadows'
    selection_child_wbadmin:
        CommandLine|contains|all:
            - 'wbadmin'
            - 'delete'
            - 'catalog'
    filter_main:
        CommandLine|contains|all:
            - 'download.microsoft.com'
            - 'manageengine.com'
            - 'msiexec'
    condition: all of selection_parent_* and (all of selection_special_child_powershell_* or all of selection_special_child_lsass_* or 1 of selection_child_*) and not filter_main
falsepositives:
    - Unlikely
level: critical

Stages and Predicates

Stage 0: condition

all of selection_parent_* and (all of selection_special_child_powershell_* or all of selection_special_child_lsass_* or 1 of selection_child_*) and not filter_main

Stage 1: selection_parent_path

selection_parent_path:
    ParentImage|contains:
        - 'manageengine'
        - 'ServiceDesk'

Stage 2: selection_parent_image

selection_parent_image:
    ParentImage|contains: '\java'

Stage 3: selection_special_child_powershell_img

selection_special_child_powershell_img:
    Image|endswith:
        - '\powershell.exe'
        - '\powershell_ise.exe'

Stage 4: selection_special_child_powershell_cli

selection_special_child_powershell_cli:
    - CommandLine|contains:
          - ' echo '
          - '-dumpmode'
          - '-ssh'
          - '.dmp'
          - 'add-MpPreference'
          - 'adscredentials'
          - 'bitsadmin'
          - 'certutil'
          - 'csvhost.exe'
          - 'DownloadFile'
          - 'DownloadString'
          - 'dsquery'
          - 'ekern.exe'
          - 'FromBase64String'
          - 'iex '
          - 'iex('
          - 'Invoke-Expression'
          - 'Invoke-WebRequest'
          - 'localgroup administrators'
          - 'o365accountconfiguration'
          - 'samaccountname='
          - 'set-MpPreference'
          - 'svhost.exe'
          - 'System.IO.Compression'
          - 'System.IO.MemoryStream'
          - 'usoprivate'
          - 'usoshared'
          - 'whoami'
    - CommandLine|re: '[-/–][Ee^]{1,2}[ncodema^]*\s[A-Za-z0-9+/=]{15,}'
    - CommandLine|re: 'net\s+user'
    - CommandLine|re: 'net\s+group'
    - CommandLine|re: 'query\ssession'

Stage 5: selection_special_child_lsass_1

selection_special_child_lsass_1:
    CommandLine|contains: 'lsass'

Stage 6: selection_special_child_lsass_2

selection_special_child_lsass_2:
    CommandLine|contains:
        - 'procdump'
        - 'tasklist'
        - 'findstr'

Stage 7: selection_child_wget

selection_child_wget:
    Image|endswith: '\wget.exe'
    CommandLine|contains: 'http'

Stage 8: selection_child_curl

selection_child_curl:
    Image|endswith: '\curl.exe'
    CommandLine|contains: 'http'

Stage 9: selection_child_script

selection_child_script:
    CommandLine|contains:
        - 'E:jscript'
        - 'e:vbscript'

Stage 10: selection_child_localgroup

selection_child_localgroup:
    CommandLine|contains|all:
        - 'localgroup Administrators'
        - '/add'

Stage 11: selection_child_net

selection_child_net:
    CommandLine|contains: 'net'
    CommandLine|contains|all:
        - 'user'
        - '/add'

Stage 12: selection_child_reg

selection_child_reg:
    - CommandLine|contains|all:
          - 'reg add'
          - 'DisableAntiSpyware'
          - '\Microsoft\Windows Defender'
    - CommandLine|contains|all:
          - 'reg add'
          - 'DisableRestrictedAdmin'
          - 'CurrentControlSet\Control\Lsa'

Stage 13: selection_child_wmic_1

selection_child_wmic_1:
    CommandLine|contains|all:
        - 'wmic'
        - 'process call create'

Stage 14: selection_child_wmic_2

selection_child_wmic_2:
    CommandLine|contains|all:
        - 'wmic'
        - 'delete'
        - 'shadowcopy'

Stage 15: selection_child_vssadmin

selection_child_vssadmin:
    CommandLine|contains|all:
        - 'vssadmin'
        - 'delete'
        - 'shadows'

Stage 16: selection_child_wbadmin

selection_child_wbadmin:
    CommandLine|contains|all:
        - 'wbadmin'
        - 'delete'
        - 'catalog'

Stage 17: not filter_main

filter_main:
    CommandLine|contains|all:
        - 'download.microsoft.com'
        - 'manageengine.com'
        - 'msiexec'

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
CommandLinematchdownload.microsoft.com
CommandLinematchmanageengine.com
CommandLinematchmsiexec

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
CommandLinematch
  • echo corpus 2 (sigma 2)
  • -dumpmode corpus 2 (sigma 2)
  • -ssh corpus 2 (sigma 2)
  • .dmp corpus 10 (sigma 8, chronicle 2)
  • /add corpus 9 (sigma 5, splunk 2, kusto 2)
  • CurrentControlSet\Control\Lsa corpus 2 (sigma 2)
  • DisableAntiSpyware corpus 3 (sigma 3)
  • DisableRestrictedAdmin corpus 3 (sigma 3)
  • DownloadFile corpus 5 (sigma 4, chronicle 1)
  • DownloadString corpus 8 (sigma 7, kusto 1)
  • E:jscript corpus 2 (sigma 2)
  • FromBase64String corpus 12 (sigma 9, splunk 2, elastic 1)
  • Invoke-Expression corpus 4 (sigma 4)
  • Invoke-WebRequest corpus 13 (sigma 10, elastic 1, chronicle 1, kusto 1)
  • System.IO.Compression corpus 3 (sigma 3)
  • System.IO.MemoryStream corpus 3 (sigma 3)
  • \Microsoft\Windows Defender corpus 2 (sigma 2)
  • add-MpPreference corpus 3 (sigma 2, kusto 1)
  • adscredentials corpus 3 (sigma 3)
  • bitsadmin corpus 10 (sigma 10)
  • catalog corpus 4 (sigma 3, splunk 1)
  • certutil corpus 12 (sigma 10, kusto 2)
  • csvhost.exe corpus 2 (sigma 2)
  • delete corpus 23 (sigma 16, splunk 6, kusto 1)
  • dsquery corpus 3 (sigma 3)
  • e:vbscript corpus 2 (sigma 2)
  • ekern.exe corpus 2 (sigma 2)
  • findstr corpus 8 (sigma 6, splunk 2)
  • http corpus 39 (sigma 34, elastic 2, chronicle 2, splunk 1)
  • iex corpus 6 (sigma 6)
  • iex( corpus 3 (sigma 3)
  • localgroup Administrators corpus 3 (sigma 3)
  • localgroup administrators corpus 3 (sigma 3)
  • lsass corpus 9 (sigma 6, kusto 2, chronicle 1)
  • net corpus 7 (sigma 7)
  • o365accountconfiguration corpus 3 (sigma 3)
  • procdump corpus 2 (sigma 2)
  • process call create corpus 3 (sigma 3)
  • reg add corpus 14 (sigma 13, kusto 1)
  • samaccountname= corpus 3 (sigma 3)
  • set-MpPreference corpus 5 (sigma 3, splunk 1, kusto 1)
  • shadowcopy corpus 6 (sigma 3, splunk 3)
  • shadows corpus 3 (sigma 3)
  • svhost.exe corpus 2 (sigma 2)
  • tasklist corpus 5 (sigma 5)
  • user corpus 17 (sigma 11, splunk 4, chronicle 2)
  • usoprivate corpus 2 (sigma 2)
  • usoshared corpus 2 (sigma 2)
  • vssadmin corpus 2 (sigma 2)
  • wbadmin corpus 3 (sigma 3)
  • whoami corpus 13 (sigma 9, splunk 2, elastic 1, kusto 1)
  • wmic corpus 6 (sigma 6)
CommandLineregex_match
  • [-/–][Ee^]{1,2}[ncodema^]*\s[A-Za-z0-9+/=]{15,} corpus 2 (sigma 2)
  • net\s+group corpus 3 (sigma 3)
  • net\s+user corpus 3 (sigma 3)
  • query\ssession
Imageends_with
  • \curl.exe corpus 30 (sigma 30)
  • \powershell.exe corpus 182 (sigma 182)
  • \powershell_ise.exe corpus 41 (sigma 41)
  • \wget.exe corpus 9 (sigma 9)
ParentImagematch
  • ServiceDesk
  • \java
  • manageengine