Detection rules › Sigma

Potential Exploitation of GoAnywhere MFT Vulnerability

Status
experimental
Severity
high
Log source
product windows, category process_creation
Author
MSFT (idea), Swachchhanda Shrawan Poudel (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects suspicious command execution by child processes of the GoAnywhere Managed File Transfer (MFT) application, which may indicate exploitation such as CVE-2025-10035. This behavior is indicative of post-exploitation activity related to CVE-2025-10035, as observed in campaigns by the threat actor Storm-1175.

MITRE ATT&CK coverage

Event coverage

Rule body yaml

title: Potential Exploitation of GoAnywhere MFT Vulnerability
id: 6c76b3d0-afe4-4870-9443-ffe6773c5fef
status: experimental
description: |
    Detects suspicious command execution by child processes of the GoAnywhere Managed File Transfer (MFT) application, which may indicate exploitation such as CVE-2025-10035.
    This behavior is indicative of post-exploitation activity related to CVE-2025-10035, as observed in campaigns by the threat actor Storm-1175.
references:
    - https://www.microsoft.com/en-us/security/blog/2025/10/06/investigating-active-exploitation-of-cve-2025-10035-goanywhere-managed-file-transfer-vulnerability/
author: MSFT (idea), Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2025-10-07
tags:
    - attack.initial-access
    - attack.t1190
    - attack.execution
    - attack.t1059.001
    - attack.persistence
    - attack.t1133
    - detection.emerging-threats
    - cve.2025-10035
logsource:
    category: process_creation
    product: windows
detection:
    # Detects the GoAnywhere Tomcat parent process based on path and command line arguments
    selection_parent:
        ParentImage|contains: '\GoAnywhere\tomcat\'
    selection_powershell_img:
        Image|endswith:
            - '\powershell.exe'
            - '\powershell_ise.exe'
            - '\pwsh.exe'
    selection_powershell_cmd:
        - CommandLine|contains|all:
              - 'IEX'
              - 'enc'
              - 'Hidden'
              - 'bypass'
        - CommandLine|re:
              - 'net\s+user'
              - 'net\s+group'
              - 'query\s+session'
        - CommandLine|contains:
              - 'whoami'
              - 'systeminfo'
              - 'dsquery'
              - 'localgroup administrators'
              - 'nltest'
              - 'samaccountname='
              - 'adscredentials'
              - 'o365accountconfiguration'
              - '.DownloadString('
              - '.DownloadFile('
              - 'FromBase64String('
              - 'System.IO.Compression'
              - 'System.IO.MemoryStream'
              - 'curl'
    selection_child_cmd:
        Image|endswith: '\cmd.exe'
        CommandLine|contains:
            - 'powershell'
            - 'whoami'
            - 'net.exe'
            - 'net1.exe'
            - 'rundll32'
            - 'quser'
            - 'nltest'
            - 'curl'
    selection_child_others:
        CommandLine|contains:
            - 'bitsadmin'
            - 'certutil'
            - 'mshta'
            - 'cscript'
            - 'wscript'
    condition: selection_parent and (all of selection_powershell_* or 1 of selection_child_*)
falsepositives:
    - Legitimate administrative scripts or built-in GoAnywhere functions could potentially trigger this rule. Tuning may be required based on normal activity in your environment.
level: high

Stages and Predicates

Stage 0: condition

selection_parent and (all of selection_powershell_* or 1 of selection_child_*)

Stage 1: selection_parent

selection_parent:
    ParentImage|contains: '\GoAnywhere\tomcat\'

Stage 2: selection_powershell_img

selection_powershell_img:
    Image|endswith:
        - '\powershell.exe'
        - '\powershell_ise.exe'
        - '\pwsh.exe'

Stage 3: selection_powershell_cmd

selection_powershell_cmd:
    - CommandLine|contains|all:
          - 'IEX'
          - 'enc'
          - 'Hidden'
          - 'bypass'
    - CommandLine|re:
          - 'net\s+user'
          - 'net\s+group'
          - 'query\s+session'
    - CommandLine|contains:
          - 'whoami'
          - 'systeminfo'
          - 'dsquery'
          - 'localgroup administrators'
          - 'nltest'
          - 'samaccountname='
          - 'adscredentials'
          - 'o365accountconfiguration'
          - '.DownloadString('
          - '.DownloadFile('
          - 'FromBase64String('
          - 'System.IO.Compression'
          - 'System.IO.MemoryStream'
          - 'curl'

Stage 4: selection_child_cmd

selection_child_cmd:
    Image|endswith: '\cmd.exe'
    CommandLine|contains:
        - 'powershell'
        - 'whoami'
        - 'net.exe'
        - 'net1.exe'
        - 'rundll32'
        - 'quser'
        - 'nltest'
        - 'curl'

Stage 5: selection_child_others

selection_child_others:
    CommandLine|contains:
        - 'bitsadmin'
        - 'certutil'
        - 'mshta'
        - 'cscript'
        - 'wscript'

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
  • .DownloadFile( corpus 8 (sigma 7, chronicle 1)
  • .DownloadString( corpus 8 (sigma 7, chronicle 1)
  • FromBase64String(
  • Hidden corpus 4 (sigma 4)
  • IEX corpus 6 (sigma 5, splunk 1)
  • System.IO.Compression corpus 3 (sigma 3)
  • System.IO.MemoryStream corpus 3 (sigma 3)
  • adscredentials corpus 3 (sigma 3)
  • bitsadmin corpus 10 (sigma 10)
  • bypass corpus 6 (sigma 6)
  • certutil corpus 12 (sigma 10, kusto 2)
  • cscript corpus 15 (sigma 15)
  • curl corpus 17 (sigma 14, elastic 2, splunk 1)
  • dsquery corpus 3 (sigma 3)
  • enc corpus 3 (sigma 3)
  • localgroup administrators corpus 3 (sigma 3)
  • mshta corpus 14 (sigma 14)
  • net.exe corpus 3 (sigma 2, splunk 1)
  • net1.exe corpus 2 (sigma 2)
  • nltest corpus 2 (sigma 2)
  • o365accountconfiguration corpus 3 (sigma 3)
  • powershell corpus 25 (sigma 24, chronicle 1)
  • quser
  • rundll32 corpus 26 (sigma 23, chronicle 2, kusto 1)
  • samaccountname= corpus 3 (sigma 3)
  • systeminfo corpus 6 (sigma 4, splunk 1, kusto 1)
  • whoami corpus 13 (sigma 9, splunk 2, elastic 1, kusto 1)
  • wscript corpus 16 (sigma 16)
CommandLineregex_match
  • net\s+group corpus 3 (sigma 3)
  • net\s+user corpus 3 (sigma 3)
  • query\s+session corpus 2 (sigma 2)
Imageends_with
  • \cmd.exe corpus 130 (sigma 130)
  • \powershell.exe corpus 182 (sigma 182)
  • \powershell_ise.exe corpus 41 (sigma 41)
  • \pwsh.exe corpus 168 (sigma 168)
ParentImagematch
  • \GoAnywhere\tomcat\