Detection rules › Sigma

Sigma rules: 0q

Attempt To Delete A CloudTrail Log

#
Status
test
Severity
medium
Author
Zach Mathis (@yamatosecurity)
Source
github.com/Yamato-Security/suzaku-rules

A attacker may have attempted to delete a CloudTrail log but it was denied due to a lack of permissions. Sample command line: aws cloudtrail delete-trail --name TrailName

Known False Positives

  • Admins trying to delete unneeded logs but lacked permissions.

MITRE ATT&CK Coverage

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Attempt To Delete A CloudTrail Log
id: b6f02c52-1158-4d31-98a8-a4751718f3db
status: test
description: |
    A attacker may have attempted to delete a CloudTrail log but it was denied due to a lack of permissions.
    Sample command line: aws cloudtrail delete-trail --name TrailName
references:
    - https://research.splunk.com/cloud/82092925-9ca1-4e06-98b8-85a2d3889552/
    - https://expel.com/blog/following-cloudtrail-generating-aws-security-signals-sumo-logic/
    - https://medium.com/daniel-grzelak/disrupting-aws-logging-a42e437d6594
    - https://traildiscover.cloud/#CloudTrail-DeleteTrail
author: Zach Mathis (@yamatosecurity)
date: 2025-04-23
modified: 2025-04-23
tags:
    - attack.defense-evasion
    - attack.t1562.008 # Impair Defenses: Disable or Modify Cloud Logs
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: 'cloudtrail.amazonaws.com'
        eventName: 'DeleteTrail'
        errorCode: 'AccessDenied'
    condition: selection
falsepositives:
    - Admins trying to delete unneeded logs but lacked permissions.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: 'cloudtrail.amazonaws.com'
    eventName: 'DeleteTrail'
    errorCode: 'AccessDenied'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
errorCodeeq
  • AccessDenied corpus 16 (sigma 11, splunk 3, elastic 1, panther 1)
field:"aws::errorCode" kind:eq value:"AccessDenied"
eventNameeq
  • DeleteTrail corpus 5 (sigma 3, splunk 2)
field:"aws::eventName" kind:eq value:"DeleteTrail"
eventSourceeq
  • cloudtrail.amazonaws.com corpus 10 (sigma 7, splunk 3)
field:"aws::eventSource" kind:eq value:"cloudtrail.amazonaws.com"

Azure Service Principal Created

#
Status
test
Severity
medium
Author
Austin Songer @austinsonger
Source
github.com/SigmaHQ/sigma

Identifies when a service principal is created in Azure.

Known False Positives

  • Service principal being created may be performed by a system administrator.
  • Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
  • Service principal created from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.

MITRE ATT&CK Coverage

TacticTechniques
StealthNo specific technique

Telemetry Coverage

PlatformRecord / event type
AzureAdd service principal

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Azure Service Principal Created
id: 0ddcff6d-d262-40b0-804b-80eb592de8e3
status: test
description: Identifies when a service principal is created in Azure.
references:
    - https://learn.microsoft.com/en-us/entra/identity/monitoring-health/reference-audit-activities#core-directory
    - https://analyticsrules.exchange/analyticrules/79566f41-df67-4e10-a703-c38a6213afd8/
author: Austin Songer @austinsonger
date: 2021-09-02
modified: 2026-04-30
tags:
    - attack.stealth
logsource:
    product: azure
    service: auditlogs
detection:
    selection:
        operationName: 'Add service principal'
    condition: selection
falsepositives:
    - Service principal being created may be performed by a system administrator.
    - Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
    - Service principal created from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    operationName: 'Add service principal'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
operationNameeq
  • Add service principal corpus 4 (splunk 3, sigma 1)
field:"operationName" kind:eq value:"Add service principal"

Azure Service Principal Removed

#
Status
test
Severity
medium
Author
Austin Songer @austinsonger
Source
github.com/SigmaHQ/sigma

Identifies when a service principal was removed in Azure.

Known False Positives

  • Service principal being removed may be performed by a system administrator.
  • Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
  • Service principal removed from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.

MITRE ATT&CK Coverage

TacticTechniques
StealthNo specific technique

Telemetry Coverage

PlatformRecord / event type
AzureRemove service principal

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Azure Service Principal Removed
id: 448fd1ea-2116-4c62-9cde-a92d120e0f08
status: test
description: Identifies when a service principal was removed in Azure.
references:
    - https://learn.microsoft.com/en-us/entra/identity/monitoring-health/reference-audit-activities#core-directory
    - https://techcommunity.microsoft.com/blog/microsoft-entra-blog/keeping-track-of-object-deletions-in-microsoft-entra-id/4053415
author: Austin Songer @austinsonger
date: 2021-09-03
modified: 2026-04-30
tags:
    - attack.stealth
logsource:
    product: azure
    service: auditlogs
detection:
    selection:
        operationName: 'Remove service principal'
    condition: selection
falsepositives:
    - Service principal being removed may be performed by a system administrator.
    - Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
    - Service principal removed from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    operationName: 'Remove service principal'

Indicators

These rows show field, operator, and value matches.

DirectorySearcher Powershell Exploitation

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

Enumerates Active Directory to determine computers that are joined to the domain

MITRE ATT&CK Coverage

TacticTechniques
Discovery

Telemetry Coverage

Rule Body

title: DirectorySearcher Powershell Exploitation
id: 1f6399cf-2c80-4924-ace1-6fcff3393480
status: test
description: Enumerates Active Directory to determine computers that are joined to the domain
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1018/T1018.md#atomic-test-15---enumerate-domain-computers-within-active-directory-using-directorysearcher
author: frack113
date: 2022-02-12
tags:
    - attack.discovery
    - attack.t1018
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    selection:
        ScriptBlockText|contains|all:
            - 'New-Object '
            - 'System.DirectoryServices.DirectorySearcher'
            - '.PropertiesToLoad.Add'
            - '.findall()'
            - 'Properties.name'
    condition: selection
falsepositives:
    - Unknown
level: medium
regression_tests_path: regression_data/rules/windows/powershell/powershell_script/posh_ps_directorysearcher/info.yml

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ScriptBlockText|contains|all:
        - 'New-Object '
        - 'System.DirectoryServices.DirectorySearcher'
        - '.PropertiesToLoad.Add'
        - '.findall()'
        - 'Properties.name'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ScriptBlockTextmatch
  • .PropertiesToLoad.Add
  • .findall() corpus 2 (sigma 1, splunk 1)
  • New-Object corpus 2 (sigma 2)
  • Properties.name
  • System.DirectoryServices.DirectorySearcher
field:"ScriptBlockText" kind:match

Disabled MFA to Bypass Authentication Mechanisms

#
Status
test
Severity
medium
Author
@ionsor
Source
github.com/SigmaHQ/sigma

Detection for when multi factor authentication has been disabled, which might indicate a malicious activity to bypass authentication mechanisms.

Known False Positives

  • Authorized modification by administrators

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
AzureDisable Strong Authentication

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Disabled MFA to Bypass Authentication Mechanisms
id: 7ea78478-a4f9-42a6-9dcd-f861816122bf
status: test
description: Detection for when multi factor authentication has been disabled, which might indicate a malicious activity to bypass authentication mechanisms.
references:
    - https://learn.microsoft.com/en-us/azure/active-directory/authentication/howto-mfa-userstates
    - https://learn.microsoft.com/en-us/entra/identity/monitoring-health/reference-audit-activities#core-directory
    - https://research.splunk.com/cloud/482dd42a-acfa-486b-a0bb-d6fcda27318e/
    - https://analyticsrules.exchange/analyticrules/65c78944-930b-4cae-bd79-c3664ae30ba7/
    - https://www.elastic.co/docs/reference/security/prebuilt-rules/rules/integrations/azure/persistence_entra_id_mfa_disabled_for_user
author: '@ionsor'
date: 2022-02-08
modified: 2026-04-30
tags:
    - attack.credential-access
    - attack.persistence
    - attack.defense-impairment
    - attack.t1556
logsource:
    product: azure
    service: auditlogs
detection:
    selection:
        operationName: 'Disable Strong Authentication'
        properties.result: 'success'
    condition: selection
falsepositives:
    - Authorized modification by administrators
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    operationName: 'Disable Strong Authentication'
    properties.result: 'success'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
operationNameeq
  • Disable Strong Authentication corpus 2 (sigma 1, splunk 1)
field:"operationName" kind:eq value:"Disable Strong Authentication"
properties.resulteq
  • success corpus 5 (splunk 4, sigma 1)
field:"properties.result" kind:eq value:"success"

Discovery of a System Time

#
Status
test
Severity
low
Author
E.M. Anhaus (originally from Atomic Blue Detections, Endgame), oscd.community
Source
github.com/SigmaHQ/sigma

Identifies use of various commands to query a systems time. This technique may be used before executing a scheduled task or to discover the time zone of a target system.

Known False Positives

  • Legitimate use of the system utilities to discover system time for legitimate reason

MITRE ATT&CK Coverage

TacticTechniques
Discovery

Telemetry Coverage

Rule Body

title: Discovery of a System Time
id: b243b280-65fe-48df-ba07-6ddea7646427
status: test
description: Identifies use of various commands to query a systems time. This technique may be used before executing a scheduled task or to discover the time zone of a target system.
references:
    - https://eqllib.readthedocs.io/en/latest/analytics/fcdb99c2-ac3c-4bde-b664-4b336329bed2.html
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1124/T1124.md
author: E.M. Anhaus (originally from Atomic Blue Detections, Endgame), oscd.community
date: 2019-10-24
modified: 2022-06-28
tags:
    - attack.discovery
    - attack.t1124
logsource:
    category: process_creation
    product: windows
detection:
    selection_time:
        Image|endswith:
            - '\net.exe'
            - '\net1.exe'
        CommandLine|contains: 'time'
    selection_w32tm:
        Image|endswith: '\w32tm.exe'
        CommandLine|contains: 'tz'
    condition: 1 of selection_*
falsepositives:
    - Legitimate use of the system utilities to discover system time for legitimate reason
level: low

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_time

selection_time:
    Image|endswith:
        - '\net.exe'
        - '\net1.exe'
    CommandLine|contains: 'time'

Stage 2: selection_w32tm

selection_w32tm:
    Image|endswith: '\w32tm.exe'
    CommandLine|contains: 'tz'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • time
  • tz
field:"CommandLine" kind:match
Imageends_with
  • \net.exe corpus 49 (sigma 49)
  • \net1.exe corpus 47 (sigma 47)
  • \w32tm.exe corpus 2 (sigma 2)
field:"Image" kind:ends_with

ESXi Admin Permission Assigned To Account Via ESXCLI

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

Detects execution of the "esxcli" command with the "system" and "permission" flags in order to assign admin permissions to an account.

Known False Positives

  • Legitimate administration activities

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: ESXi Admin Permission Assigned To Account Via ESXCLI
id: 9691f58d-92c1-4416-8bf3-2edd753ec9cf
status: test
description: Detects execution of the "esxcli" command with the "system" and "permission" flags in order to assign admin permissions to an account.
references:
    - https://developer.broadcom.com/xapis/esxcli-command-reference/7.0.0/namespace/esxcli_system.html
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-09-04
tags:
    - attack.persistence
    - attack.execution
    - attack.privilege-escalation
    - attack.t1059.012
    - attack.t1098
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        Image|endswith: '/esxcli'
        CommandLine|contains: 'system'
        CommandLine|contains|all:
            - ' permission '
            - ' set'
            - 'Admin'
    condition: selection
falsepositives:
    - Legitimate administration activities
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|endswith: '/esxcli'
    CommandLine|contains: 'system'
    CommandLine|contains|all:
        - ' permission '
        - ' set'
        - 'Admin'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • permission
  • set corpus 2 (sigma 2)
  • Admin corpus 4 (sigma 3, splunk 1)
  • system corpus 8 (sigma 4, splunk 3, elastic 1)
field:"CommandLine" kind:match
Imageends_with
  • /esxcli corpus 9 (sigma 9)
field:"Image" kind:ends_with value:"/esxcli"

Ingress/Egress Security Group Modification

#
Status
test
Severity
medium
Author
jamesc-grafana
Source
github.com/SigmaHQ/sigma

Detects when an account makes changes to the ingress or egress rules of a security group. This can indicate that an attacker is attempting to open up new attack vectors in the account, that they are trying to exfiltrate data over the network, or that they are trying to allow machines in that VPC/Subnet to contact a C&C server.

Known False Positives

  • New VPCs and Subnets being setup requiring a different security profile to those already defined
  • A single port being opened for a new service that is known to be deploying
  • Administrators closing unused ports to reduce the attack surface

MITRE ATT&CK Coverage

TacticTechniques
Initial Access

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Ingress/Egress Security Group Modification
id: 6fb77778-040f-4015-9440-572aa9b6b580
status: test
description: |
    Detects when an account makes changes to the ingress or egress rules of a security group.
    This can indicate that an attacker is attempting to open up new attack vectors in the account, that they are trying to exfiltrate data over the network, or that they are trying to allow machines in that VPC/Subnet to contact a C&C server.
references:
    - https://www.gorillastack.com/blog/real-time-events/important-aws-cloudtrail-security-events-tracking/
author: jamesc-grafana
date: 2024-07-11
tags:
    - attack.initial-access
    - attack.t1190
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: 'ec2.amazonaws.com'
        eventName:
            - 'AuthorizeSecurityGroupEgress'
            - 'AuthorizeSecurityGroupIngress'
            - 'RevokeSecurityGroupEgress'
            - 'RevokeSecurityGroupIngress'
    condition: selection
falsepositives:
    - New VPCs and Subnets being setup requiring a different security profile to those already defined
    - A single port being opened for a new service that is known to be deploying
    - Administrators closing unused ports to reduce the attack surface
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: 'ec2.amazonaws.com'
    eventName:
        - 'AuthorizeSecurityGroupEgress'
        - 'AuthorizeSecurityGroupIngress'
        - 'RevokeSecurityGroupEgress'
        - 'RevokeSecurityGroupIngress'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
eventNameeq
  • AuthorizeSecurityGroupEgress
  • AuthorizeSecurityGroupIngress corpus 2 (sigma 2)
  • RevokeSecurityGroupEgress
  • RevokeSecurityGroupIngress
field:"aws::eventName" kind:eq
eventSourceeq
  • ec2.amazonaws.com corpus 13 (sigma 10, panther 2, splunk 1)
field:"aws::eventSource" kind:eq value:"ec2.amazonaws.com"

Invoke-Obfuscation Via Use MSHTA

#
Status
test
Severity
high
Author
Nikita Nazarov, oscd.community
Source
github.com/SigmaHQ/sigma

Detects Obfuscated Powershell via use MSHTA in Scripts

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Invoke-Obfuscation Via Use MSHTA
id: ac20ae82-8758-4f38-958e-b44a3140ca88
status: test
description: Detects Obfuscated Powershell via use MSHTA in Scripts
references:
    - https://github.com/SigmaHQ/sigma/issues/1009   # (Task31)
author: Nikita Nazarov, oscd.community
date: 2020-10-08
modified: 2022-03-08
tags:
    - attack.stealth
    - attack.t1027
    - attack.execution
    - attack.t1059.001
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        CommandLine|contains|all:
            - 'set'
            - '&&'
            - 'mshta'
            - 'vbscript:createobject'
            - '.run'
            - '(window.close)'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    CommandLine|contains|all:
        - 'set'
        - '&&'
        - 'mshta'
        - 'vbscript:createobject'
        - '.run'
        - '(window.close)'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • && corpus 2 (sigma 2)
  • (window.close)
  • .run corpus 2 (sigma 2)
  • mshta corpus 14 (sigma 14)
  • set corpus 11 (sigma 10, splunk 1)
  • vbscript:createobject
field:"CommandLine" kind:match

Kubernetes CronJob/Job Modification

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

Detects when a Kubernetes CronJob or Job is created or modified. A Kubernetes Job creates one or more pods to accomplish a specific task, and a CronJob creates Jobs on a recurring schedule. An adversary can take advantage of this Kubernetes object to schedule Jobs to run containers that execute malicious code within a cluster, allowing them to achieve persistence.

Known False Positives

  • Modifying a Kubernetes Job or CronJob may need to be done by a system administrator.
  • Automated processes may need to take these actions and may need to be filtered.

MITRE ATT&CK Coverage

TacticTechniques
ExecutionNo specific technique
PersistenceNo specific technique
Privilege EscalationNo specific technique

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Kubernetes CronJob/Job Modification
id: 0c9b3bda-41a6-4442-9345-356ae86343dc
related:
    - id: cd3a808c-c7b7-4c50-a2f3-f4cfcd436435
      type: similar
status: test
description: |
    Detects when a Kubernetes CronJob or Job is created or modified.
    A Kubernetes Job creates one or more pods to accomplish a specific task, and a CronJob creates Jobs on a recurring schedule.
    An adversary can take advantage of this Kubernetes object to schedule Jobs to run containers that execute malicious code within a cluster, allowing them to achieve persistence.
references:
    - https://kubernetes.io/docs/reference/config-api/apiserver-audit.v1/
    - https://www.redhat.com/en/blog/protecting-kubernetes-against-mitre-attck-persistence#technique-33-kubernetes-cronjob
author: kelnage
date: 2024-07-11
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.execution
logsource:
    product: kubernetes
    service: audit
detection:
    selection:
        objectRef.apiGroup: 'batch'
        objectRef.resource:
            - 'cronjobs'
            - 'jobs'
        verb:
            - 'create'
            - 'delete'
            - 'patch'
            - 'replace'
            - 'update'
    condition: selection
falsepositives:
    - Modifying a Kubernetes Job or CronJob may need to be done by a system administrator.
    - Automated processes may need to take these actions and may need to be filtered.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    objectRef.apiGroup: 'batch'
    objectRef.resource:
        - 'cronjobs'
        - 'jobs'
    verb:
        - 'create'
        - 'delete'
        - 'patch'
        - 'replace'
        - 'update'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
objectRef.apiGroupeq
  • batch
field:"objectRef.apiGroup" kind:eq value:"batch"
objectRef.resourceeq
  • cronjobs corpus 2 (sigma 1, splunk 1)
  • jobs
field:"objectRef.resource" kind:eq
verbeq
  • create corpus 23 (sigma 10, splunk 7, panther 6)
  • delete corpus 6 (sigma 6)
  • patch corpus 5 (sigma 5)
  • replace corpus 4 (sigma 4)
  • update corpus 6 (sigma 4, splunk 2)
field:"verb" kind:eq

Linux Logs Clearing Attempts

#
Status
stable
Severity
medium
Author
Ömer Günal, oscd.community
Source
github.com/SigmaHQ/sigma

Detects logs clearing attempts on Linux systems via utilities such as 'rm', 'rmdir', 'shred', and 'unlink' targeting log files and directories. Adversaries often try to clear logs to cover their tracks after performing malicious activities.

Known False Positives

  • Legitimate administration activities

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: Linux Logs Clearing Attempts
id: 80915f59-9b56-4616-9de0-fd0dea6c12fe
status: stable
description: |
    Detects logs clearing attempts on Linux systems via utilities such as 'rm', 'rmdir', 'shred', and 'unlink' targeting log files and directories.
    Adversaries often try to clear logs to cover their tracks after performing malicious activities.
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1070.002/T1070.002.md
author: Ömer Günal, oscd.community
date: 2020-10-07
modified: 2026-03-18
tags:
    - attack.defense-impairment
    - attack.t1685.006
logsource:
    product: linux
    category: process_creation
detection:
    selection:
        Image|endswith:
            - '/rm'    # covers /rmdir as well
            - '/rmdir'
            - '/shred'
            - '/unlink'
        CommandLine|contains:
            - '/var/log'
            - '/var/spool/mail'
    filter_main_legit_systat:
        Image|endswith: '/rm'
        CommandLine|startswith: 'rm -f /var/log/sysstat/'
    filter_main_dmseg:
        Image|endswith: '/rm'
        CommandLine|startswith: 'rm -f -- /var/log//dmesg' # // before dmesg is not typo
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Legitimate administration activities
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    Image|endswith:
        - '/rm'
        - '/rmdir'
        - '/shred'
        - '/unlink'
    CommandLine|contains:
        - '/var/log'
        - '/var/spool/mail'

Stage 2: not filter_main_*

filter_main_legit_systat:
    Image|endswith: '/rm'
    CommandLine|startswith: 'rm -f /var/log/sysstat/'
filter_main_dmseg:
    Image|endswith: '/rm'
    CommandLine|startswith: 'rm -f -- /var/log//dmesg'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /var/log corpus 2 (sigma 2)
  • /var/spool/mail
field:"CommandLine" kind:match
Imageends_with
  • /rm corpus 6 (sigma 6)
  • /rmdir
  • /shred corpus 6 (sigma 6)
  • /unlink corpus 5 (sigma 5)
field:"Image" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
CommandLinestarts_withrm -f -- /var/log//dmesgexcludes:CommandLine field:"CommandLine" value:"rm -f -- /var/log//dmesg"
Imageends_with/rmexcludes:Image field:"Image" value:"/rm"
CommandLinestarts_withrm -f /var/log/sysstat/excludes:CommandLine field:"CommandLine" value:"rm -f /var/log/sysstat/"

Linux Suspicious Child Process from Node.js - React2Shell

#
Status
experimental
Severity
high
Author
Swachchhanda Shrawan Poudel (Nextron Systems), Nasreddine Bencherchali
Source
github.com/SigmaHQ/sigma

Detects suspicious child processes spawned from Node.js server processes on Linux systems, potentially indicating remote code execution exploitation such as CVE-2025-55182 (React2Shell). This rule particularly looks for exploitation of vulnerability on Node.js Servers where attackers abuse Node.js child_process module to execute arbitrary system commands. When execSync() or exec() is used, the command line often includes a shell invocation followed by suspicious commands or scripts (e.g., /bin/sh -c <malicious-command>). For other methods, the Image field will show the spawned process directly.

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: Linux Suspicious Child Process from Node.js - React2Shell
id: c70834fa-fb9d-4aa0-9e7d-45ceed36f3f7
related:
    - id: 271de298-cc0e-4842-acd8-079a0a99ea65
      type: similar
status: experimental
description: |
    Detects suspicious child processes spawned from Node.js server processes on Linux systems, potentially indicating remote code execution exploitation such as CVE-2025-55182 (React2Shell).
    This rule particularly looks for exploitation of vulnerability on Node.js Servers where attackers abuse Node.js child_process module to execute arbitrary system commands.
    When execSync() or exec() is used, the command line often includes a shell invocation followed by suspicious commands or scripts (e.g., /bin/sh -c <malicious-command>).
    For other methods, the Image field will show the spawned process directly.
references:
    - https://github.com/msanft/CVE-2025-55182
    - https://nodejs.org/api/child_process.html#class-childprocess
    - https://gist.github.com/swachchhanda000/a0228130f86a2dedfbcebb415b47f870
    - https://github.com/nasbench/Misc-Research/blob/2f651ede832ab34027a7ba005b63bb78f1ade378/Other/React-Next-Child-Processes-Notes.md
author: Swachchhanda Shrawan Poudel (Nextron Systems), Nasreddine Bencherchali
date: 2025-12-05
tags:
    - attack.execution
    - attack.t1059
    - attack.initial-access
    - attack.t1190
    - detection.emerging-threats
    - cve.2025-55182
logsource:
    category: process_creation
    product: linux
detection:
    selection_parent:
        ParentImage|endswith: '/node'
        ParentCommandLine|contains:
            - '--experimental-https'
            - '--experimental-next-config-strip-types'
            - '/node_modules/next'
            - 'next dev'
            - 'next start'
            - 'node_modules/.bin'
            - 'react-scripts start'
            - 'start-server.js'
    selection_generic_child_img:
        # Observed when child_process.spawn(), child_process.exec(), child_process.execFile(), or child_process.fork() method is used to spawn suspicious processes in exploit
        - Image|endswith:
              - '/busybox'
              - '/cat'
              - '/curl'
              - '/dash'
              - '/dig'
              - '/head'
              - '/id'
              - '/ifconfig'
              - '/ip'
              - '/java'
              - '/less'
              - '/lua'
              - '/more'
              - '/nc'
              - '/ncat'
              - '/netcat'
              - '/netstat'
              - '/nslookup'
              - '/perl'
              - '/ping'
              - '/python'
              - '/python2'
              - '/ruby'
              - '/socat'
              - '/tail'
              - '/wget'
              - '/whoami'
        - Image|contains: '/python'
    selection_generic_child_cli:
        # Observed when child_process.execSync() is used to spawn suspicious processes
        # Reference: https://nodejs.org/api/child_process.html#child_processexecsynccommand-options
        # By default, the cli will look something like `/bin/sh -c .......`
        CommandLine|contains:
            - '/dev/tcp/'
            - '/dev/udp/'
            - '/etc/hosts'
            - '/etc/passwd'
            - '/etc/shadow'
            - 'base64'
            - 'cat '
            - 'curl'
            - 'dig'
            - 'ifconfig'
            - 'IO::Socket::INET'
            - 'java'
            - 'less '
            - 'lua'
            - 'mkfifo '
            - 'more'
            - 'nc '
            - 'ncat'
            - 'netcat'
            - 'netstat'
            - 'nslookup'
            - 'perl'
            - 'php'
            - 'ping'
            - 'ps -ef'
            - 'ps aux'
            - 'python'
            - 'rcat'
            - 'ruby'
            - 'sh -i 2>&1'
            - '-c id'
            - 'socat'
            - 'uname'
            - 'wget'
            - 'whoami'
    selection_specific_sh:
        Image|endswith: '/sh'
    selection_specific_cli:
        Image|endswith: '-c'
    filter_main_default_shell_flag:
        Image|endswith: '-c'
    condition:
        selection_parent and
        (
            1 of selection_generic_*
            or
            (selection_specific_sh and not filter_main_default_shell_flag)
            or
            (all of selection_specific_* and selection_generic_child_cli)
        )
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 1: selection_parent

selection_parent:
    ParentImage|endswith: '/node'
    ParentCommandLine|contains:
        - '--experimental-https'
        - '--experimental-next-config-strip-types'
        - '/node_modules/next'
        - 'next dev'
        - 'next start'
        - 'node_modules/.bin'
        - 'react-scripts start'
        - 'start-server.js'

Stage 2: selection_generic_child_img

selection_generic_child_img:
    - Image|endswith:
          - '/busybox'
          - '/cat'
          - '/curl'
          - '/dash'
          - '/dig'
          - '/head'
          - '/id'
          - '/ifconfig'
          - '/ip'
          - '/java'
          - '/less'
          - '/lua'
          - '/more'
          - '/nc'
          - '/ncat'
          - '/netcat'
          - '/netstat'
          - '/nslookup'
          - '/perl'
          - '/ping'
          - '/python'
          - '/python2'
          - '/ruby'
          - '/socat'
          - '/tail'
          - '/wget'
          - '/whoami'
    - Image|contains: '/python'

Stage 3: selection_generic_child_cli

selection_generic_child_cli:
    CommandLine|contains:
        - '/dev/tcp/'
        - '/dev/udp/'
        - '/etc/hosts'
        - '/etc/passwd'
        - '/etc/shadow'
        - 'base64'
        - 'cat '
        - 'curl'
        - 'dig'
        - 'ifconfig'
        - 'IO::Socket::INET'
        - 'java'
        - 'less '
        - 'lua'
        - 'mkfifo '
        - 'more'
        - 'nc '
        - 'ncat'
        - 'netcat'
        - 'netstat'
        - 'nslookup'
        - 'perl'
        - 'php'
        - 'ping'
        - 'ps -ef'
        - 'ps aux'
        - 'python'
        - 'rcat'
        - 'ruby'
        - 'sh -i 2>&1'
        - '-c id'
        - 'socat'
        - 'uname'
        - 'wget'
        - 'whoami'

Stage 4: selection_specific_sh

selection_specific_sh:
    Image|endswith: '/sh'

Stage 5: not filter_main_default_shell_flag

filter_main_default_shell_flag:
    Image|endswith: '-c'

Stage 6: selection_specific_sh

selection_specific_sh:
    Image|endswith: '/sh'

Stage 7: selection_specific_cli

selection_specific_cli:
    Image|endswith: '-c'

Stage 8: selection_generic_child_cli

selection_generic_child_cli:
    CommandLine|contains:
        - '/dev/tcp/'
        - '/dev/udp/'
        - '/etc/hosts'
        - '/etc/passwd'
        - '/etc/shadow'
        - 'base64'
        - 'cat '
        - 'curl'
        - 'dig'
        - 'ifconfig'
        - 'IO::Socket::INET'
        - 'java'
        - 'less '
        - 'lua'
        - 'mkfifo '
        - 'more'
        - 'nc '
        - 'ncat'
        - 'netcat'
        - 'netstat'
        - 'nslookup'
        - 'perl'
        - 'php'
        - 'ping'
        - 'ps -ef'
        - 'ps aux'
        - 'python'
        - 'rcat'
        - 'ruby'
        - 'sh -i 2>&1'
        - '-c id'
        - 'socat'
        - 'uname'
        - 'wget'
        - 'whoami'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -c id
  • /dev/tcp/ corpus 3 (elastic 2, sigma 1)
  • /dev/udp/ corpus 2 (sigma 1, elastic 1)
  • /etc/hosts corpus 2 (sigma 2)
  • /etc/passwd corpus 4 (sigma 3, elastic 1)
  • /etc/shadow corpus 4 (sigma 2, elastic 2)
  • IO::Socket::INET
  • base64 corpus 18 (elastic 11, sigma 7)
  • cat corpus 3 (sigma 3)
  • curl corpus 17 (sigma 14, elastic 2, splunk 1)
  • dig
  • ifconfig corpus 2 (sigma 2)
  • java corpus 2 (sigma 2)
  • less
  • lua corpus 2 (sigma 2)
  • mkfifo
  • more
  • nc
  • ncat
  • netcat corpus 2 (sigma 2)
  • netstat corpus 2 (sigma 2)
  • nslookup corpus 3 (sigma 3)
  • perl corpus 2 (sigma 2)
  • php
  • ping corpus 5 (sigma 4, splunk 1)
  • ps -ef
  • ps aux
  • python corpus 5 (sigma 4, elastic 1)
  • rcat
  • ruby corpus 2 (sigma 2)
  • sh -i 2>&1
  • socat corpus 2 (sigma 2)
  • uname
  • wget corpus 10 (sigma 8, elastic 1, splunk 1)
  • whoami corpus 12 (sigma 9, splunk 2, elastic 1)
field:"CommandLine" kind:match
Imageends_with
  • -c
  • /busybox
  • /cat corpus 10 (sigma 10)
  • /curl corpus 22 (sigma 22)
  • /dash corpus 9 (sigma 9)
  • /dig corpus 2 (sigma 2)
  • /head corpus 7 (sigma 7)
  • /id corpus 3 (sigma 3)
  • /ifconfig corpus 4 (sigma 4)
  • /ip corpus 3 (sigma 3)
  • /java
  • /less corpus 5 (sigma 5)
  • /lua
  • /more corpus 7 (sigma 7)
  • /nc corpus 7 (sigma 7)
  • /ncat corpus 6 (sigma 6)
  • /netcat corpus 6 (sigma 6)
  • /netstat corpus 6 (sigma 6)
  • /nslookup corpus 2 (sigma 2)
  • /perl corpus 5 (sigma 5)
  • /ping corpus 3 (sigma 3)
  • /python corpus 8 (sigma 8)
  • /python2 corpus 5 (sigma 5)
  • /ruby corpus 3 (sigma 3)
  • /sh corpus 12 (sigma 12)
  • /socat corpus 4 (sigma 4)
  • /tail corpus 7 (sigma 7)
  • /wget corpus 14 (sigma 14)
  • /whoami corpus 2 (sigma 2)
field:"Image" kind:ends_with
Imagematch
  • /python corpus 2 (sigma 2)
field:"Image" kind:match value:"/python"
ParentCommandLinematch
  • --experimental-https corpus 3 (sigma 2, elastic 1)
  • --experimental-next-config-strip-types corpus 2 (sigma 2)
  • /node_modules/next
  • next dev corpus 3 (sigma 2, elastic 1)
  • next start corpus 3 (sigma 2, elastic 1)
  • node_modules/.bin
  • react-scripts start corpus 3 (sigma 2, elastic 1)
  • start-server.js corpus 3 (sigma 2, elastic 1)
field:"ParentCommandLine" kind:match
ParentImageends_with
  • /node corpus 5 (sigma 5)
field:"ParentImage" kind:ends_with value:"/node"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with-cexcludes:Image field:"Image" value:"-c"

Manipulation of User Computer or Group Security Principals Across AD

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

Adversaries may create a domain account to maintain access to victim systems. Domain accounts are those managed by Active Directory Domain Services where access and permissions are configured across systems and services that are part of that domain..

Known False Positives

  • Legitimate administrative script

MITRE ATT&CK Coverage

TacticTechniques
Persistence

Telemetry Coverage

Rule Body

title: Manipulation of User Computer or Group Security Principals Across AD
id: b29a93fb-087c-4b5b-a84d-ee3309e69d08
status: test
description: |
    Adversaries may create a domain account to maintain access to victim systems.
    Domain accounts are those managed by Active Directory Domain Services where access and permissions are configured across systems and services that are part of that domain..
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1136.002/T1136.002.md#atomic-test-3---create-a-new-domain-account-using-powershell
    - https://learn.microsoft.com/en-us/dotnet/api/system.directoryservices.accountmanagement?view=net-8.0
author: frack113
date: 2021-12-28
tags:
    - attack.persistence
    - attack.t1136.002
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    selection:
        ScriptBlockText|contains: System.DirectoryServices.AccountManagement
    condition: selection
falsepositives:
    - Legitimate administrative script
level: medium
regression_tests_path: regression_data/rules/windows/powershell/powershell_script/posh_ps_directoryservices_accountmanagement/info.yml

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ScriptBlockText|contains: System.DirectoryServices.AccountManagement

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ScriptBlockTextmatch
  • System.DirectoryServices.AccountManagement
field:"ScriptBlockText" kind:match value:"System.DirectoryServices.AccountManagement"

Mshtml.DLL RunHTMLApplication Suspicious Usage

#
Status
test
Severity
high
Author
Nasreddine Bencherchali (Nextron Systems), Florian Roth (Nextron Systems), Josh Nickels, frack113, Zaw Min Htun (ZETA)
Source
github.com/SigmaHQ/sigma

Detects execution of commands that leverage the "mshtml.dll" RunHTMLApplication export to run arbitrary code via different protocol handlers (vbscript, javascript, file, http...)

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

TacticTechniques
ExecutionNo specific technique
StealthNo specific technique

Telemetry Coverage

Rule Body

title: Mshtml.DLL RunHTMLApplication Suspicious Usage
id: 4782eb5a-a513-4523-a0ac-f3082b26ac5c
related:
    - id: 9f06447a-a33a-4cbe-a94f-a3f43184a7a3
      type: obsolete
    - id: 73fcad2e-ff14-4c38-b11d-4172c8ac86c7
      type: obsolete
status: test
description: |
    Detects execution of commands that leverage the "mshtml.dll" RunHTMLApplication export to run arbitrary code via different protocol handlers (vbscript, javascript, file, http...)
references:
    - https://twitter.com/n1nj4sec/status/1421190238081277959
    - https://hyp3rlinx.altervista.org/advisories/MICROSOFT_WINDOWS_DEFENDER_TROJAN.WIN32.POWESSERE.G_MITIGATION_BYPASS_PART2.txt
    - http://hyp3rlinx.altervista.org/advisories/MICROSOFT_WINDOWS_DEFENDER_DETECTION_BYPASS.txt
author: Nasreddine Bencherchali (Nextron Systems),  Florian Roth (Nextron Systems), Josh Nickels, frack113, Zaw Min Htun (ZETA)
date: 2022-08-14
modified: 2024-02-23
tags:
    - attack.execution
    - attack.stealth
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        CommandLine|contains|all:
            - '\..\'
            - 'mshtml'
        CommandLine|contains:
            - '#135'
            - 'RunHTMLApplication'
    condition: selection
falsepositives:
    - Unlikely
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_rundll32_mshtml_runhtmlapplication/info.yml

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    CommandLine|contains|all:
        - '\..\'
        - 'mshtml'
    CommandLine|contains:
        - '#135'
        - 'RunHTMLApplication'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • #135
  • RunHTMLApplication
  • \..\
  • mshtml
field:"CommandLine" kind:match

PipeShell exfiltration over named pipes

#
Status
experimental
Severity
medium
Time window
5m
Author
mdecrevoisier
Source
github.com/mdecrevoisier/SIGMA-detection-rules

Detects scenarios where an attacker establishes "PipeShell" connection(s) between a server and client(s) in order to move laterally or exfiltrate data. The server side will trigger "ServerStream" IOCs meanwhile the client side will trigger "ClientStream" IOCs. The rule works based on this condition, where at least 2 hosts need to trigger one of the condition.

Known False Positives

  • packet manager

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: PipeShell exfiltration over named pipes
description: Detects scenarios where an attacker establishes "PipeShell" connection(s) between a server and client(s) in order to move laterally or exfiltrate data. The server side will trigger "ServerStream" IOCs meanwhile the client side will trigger "ClientStream" IOCs. The rule works based on this condition, where at least 2 hosts need to trigger one of the condition.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0002-Execution/T1059.001-PowerShell
- https://github.com/threatexpress/invoke-pipeshell
- https://github.com/p3nt4/Invoke-Piper/blob/master/Invoke-Piper.psm1
- https://sudonull.com/post/25207-Using-Pipes-for-Pivoting
- https://codewhitesec.blogspot.com/2020/01/cve-2019-19470-rumble-in-pipe.html
- https://decoder.cloud/2019/03/06/windows-named-pipes-impersonation/
- https://www.powershellgallery.com/packages/PSNamedPipe/1.0.0.19/Content/Public%5CNew-PSNamedPipeServer.ps1
tags:
- attack.execution
- attack.t1059.001
- attack.exfiltration
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category:
    - ps_module
    - ps_classic_script
    - ps_script
detection:
  SERVER_powershell_native:
    EventID: 800
    EventData|contains: 'System.IO.Pipes.NamedPipeServerStream'
  SERVER_powershell_modern:
    EventID: 4103
    Payload|contains: 'System.IO.Pipes.NamedPipeServerStream'
  SERVER_powershell_block:
    EventID: 4104
    ScriptBlockText|contains: 'System.IO.Pipes.NamedPipeServerStream'

  CLIENT_powershell_native:
    EventID: 800
    EventData|contains: 'System.IO.Pipes.NamedPipeClientStream'
  CLIENT_spowershell_modern:
    EventID: 4103
    Payload|contains: 'System.IO.Pipes.NamedPipeClientStream'
  CLIENT_powershell_block:
    EventID: 4104
    ScriptBlockText|contains: 'System.IO.Pipes.NamedPipeClientStream'

  condition: (1 of SERVER*) AND (1 of CLIENT*) | count(Computer) > 2
  timeframe: 5m
falsepositives:
- packet manager
level: medium

Stages and Predicates

Stage 0: condition

(1 of SERVER*) AND (1 of CLIENT*) | count(Computer) > 2

Stage 1: SERVER_powershell_native

SERVER_powershell_native:
  EventID: 800
  EventData|contains: 'System.IO.Pipes.NamedPipeServerStream'
Threshold
> 2

Stage 2: SERVER_powershell_modern

SERVER_powershell_modern:
  EventID: 4103
  Payload|contains: 'System.IO.Pipes.NamedPipeServerStream'

Stage 3: SERVER_powershell_block

SERVER_powershell_block:
  EventID: 4104
  ScriptBlockText|contains: 'System.IO.Pipes.NamedPipeServerStream'

Stage 4: CLIENT_powershell_native

CLIENT_powershell_native:
  EventID: 800
  EventData|contains: 'System.IO.Pipes.NamedPipeClientStream'

Stage 5: CLIENT_spowershell_modern

CLIENT_spowershell_modern:
  EventID: 4103
  Payload|contains: 'System.IO.Pipes.NamedPipeClientStream'

Stage 6: CLIENT_powershell_block

CLIENT_powershell_block:
  EventID: 4104
  ScriptBlockText|contains: 'System.IO.Pipes.NamedPipeClientStream'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventDatamatch
  • System.IO.Pipes.NamedPipeClientStream
  • System.IO.Pipes.NamedPipeServerStream
field:"EventData" kind:match
Payloadmatch
  • System.IO.Pipes.NamedPipeClientStream
  • System.IO.Pipes.NamedPipeServerStream
field:"Payload" kind:match
ScriptBlockTextmatch
  • System.IO.Pipes.NamedPipeClientStream
  • System.IO.Pipes.NamedPipeServerStream
field:"ScriptBlockText" kind:match

Potential CobaltStrike Process Patterns

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

Detects potential process patterns related to Cobalt Strike beacon activity

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Potential CobaltStrike Process Patterns
id: f35c5d71-b489-4e22-a115-f003df287317
status: test
description: Detects potential process patterns related to Cobalt Strike beacon activity
references:
    - https://hausec.com/2021/07/26/cobalt-strike-and-tradecraft/
    - https://thedfirreport.com/2021/08/29/cobalt-strike-a-defenders-guide/
author: Florian Roth (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
date: 2021-07-27
modified: 2023-03-29
tags:
    - attack.execution
    - attack.t1059
logsource:
    category: process_creation
    product: windows
detection:
    selection_generic_1:
        CommandLine|endswith: 'cmd.exe /C whoami'
        ParentImage|startswith: 'C:\Temp\'
    selection_generic_2:
        ParentImage|endswith:
            - '\runonce.exe'
            - '\dllhost.exe'
        CommandLine|contains|all:
            - 'cmd.exe /c echo'
            - '> \\\\.\\pipe'
    selection_conhost_1:
        ParentCommandLine|contains|all:
            - 'cmd.exe /C echo'
            - ' > \\\\.\\pipe'
        CommandLine|endswith: 'conhost.exe 0xffffffff -ForceV1'
    selection_conhost_2:
        ParentCommandLine|endswith: '/C whoami'
        CommandLine|endswith: 'conhost.exe 0xffffffff -ForceV1'
    condition: 1 of selection_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_generic_1

selection_generic_1:
    CommandLine|endswith: 'cmd.exe /C whoami'
    ParentImage|startswith: 'C:\Temp\'

Stage 2: selection_generic_2

selection_generic_2:
    ParentImage|endswith:
        - '\runonce.exe'
        - '\dllhost.exe'
    CommandLine|contains|all:
        - 'cmd.exe /c echo'
        - '> \\\\.\\pipe'

Stage 3: selection_conhost_1

selection_conhost_1:
    ParentCommandLine|contains|all:
        - 'cmd.exe /C echo'
        - ' > \\\\.\\pipe'
    CommandLine|endswith: 'conhost.exe 0xffffffff -ForceV1'

Stage 4: selection_conhost_2

selection_conhost_2:
    ParentCommandLine|endswith: '/C whoami'
    CommandLine|endswith: 'conhost.exe 0xffffffff -ForceV1'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLineends_with
  • cmd.exe /C whoami
  • conhost.exe 0xffffffff -ForceV1
field:"CommandLine" kind:ends_with
CommandLinematch
  • > \\\\.\\pipe
  • cmd.exe /c echo
field:"CommandLine" kind:match
ParentCommandLineends_with
  • /C whoami
field:"ParentCommandLine" kind:ends_with value:"/C whoami"
ParentCommandLinematch
  • > \\\\.\\pipe
  • cmd.exe /C echo
field:"ParentCommandLine" kind:match
ParentImageends_with
  • \dllhost.exe corpus 7 (sigma 7)
  • \runonce.exe
field:"ParentImage" kind:ends_with
ParentImagestarts_with
  • C:\Temp\
field:"ParentImage" kind:starts_with value:"C:\Temp\"

Potential WWlib.DLL Sideloading

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

Detects potential DLL sideloading of "wwlib.dll"

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 7: Image loaded

Rule Body

title: Potential WWlib.DLL Sideloading
id: e2e01011-5910-4267-9c3b-4149ed5479cf
status: test
description: Detects potential DLL sideloading of "wwlib.dll"
references:
    - https://twitter.com/WhichbufferArda/status/1658829954182774784
    - https://news.sophos.com/en-us/2022/11/03/family-tree-dll-sideloading-cases-may-be-related/
    - https://securelist.com/apt-luminousmoth/103332/
author: X__Junior (Nextron Systems)
date: 2023-05-18
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.execution
    - attack.stealth
    - attack.t1574.001
logsource:
    category: image_load
    product: windows
detection:
    selection:
        ImageLoaded|endswith: '\wwlib.dll'
    filter_main_path:
        Image|startswith:
            - 'C:\Program Files (x86)\Microsoft Office\'
            - 'C:\Program Files\Microsoft Office\'
        Image|endswith: '\winword.exe'
        ImageLoaded|startswith:
            - 'C:\Program Files (x86)\Microsoft Office\'
            - 'C:\Program Files\Microsoft Office\'
    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:
    ImageLoaded|endswith: '\wwlib.dll'

Stage 2: not filter_main_path

filter_main_path:
    Image|startswith:
        - 'C:\Program Files (x86)\Microsoft Office\'
        - 'C:\Program Files\Microsoft Office\'
    Image|endswith: '\winword.exe'
    ImageLoaded|startswith:
        - 'C:\Program Files (x86)\Microsoft Office\'
        - 'C:\Program Files\Microsoft Office\'

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imagestarts_withC:\Program Files (x86)\Microsoft Office\excludes:Image field:"Image" value:"C:\Program Files (x86)\Microsoft Office\"
Imagestarts_withC:\Program Files\Microsoft Office\excludes:Image field:"Image" value:"C:\Program Files\Microsoft Office\"
ImageLoadedstarts_withC:\Program Files (x86)\Microsoft Office\excludes:ImageLoaded field:"ImageLoaded" value:"C:\Program Files (x86)\Microsoft Office\"
ImageLoadedstarts_withC:\Program Files\Microsoft Office\excludes:ImageLoaded field:"ImageLoaded" value:"C:\Program Files\Microsoft Office\"
Imageends_with\winword.exeexcludes:Image field:"Image" value:"\winword.exe"

Processes Accessing the Microphone and Webcam

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

Potential adversaries accessing the microphone and webcam in an endpoint.

MITRE ATT&CK Coverage

TacticTechniques
Collection

Telemetry Coverage

Rule Body

title: Processes Accessing the Microphone and Webcam
id: 8cd538a4-62d5-4e83-810b-12d41e428d6e
status: test
description: Potential adversaries accessing the microphone and webcam in an endpoint.
references:
    - https://twitter.com/duzvik/status/1269671601852813320
    - https://medium.com/@7a616368/can-you-track-processes-accessing-the-camera-and-microphone-7e6885b37072
author: Roberto Rodriguez (Cyb3rWard0g), OTR (Open Threat Research)
date: 2020-06-07
modified: 2021-11-27
tags:
    - attack.collection
    - attack.t1123
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID:
            - 4657
            - 4656
            - 4663
        ObjectName|contains:
            - '\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone\NonPackaged'
            - '\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\NonPackaged'
    condition: selection
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    EventID:
        - 4657
        - 4656
        - 4663
    ObjectName|contains:
        - '\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone\NonPackaged'
        - '\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\NonPackaged'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ObjectNamematch
  • \SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone\NonPackaged
  • \SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\NonPackaged
field:"ObjectName" kind:match

Qakbot Uninstaller Execution

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

Detects the execution of the Qakbot uninstaller file mentioned in the USAO-CDCA document on the disruption of the Qakbot malware and botnet

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

TacticTechniques
ExecutionNo specific technique

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Qakbot Uninstaller Execution
id: bc309b7a-3c29-4937-a4a3-e232473f9168
status: test
description: Detects the execution of the Qakbot uninstaller file mentioned in the USAO-CDCA document on the disruption of the Qakbot malware and botnet
references:
    - https://www.justice.gov/usao-cdca/divisions/national-security-division/qakbot-resources
    - https://www.virustotal.com/gui/file/7cdee5a583eacf24b1f142413aabb4e556ccf4ef3a4764ad084c1526cc90e117/community
    - https://www.virustotal.com/gui/file/fab408536aa37c4abc8be97ab9c1f86cb33b63923d423fdc2859eb9d63fa8ea0/community
author: Florian Roth (Nextron Systems)
date: 2023-08-31
modified: 2023-09-01
tags:
    - attack.execution
    - detection.emerging-threats
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        - Image|endswith: '\QbotUninstall.exe'
        - Hashes|contains:
              - 'IMPHASH=E772C815072311D6FB8C3390743E6BE5'
              - 'SHA256=423A9D13D410E2DC38EABB9FDF3121D2072472D0426260283A638B822DCD5180'
              - 'SHA256=559CAE635F0D870652B9482EF436B31D4BB1A5A0F51750836F328D749291D0B6'
              - 'SHA256=855EB5481F77DDE5AD8FA6E9D953D4AEBC280DDDF9461144B16ED62817CC5071'
              - 'SHA256=FAB408536AA37C4ABC8BE97AB9C1F86CB33B63923D423FDC2859EB9D63FA8EA0'
    condition: selection
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    - Image|endswith: '\QbotUninstall.exe'
    - Hashes|contains:
          - 'IMPHASH=E772C815072311D6FB8C3390743E6BE5'
          - 'SHA256=423A9D13D410E2DC38EABB9FDF3121D2072472D0426260283A638B822DCD5180'
          - 'SHA256=559CAE635F0D870652B9482EF436B31D4BB1A5A0F51750836F328D749291D0B6'
          - 'SHA256=855EB5481F77DDE5AD8FA6E9D953D4AEBC280DDDF9461144B16ED62817CC5071'
          - 'SHA256=FAB408536AA37C4ABC8BE97AB9C1F86CB33B63923D423FDC2859EB9D63FA8EA0'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Hashesmatch
  • IMPHASH=E772C815072311D6FB8C3390743E6BE5
  • SHA256=423A9D13D410E2DC38EABB9FDF3121D2072472D0426260283A638B822DCD5180
  • SHA256=559CAE635F0D870652B9482EF436B31D4BB1A5A0F51750836F328D749291D0B6
  • SHA256=855EB5481F77DDE5AD8FA6E9D953D4AEBC280DDDF9461144B16ED62817CC5071
  • SHA256=FAB408536AA37C4ABC8BE97AB9C1F86CB33B63923D423FDC2859EB9D63FA8EA0
field:"Hashes" kind:match
Imageends_with
  • \QbotUninstall.exe
field:"Image" kind:ends_with value:"\QbotUninstall.exe"

Regsvr32 DLL Execution With Uncommon Extension

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

Detects a "regsvr32" execution where the DLL doesn't contain a common file extension.

Known False Positives

  • Other legitimate extensions currently not in the list either from third party or specific Windows components.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Regsvr32 DLL Execution With Uncommon Extension
id: 50919691-7302-437f-8e10-1fe088afa145
status: test
description: Detects a "regsvr32" execution where the DLL doesn't contain a common file extension.
references:
    - https://app.any.run/tasks/34221348-072d-4b70-93f3-aa71f6ebecad/
author: Florian Roth (Nextron Systems)
date: 2019-07-17
modified: 2023-05-24
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.stealth
    - attack.t1574
    - attack.execution
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        - Image|endswith: '\regsvr32.exe'
        - OriginalFileName: 'REGSVR32.EXE'
    filter_main_legit_ext:
        CommandLine|contains:
            # Note: For better accuracy you might not want to use contains
            - '.ax'
            - '.cpl'
            - '.dll' # Covers ".dll.mui"
            - '.ocx'
    filter_optional_pascal:
        CommandLine|contains: '.ppl'
    filter_optional_avg:
        CommandLine|contains: '.bav'
    filter_main_null_4688:
        CommandLine: null
    filter_main_empty_4688:
        CommandLine: ''
    condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Other legitimate extensions currently not in the list either from third party or specific Windows components.
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection

selection:
    - Image|endswith: '\regsvr32.exe'
    - OriginalFileName: 'REGSVR32.EXE'

Stage 2: not filter_main_*

filter_main_legit_ext:
    CommandLine|contains:
        - '.ax'
        - '.cpl'
        - '.dll'
        - '.ocx'
filter_main_null_4688:
    CommandLine: null
filter_main_empty_4688:
    CommandLine: ''

Stage 3: not filter_optional_*

filter_optional_pascal:
    CommandLine|contains: '.ppl'
filter_optional_avg:
    CommandLine|contains: '.bav'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \regsvr32.exe corpus 64 (sigma 64)
field:"Image" kind:ends_with value:"\regsvr32.exe"
OriginalFileNameeq
  • REGSVR32.EXE corpus 37 (sigma 17, elastic 15, splunk 5)
field:"OriginalFileName" kind:eq value:"REGSVR32.EXE"

Exclusions

The rule actively suppresses these predicates.

Remote Thread Creation Via PowerShell

#
Status
test
Severity
medium
Author
Nikita Nazarov, oscd.community
Source
github.com/SigmaHQ/sigma

Detects the creation of a remote thread from a Powershell process to another process

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 8: CreateRemoteThread

Rule Body

title: Remote Thread Creation Via PowerShell
id: eeb2e3dc-c1f4-40dd-9bd5-149ee465ad50
related:
    - id: 99b97608-3e21-4bfe-8217-2a127c396a0e
      type: derived
status: test
description: Detects the creation of a remote thread from a Powershell process to another process
references:
    - https://speakerdeck.com/heirhabarov/hunting-for-powershell-abuse
author: Nikita Nazarov, oscd.community
date: 2020-10-06
modified: 2023-11-10
tags:
    - attack.execution
    - attack.t1059.001
    - detection.threat-hunting
logsource:
    product: windows
    category: create_remote_thread
detection:
    selection:
        SourceImage|endswith:
            - '\powershell.exe'
            - '\pwsh.exe'
    filter_main_compattelrunner:
        SourceParentImage|endswith: ':\Windows\System32\CompatTelRunner.exe'
    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:
    SourceImage|endswith:
        - '\powershell.exe'
        - '\pwsh.exe'

Stage 2: not filter_main_compattelrunner

filter_main_compattelrunner:
    SourceParentImage|endswith: ':\Windows\System32\CompatTelRunner.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
SourceImageends_with
  • \powershell.exe corpus 4 (sigma 4)
  • \pwsh.exe corpus 4 (sigma 4)
field:"SourceImage" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
SourceParentImageends_with:\Windows\System32\CompatTelRunner.exeexcludes:SourceParentImage field:"SourceParentImage" value:":\Windows\System32\CompatTelRunner.exe"

Setuid and Setgid

#
Status
test
Severity
low
Author
Ömer Günal
Source
github.com/SigmaHQ/sigma

Detects suspicious change of file privileges with chown and chmod commands

Known False Positives

  • Legitimate administration activities

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: Setuid and Setgid
id: c21c4eaa-ba2e-419a-92b2-8371703cbe21
status: test
description: Detects suspicious change of file privileges with chown and chmod commands
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1548.001/T1548.001.md
author: Ömer Günal
date: 2020-06-16
modified: 2022-10-05
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.t1548.001
logsource:
    product: linux
    category: process_creation
detection:
    selection_root:
        CommandLine|contains: 'chown root'
    selection_perm:
        CommandLine|contains:
            - ' chmod u+s'
            - ' chmod g+s'
    condition: all of selection_*
falsepositives:
    - Legitimate administration activities
level: low

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_root

selection_root:
    CommandLine|contains: 'chown root'

Stage 2: selection_perm

selection_perm:
    CommandLine|contains:
        - ' chmod u+s'
        - ' chmod g+s'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • chmod g+s
  • chmod u+s
  • chown root
field:"CommandLine" kind:match

Suspicious Child Process of SAP NetWeaver

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

Detects suspicious child processes spawned by SAP NetWeaver that could indicate potential exploitation of vulnerability that allows arbitrary execution via webshells such as CVE-2025-31324.

Known False Positives

  • Legitimate administrative activities such as software updates

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Suspicious Child Process of SAP NetWeaver
id: 5b304bcb-ac33-49d0-87af-fa1b3ca94333
status: experimental
description: |
    Detects suspicious child processes spawned by SAP NetWeaver that could indicate potential
    exploitation of vulnerability that allows arbitrary execution via webshells such as CVE-2025-31324.
author: Elastic (idea), Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2025-04-28
tags:
    - attack.execution
    - attack.initial-access
    - attack.t1190
    - attack.persistence
    - attack.t1059.003
    - cve.2025-31324
    - detection.emerging-threats
references:
    - https://reliaquest.com/blog/threat-spotlight-reliaquest-uncovers-vulnerability-behind-sap-netweaver-compromise/
    - https://onapsis.com/blog/active-exploitation-of-sap-vulnerability-cve-2025-31324/
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent_img:
        ParentImage|contains:
            - '\j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\work'
            - '\j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\root'
    selection_current_dict:
        CurrentDirectory|contains:
            - '\j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\work'
            - '\j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\root'
    selection_child:
        Image|endswith:
            - '\cmd.exe'
            - '\powershell.exe'
            - '\powershell_ise.exe'
            - '\pwsh.exe'
            - '\wscript.exe'
            - '\cscript.exe'
            - '\regsvr32.exe'
            - '\rundll32.exe'
            - '\mshta.exe'
            - '\certutil.exe'
            - '\bitsadmin.exe'
            - '\python.exe'
    condition: (selection_parent_img or selection_current_dict) and selection_child
falsepositives:
    - Legitimate administrative activities such as software updates
level: medium

Stages and Predicates

Stage 0: condition

(selection_parent_img or selection_current_dict) and selection_child

Stage 1: selection_parent_img

selection_parent_img:
    ParentImage|contains:
        - '\j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\work'
        - '\j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\root'

Stage 2: selection_current_dict

selection_current_dict:
    CurrentDirectory|contains:
        - '\j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\work'
        - '\j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\root'

Stage 3: selection_child

selection_child:
    Image|endswith:
        - '\cmd.exe'
        - '\powershell.exe'
        - '\powershell_ise.exe'
        - '\pwsh.exe'
        - '\wscript.exe'
        - '\cscript.exe'
        - '\regsvr32.exe'
        - '\rundll32.exe'
        - '\mshta.exe'
        - '\certutil.exe'
        - '\bitsadmin.exe'
        - '\python.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CurrentDirectorymatch
  • \j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\root
  • \j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\work
field:"CurrentDirectory" kind:match
Imageends_with
  • \bitsadmin.exe corpus 29 (sigma 29)
  • \certutil.exe corpus 43 (sigma 43)
  • \cmd.exe corpus 132 (sigma 130, splunk 2)
  • \cscript.exe corpus 72 (sigma 72)
  • \mshta.exe corpus 67 (sigma 66, splunk 1)
  • \powershell.exe corpus 181 (sigma 180, splunk 1)
  • \powershell_ise.exe corpus 41 (sigma 41)
  • \pwsh.exe corpus 166 (sigma 166)
  • \python.exe corpus 4 (sigma 4)
  • \regsvr32.exe corpus 64 (sigma 64)
  • \rundll32.exe corpus 94 (sigma 94)
  • \wscript.exe corpus 74 (sigma 74)
field:"Image" kind:ends_with
ParentImagematch
  • \j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\root
  • \j2ee\cluster\apps\sap.com\irj\servlet_jsp\irj\work
field:"ParentImage" kind:match

Suspicious File Download From File Sharing Domain Via Curl.EXE

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

Detects potentially suspicious file download from file sharing domains using curl.exe

MITRE ATT&CK Coverage

TacticTechniques
ExecutionNo specific technique

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Suspicious File Download From File Sharing Domain Via Curl.EXE
id: 56454143-524f-49fb-b1c6-3fb8b1ad41fb
related:
    - id: 8b48ad89-10d8-4382-a546-50588c410f0d
      type: similar
    - id: d635249d-86b5-4dad-a8c7-d7272b788586
      type: similar
    - id: 52182dfb-afb7-41db-b4bc-5336cb29b464
      type: similar
    - id: ae02ed70-11aa-4a22-b397-c0d0e8f6ea99
      type: similar
    - id: e0f8ab85-0ac9-423b-a73a-81b3c7b1aa97
      type: similar
    - id: 7b434893-c57d-4f41-908d-6a17bf1ae98f
      type: similar
    - id: 8518ed3d-f7c9-4601-a26c-f361a4256a0c
      type: similar
    - id: 42a5f1e7-9603-4f6d-97ae-3f37d130d794
      type: similar
    - id: b6e04788-29e1-4557-bb14-77f761848ab8
      type: similar
    - id: a0d7e4d2-bede-4141-8896-bc6e237e977c
      type: similar
    - id: 297ae038-edc2-4b2e-bb3e-7c5fc94dd5c7
      type: similar
status: test
description: Detects potentially suspicious file download from file sharing domains using curl.exe
references:
    - https://labs.withsecure.com/publications/fin7-target-veeam-servers
    - https://github.com/WithSecureLabs/iocs/blob/344203de742bb7e68bd56618f66d34be95a9f9fc/FIN7VEEAM/iocs.csv
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-05-05
modified: 2026-03-29
tags:
    - attack.execution
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\curl.exe'
        - OriginalFileName: 'curl.exe'
    selection_websites:
        CommandLine|contains:
            - '.githubusercontent.com'       # Includes both gists and github repositories / Michael Haag (idea)
            - '0x0.st'
            - 'anonfiles.com'
            - 'bashupload.com'
            - 'cdn.discordapp.com'
            - 'chunk.io'
            - 'ddns.net'
            - 'dl.dropboxusercontent.com'
            - 'ghostbin.co'
            - 'github.com'
            - 'glitch.me'
            - 'gofile.io'
            - 'hastebin.com'
            - 'mediafire.com'
            - 'mega.nz'
            - 'onrender.com'
            - 'pages.dev'
            - 'paste.ee'
            - 'pastebin.com'
            - 'pastebin.pl'
            - 'pastetext.net'
            - 'pixeldrain.com'
            - 'privatlab.com'
            - 'privatlab.net'
            - 'send.exploit.in'
            - 'sendspace.com'
            - 'storage.googleapis.com'
            - 'storjshare.io'
            - 'supabase.co'
            - 'temp.sh'
            - 'transfer.sh'
            - 'trycloudflare.com'
            - 'ufile.io'
            - 'w3spaces.com'
            - 'workers.dev'
            - 'x0.at'
    selection_http:
        CommandLine|contains: 'http'
    selection_flag:
        CommandLine|contains:
            - ' -O'  # covers the alias for --remote-name and --output
            - '--remote-name'
            - '--output'
    selection_ext:
        CommandLine|endswith:
            - ".ps1"
            - ".ps1'"
            - '.ps1"'
            - ".dat"
            - ".dat'"
            - '.dat"'
            - ".msi"
            - ".msi'"
            - '.msi"'
            - ".bat"
            - ".bat'"
            - '.bat"'
            - ".exe"
            - ".exe'"
            - '.exe"'
            - ".vbs"
            - ".vbs'"
            - '.vbs"'
            - ".vbe"
            - ".vbe'"
            - '.vbe"'
            - ".hta"
            - ".hta'"
            - '.hta"'
            - ".dll"
            - ".dll'"
            - '.dll"'
            - ".psm1"
            - ".psm1'"
            - '.psm1"'
    condition: all of selection_*
falsepositives:
    - Unknown
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_curl_download_susp_file_sharing_domains/info.yml

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\curl.exe'
    - OriginalFileName: 'curl.exe'

Stage 2: selection_websites

selection_websites:
    CommandLine|contains:
        - '.githubusercontent.com'
        - '0x0.st'
        - 'anonfiles.com'
        - 'bashupload.com'
        - 'cdn.discordapp.com'
        - 'chunk.io'
        - 'ddns.net'
        - 'dl.dropboxusercontent.com'
        - 'ghostbin.co'
        - 'github.com'
        - 'glitch.me'
        - 'gofile.io'
        - 'hastebin.com'
        - 'mediafire.com'
        - 'mega.nz'
        - 'onrender.com'
        - 'pages.dev'
        - 'paste.ee'
        - 'pastebin.com'
        - 'pastebin.pl'
        - 'pastetext.net'
        - 'pixeldrain.com'
        - 'privatlab.com'
        - 'privatlab.net'
        - 'send.exploit.in'
        - 'sendspace.com'
        - 'storage.googleapis.com'
        - 'storjshare.io'
        - 'supabase.co'
        - 'temp.sh'
        - 'transfer.sh'
        - 'trycloudflare.com'
        - 'ufile.io'
        - 'w3spaces.com'
        - 'workers.dev'
        - 'x0.at'

Stage 3: selection_http

selection_http:
    CommandLine|contains: 'http'

Stage 4: selection_flag

selection_flag:
    CommandLine|contains:
        - ' -O'
        - '--remote-name'
        - '--output'

Stage 5: selection_ext

selection_ext:
    CommandLine|endswith:
        - ".ps1"
        - ".ps1'"
        - '.ps1"'
        - ".dat"
        - ".dat'"
        - '.dat"'
        - ".msi"
        - ".msi'"
        - '.msi"'
        - ".bat"
        - ".bat'"
        - '.bat"'
        - ".exe"
        - ".exe'"
        - '.exe"'
        - ".vbs"
        - ".vbs'"
        - '.vbs"'
        - ".vbe"
        - ".vbe'"
        - '.vbe"'
        - ".hta"
        - ".hta'"
        - '.hta"'
        - ".dll"
        - ".dll'"
        - '.dll"'
        - ".psm1"
        - ".psm1'"
        - '.psm1"'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLineends_with
  • .bat corpus 4 (sigma 4)
  • .bat" corpus 4 (sigma 4)
  • .bat' corpus 4 (sigma 4)
  • .dat corpus 6 (sigma 6)
  • .dat" corpus 4 (sigma 4)
  • .dat' corpus 4 (sigma 4)
  • .dll corpus 7 (sigma 7)
  • .dll" corpus 5 (sigma 5)
  • .dll' corpus 5 (sigma 5)
  • .exe corpus 6 (sigma 6)
  • .exe" corpus 4 (sigma 4)
  • .exe' corpus 4 (sigma 4)
  • .hta corpus 6 (sigma 6)
  • .hta" corpus 4 (sigma 4)
  • .hta' corpus 4 (sigma 4)
  • .msi corpus 5 (sigma 4, elastic 1)
  • .msi" corpus 4 (sigma 4)
  • .msi' corpus 4 (sigma 4)
  • .ps1 corpus 6 (sigma 6)
  • .ps1" corpus 4 (sigma 4)
  • .ps1' corpus 4 (sigma 4)
  • .psm1 corpus 5 (sigma 5)
  • .psm1" corpus 4 (sigma 4)
  • .psm1' corpus 4 (sigma 4)
  • .vbe corpus 7 (sigma 7)
  • .vbe" corpus 4 (sigma 4)
  • .vbe' corpus 4 (sigma 4)
  • .vbs corpus 7 (sigma 7)
  • .vbs" corpus 4 (sigma 4)
  • .vbs' corpus 4 (sigma 4)
field:"CommandLine" kind:ends_with
CommandLinematch
  • -O corpus 7 (sigma 6, elastic 1)
  • --output corpus 4 (sigma 4)
  • --remote-name corpus 4 (sigma 4)
  • .githubusercontent.com corpus 4 (sigma 4)
  • 0x0.st corpus 6 (sigma 6)
  • anonfiles.com corpus 5 (sigma 5)
  • bashupload.com corpus 6 (sigma 6)
  • cdn.discordapp.com corpus 5 (sigma 5)
  • chunk.io corpus 6 (sigma 6)
  • ddns.net corpus 5 (sigma 5)
  • dl.dropboxusercontent.com corpus 5 (sigma 5)
  • ghostbin.co corpus 5 (sigma 5)
  • github.com corpus 4 (sigma 4)
  • glitch.me corpus 5 (sigma 5)
  • gofile.io corpus 6 (sigma 5, elastic 1)
  • hastebin.com corpus 5 (sigma 5)
  • http corpus 45 (sigma 34, elastic 10, splunk 1)
  • mediafire.com corpus 5 (sigma 5)
  • mega.nz corpus 5 (sigma 5)
  • onrender.com corpus 5 (sigma 5)
  • pages.dev corpus 5 (sigma 5)
  • paste.ee corpus 6 (sigma 5, elastic 1)
  • pastebin.com corpus 5 (sigma 5)
  • pastebin.pl corpus 5 (sigma 5)
  • pastetext.net corpus 5 (sigma 5)
  • pixeldrain.com corpus 4 (sigma 3, elastic 1)
  • privatlab.com corpus 5 (sigma 5)
  • privatlab.net corpus 5 (sigma 5)
  • send.exploit.in corpus 5 (sigma 5)
  • sendspace.com corpus 5 (sigma 5)
  • storage.googleapis.com corpus 5 (sigma 5)
  • storjshare.io corpus 5 (sigma 5)
  • supabase.co corpus 5 (sigma 5)
  • temp.sh corpus 6 (sigma 6)
  • transfer.sh corpus 7 (sigma 6, elastic 1)
  • trycloudflare.com corpus 5 (sigma 5)
  • ufile.io corpus 7 (sigma 6, elastic 1)
  • w3spaces.com corpus 5 (sigma 5)
  • workers.dev corpus 5 (sigma 5)
  • x0.at corpus 6 (sigma 6)
field:"CommandLine" kind:match
Imageends_with
  • \curl.exe corpus 31 (sigma 31)
field:"Image" kind:ends_with value:"\curl.exe"
OriginalFileNameeq
  • curl.exe corpus 22 (sigma 13, elastic 6, splunk 3)
field:"OriginalFileName" kind:eq value:"curl.exe"

Suspicious modification of a computer account SPN

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

Detects scenarios where an attacker update the Service Principal Name (SPN) of a computer account in order to perform "Kerberos redirection" and escalate privileges.

Known False Positives

  • Rare administrator modifications on computer objects

MITRE ATT&CK Coverage

TacticTechniques
Persistence

Telemetry Coverage

Rule Body

title: Suspicious modification of a computer account SPN
description: Detects scenarios where an attacker update the Service Principal Name (SPN) of a computer account in order to perform "Kerberos redirection" and escalate privileges.
references:
- https://dirkjanm.io/krbrelayx-unconstrained-delegation-abuse-toolkit/
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1098.xxx-Account%20manipulation
tags:
- attack.persistence
- attack.t1098
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 4742
  filter:
    SubjectUserName|endswith: '$'
    ServicePrincipalNames: '-'
    ServicePrincipalNames|contains: 'GC/' # covered by dedicated DCshadow rule
  condition: selection and not filter
falsepositives:
- Rare administrator modifications on computer objects
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
  EventID: 4742

Stage 2: not filter

filter:
  SubjectUserName|endswith: '$'
  ServicePrincipalNames: '-'
  ServicePrincipalNames|contains: 'GC/'

Exclusions

The rule actively suppresses these predicates.

Sysmon Driver Unloaded Via Fltmc.EXE

#
Status
test
Severity
high
Author
Kirill Kiryanov, oscd.community
Source
github.com/SigmaHQ/sigma

Detects possible Sysmon filter driver unloaded via fltmc.exe

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Sysmon Driver Unloaded Via Fltmc.EXE
id: 4d7cda18-1b12-4e52-b45c-d28653210df8
related:
    - id: 4931188c-178e-4ee7-a348-39e8a7a56821 # Generic
      type: similar
status: test
description: Detects possible Sysmon filter driver unloaded via fltmc.exe
references:
    - https://www.darkoperator.com/blog/2018/10/5/operating-offensively-against-sysmon
author: Kirill Kiryanov, oscd.community
date: 2019-10-23
modified: 2023-02-13
tags:
    - attack.stealth
    - attack.defense-impairment
    - attack.t1070
    - attack.t1685
    - attack.t1685.001
logsource:
    product: windows
    category: process_creation
detection:
    selection_img:
        - Image|endswith: '\fltMC.exe'
        - OriginalFileName: 'fltMC.exe'
    selection_cli:
        CommandLine|contains|all:
            - 'unload'
            - 'sysmon'
    condition: all of selection_*
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

selection_img:
    - Image|endswith: '\fltMC.exe'
    - OriginalFileName: 'fltMC.exe'

Stage 2: selection_cli

selection_cli:
    CommandLine|contains|all:
        - 'unload'
        - 'sysmon'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • sysmon corpus 4 (sigma 3, elastic 1)
  • unload corpus 5 (sigma 4, splunk 1)
field:"CommandLine" kind:match
Imageends_with
  • \fltMC.exe corpus 3 (sigma 3)
field:"Image" kind:ends_with value:"\fltMC.exe"
OriginalFileNameeq
  • fltMC.exe corpus 2 (sigma 2)
field:"OriginalFileName" kind:eq value:"fltMC.exe"

Windows Defender Real-Time Protection Failure/Restart

#
Status
stable
Severity
medium
Author
Nasreddine Bencherchali (Nextron Systems), Christopher Peacock '@securepeacock' (Update)
Source
github.com/SigmaHQ/sigma

Detects issues with Windows Defender Real-Time Protection features

Known False Positives

  • Some crashes can occur sometimes and the event doesn't provide enough information to tune out these cases. Manual exception is required

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Telemetry Coverage

Rule Body

title: Windows Defender Real-Time Protection Failure/Restart
id: dd80db93-6ec2-4f4c-a017-ad40da6ffe81
status: stable
description: Detects issues with Windows Defender Real-Time Protection features
references:
    - Internal Research
    - https://www.microsoft.com/en-us/security/blog/2023/04/11/guidance-for-investigating-attacks-using-cve-2022-21894-the-blacklotus-campaign/
    - https://gist.github.com/nasbench/33732d6705cbdc712fae356f07666346 # Contains the list of Feature Names (use for filtering purposes)
author: Nasreddine Bencherchali (Nextron Systems), Christopher Peacock '@securepeacock' (Update)
date: 2023-03-28
modified: 2023-05-05
tags:
    - attack.defense-impairment
    - attack.t1685
logsource:
    product: windows
    service: windefend
detection:
    selection:
        EventID:
            - 3002 # Real-Time Protection feature has encountered an error and failed
            - 3007 # Real-time Protection feature has restarted
    filter_optional_network_inspection:
        Feature_Name: '%%886' # Network Inspection System
        Reason:
            - '%%892' # The system is missing updates that are required for running Network Inspection System.  Install the required updates and restart the device.
            - '%%858' # Antimalware security intelligence has stopped functioning for an unknown reason. In some instances, restarting the service may resolve the problem.
    condition: selection and not 1 of filter_optional_*
falsepositives:
    - Some crashes can occur sometimes and the event doesn't provide enough information to tune out these cases. Manual exception is required
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_optional_*

Stage 1: selection

selection:
    EventID:
        - 3002
        - 3007

Stage 2: not filter_optional_network_inspection

filter_optional_network_inspection:
    Feature_Name: '%%886'
    Reason:
        - '%%892'
        - '%%858'

Exclusions

The rule actively suppresses these predicates.

Back to all Sigma rules