Detection rules › Sigma

Suspicious Group And Account Reconnaissance Activity Using Net.EXE

Status
test
Severity
medium
Log source
product windows, category process_creation
Author
Florian Roth (Nextron Systems), omkar72, @svch0st, Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects suspicious reconnaissance command line activity on Windows systems using Net.EXE Check if the user that executed the commands is suspicious (e.g. service accounts, LOCAL_SYSTEM)

MITRE ATT&CK coverage

Event coverage

ProviderEventTitle
SysmonEvent ID 1Process creation

Rule body yaml

title: Suspicious Group And Account Reconnaissance Activity Using Net.EXE
id: d95de845-b83c-4a9a-8a6a-4fc802ebf6c0
status: test
description: |
    Detects suspicious reconnaissance command line activity on Windows systems using Net.EXE
    Check if the user that executed the commands is suspicious (e.g. service accounts, LOCAL_SYSTEM)
references:
    - https://redcanary.com/blog/how-one-hospital-thwarted-a-ryuk-ransomware-outbreak/
    - https://thedfirreport.com/2020/10/18/ryuk-in-5-hours/
    - https://research.nccgroup.com/2022/08/19/back-in-black-unlocking-a-lockbit-3-0-ransomware-attack/
author: Florian Roth (Nextron Systems), omkar72, @svch0st, Nasreddine Bencherchali (Nextron Systems)
date: 2019-01-16
modified: 2023-03-02
tags:
    - attack.discovery
    - attack.t1087.001
    - attack.t1087.002
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith:
              - '\net.exe'
              - '\net1.exe'
        - OriginalFileName:
              - 'net.exe'
              - 'net1.exe'
    # Covers group and localgroup flags
    selection_group_root:
        CommandLine|contains:
            - ' group '
            - ' localgroup '
    selection_group_flags:
        CommandLine|contains:
            # Add more groups for other languages
            - 'domain admins'
            - ' administrator' # Typo without an 'S' so we catch both
            - ' administrateur' # Typo without an 'S' so we catch both
            - 'enterprise admins'
            - 'Exchange Trusted Subsystem'
            - 'Remote Desktop Users'
            - 'Utilisateurs du Bureau à distance' # French for "Remote Desktop Users"
            - 'Usuarios de escritorio remoto' # Spanish for "Remote Desktop Users"
            - ' /do' # short for domain
    filter_group_add:
        # This filter is added to avoid the potential case where the point is not recon but addition
        CommandLine|contains: ' /add'
    # Covers 'accounts' flag
    selection_accounts_root:
        CommandLine|contains: ' accounts '
    selection_accounts_flags:
        CommandLine|contains: ' /do' # short for domain
    condition: selection_img and ((all of selection_group_* and not filter_group_add) or all of selection_accounts_*)
falsepositives:
    - Inventory tool runs
    - Administrative activity
level: medium

Stages and Predicates

Stage 0: condition

selection_img and ((all of selection_group_* and not filter_group_add) or all of selection_accounts_*)

Stage 1: selection_img

selection_img:
    - Image|endswith:
          - '\net.exe'
          - '\net1.exe'
    - OriginalFileName:
          - 'net.exe'
          - 'net1.exe'

Stage 2: selection_group_root

selection_group_root:
    CommandLine|contains:
        - ' group '
        - ' localgroup '

Stage 3: selection_group_flags

selection_group_flags:
    CommandLine|contains:
        - 'domain admins'
        - ' administrator'
        - ' administrateur'
        - 'enterprise admins'
        - 'Exchange Trusted Subsystem'
        - 'Remote Desktop Users'
        - 'Utilisateurs du Bureau à distance'
        - 'Usuarios de escritorio remoto'
        - ' /do'

Stage 4: not filter_group_add

filter_group_add:
    CommandLine|contains: ' /add'

Stage 5: selection_accounts_root

selection_accounts_root:
    CommandLine|contains: ' accounts '

Stage 6: selection_accounts_flags

selection_accounts_flags:
    CommandLine|contains: ' /do'

Exclusions

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

FieldKindExcluded values
CommandLinematch /add

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
  • /do
  • accounts corpus 2 (sigma 1, splunk 1)
  • administrateur corpus 3 (sigma 3)
  • administrator corpus 2 (sigma 2)
  • group corpus 2 (sigma 2)
  • localgroup corpus 2 (sigma 2)
  • Exchange Trusted Subsystem corpus 2 (sigma 2)
  • Remote Desktop Users corpus 3 (sigma 3)
  • Usuarios de escritorio remoto corpus 3 (sigma 3)
  • Utilisateurs du Bureau à distance corpus 3 (sigma 3)
  • domain admins corpus 3 (sigma 2, splunk 1)
  • enterprise admins corpus 3 (sigma 2, splunk 1)
Imageends_with
  • \net.exe corpus 49 (sigma 49)
  • \net1.exe corpus 47 (sigma 47)
OriginalFileNameeq
  • net.exe corpus 28 (sigma 19, elastic 7, splunk 2)
  • net1.exe corpus 44 (sigma 19, splunk 19, elastic 6)