Detection rules › Sigma

Sigma rules: 1p

RuleSeverity
Account Disabled or Blocked for Sign in Attemptsmedium
Activity from Infrequent Countrymedium
Authencesn Crypto Module Load via Modprobe - Copy-Fail Indicatorhigh
Bitbucket Audit Log Configuration Updatedmedium
BITS Client BitsProxy DLL Loaded By Uncommon Processlow
Bulk Deletion Changes To Privileged Account Permissionshigh
CA Policy Removed by Non Approved Actormedium
Cisco ASA FTD Exploit CVE-2020-3452high
Cmd.EXE Missing Space Characters Execution Anomalyhigh
CobaltStrike Named Pipe Patternshigh
Console CodePage Lookup Via CHCPmedium
Control Panel Itemshigh
Copying Sensitive Files with Credential Datahigh
DLL Load By System Process From Suspicious Locationsmedium
HackTool - F-Secure C3 Load by Rundll32critical
Impacket DCOMexec process abuse via MMChigh
Linux HackTool Executionhigh
LSASS credential dump with LSASSY (process)high
macOS Encryption Tool Usagemedium
Massive service installation - Tchopperhigh
New Network ACL Entry Addedlow
OpenCanary - HTTP POST Login Attempthigh
OpenSSH native server feature installationmedium
Outbound Network Connection Initiated By Cmstp.EXEhigh
Potential LethalHTA Technique Executionhigh
Potential Peach Sandstorm APT C2 Communication Activitymedium
Potentially Suspicious ASP.NET Compilation Via AspNetCompilerhigh
PST Export Alert Using New-ComplianceSearchActionmedium
Rejetto HTTP File Server RCEhigh
Rundll32 Internet Connectionmedium
Security Support Provider (SSP) Added to LSA Configurationhigh
Suspicious Base64 Encoded User-Agentmedium
System Control Panel Item Loaded From Uncommon Locationhigh
System crash behavior manipulation - WMImplant (registry)high
System time changed (PowerShell)medium
Uncommon System Information Discovery Via Wmic.EXEmedium
User Added To Group With CA Policy Modification Accessmedium
User enumeration and creation related to Manic Menagerie 2.0 (via cmdline)medium
Wab/Wabmig Unusual Parent Or Child Processeshigh
Windows native backup size re-configurationhigh

Account Disabled or Blocked for Sign in Attempts

#
Status
test
Severity
medium
Author
Yochana Henderson, '@Yochana-H'
Source
github.com/SigmaHQ/sigma

Detects when an account is disabled or blocked for sign in but tried to log in

Known False Positives

  • Account disabled or blocked in error
  • Automation account has been blocked or disabled

MITRE ATT&CK Coverage

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Account Disabled or Blocked for Sign in Attempts
id: 4afac85c-224a-4dd7-b1af-8da40e1c60bd
status: test
description: Detects when an account is disabled or blocked for sign in but tried to log in
references:
    - https://learn.microsoft.com/en-gb/entra/architecture/security-operations-privileged-accounts
author: Yochana Henderson, '@Yochana-H'
date: 2022-06-17
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.initial-access
    - attack.stealth
    - attack.t1078.004
logsource:
    product: azure
    service: signinlogs
detection:
    selection:
        ResultType: 50057
        ResultDescription: Failure
    condition: selection
falsepositives:
    - Account disabled or blocked in error
    - Automation account has been blocked or disabled
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ResultType: 50057
    ResultDescription: Failure

Indicators

These rows show field, operator, and value matches.

Activity from Infrequent Country

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

Detects when a Microsoft Cloud App Security reported when an activity occurs from a location that wasn't recently or never visited by any user in the organization.

MITRE ATT&CK Coverage

TacticTechniques
Command & Control

Telemetry Coverage

Rule Body

title: Activity from Infrequent Country
id: 0f2468a2-5055-4212-a368-7321198ee706
status: test
description: Detects when a Microsoft Cloud App Security reported when an activity occurs from a location that wasn't recently or never visited by any user in the organization.
references:
    - https://learn.microsoft.com/en-us/defender-cloud-apps/anomaly-detection-policy
    - https://learn.microsoft.com/en-us/defender-cloud-apps/policy-template-reference
author: Austin Songer @austinsonger
date: 2021-08-23
modified: 2022-10-09
tags:
    - attack.command-and-control
    - attack.t1573
logsource:
    service: threat_management
    product: m365
detection:
    selection:
        eventSource: SecurityComplianceCenter
        eventName: 'Activity from infrequent country'
        status: success
    condition: selection
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: SecurityComplianceCenter
    eventName: 'Activity from infrequent country'
    status: success

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
eventNameeq
  • Activity from infrequent country
field:"aws::eventName" kind:eq value:"Activity from infrequent country"
eventSourceeq
  • SecurityComplianceCenter corpus 14 (sigma 14)
field:"aws::eventSource" kind:eq value:"SecurityComplianceCenter"
statuseq
  • success corpus 21 (sigma 15, splunk 6)
field:"status" kind:eq value:"success"

Authencesn Crypto Module Load via Modprobe - Copy-Fail Indicator

#
Status
experimental
Severity
high
Author
Gene Kazimiarovich
Source
github.com/SigmaHQ/sigma

Detects kernel auto-loading of the authencesn crypto module via modprobe This occurs when user-space code creates an AF_ALG socket and binds the authencesn AEAD cipher (e.g., authencesn(hmac(sha256),cbc(aes))). The kernel invokes modprobe to load the crypto module. This is a key indicator of CVE-2026-31431 (Copy Fail) exploitation, where the authencesn cipher is used to trigger a buffer overflow in the AF_ALG AEAD splice path, corrupting the page cache of SUID binaries for local privilege escalation. On Linux systems, modprobe is typically a symlink to kmod, so the process image will be /usr/bin/kmod (or /bin/kmod) with 'modprobe' appearing in the command line.

Known False Positives

  • Legitimate manual loading of the authencesn module by administrators for kernel crypto benchmarking or IPsec configuration (near-zero in production)

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: Authencesn Crypto Module Load via Modprobe - Copy-Fail Indicator
id: 474b415a-d917-4f3b-8c62-9e1a0d5f7b48
status: experimental
description: |
    Detects kernel auto-loading of the authencesn crypto module via modprobe
    This occurs when user-space code creates an AF_ALG socket and binds the authencesn AEAD cipher
    (e.g., authencesn(hmac(sha256),cbc(aes))). The kernel invokes modprobe to load the
    crypto module. This is a key indicator of CVE-2026-31431 (Copy Fail) exploitation,
    where the authencesn cipher is used to trigger a buffer overflow in the AF_ALG AEAD splice path,
    corrupting the page cache of SUID binaries for local privilege escalation.

    On Linux systems, modprobe is typically a symlink to kmod, so the process image will be /usr/bin/kmod (or /bin/kmod)
    with 'modprobe' appearing in the command line.
references:
    - https://www.linkedin.com/posts/stamatis-chatzimangou_copyfail-kql-activity-7455582422215114752-S4RW/
    - https://www.splunk.com/en_us/blog/security/detecting-copy-fail-cve-2026-31431-phenomenal-power-itty-bitty-script.html
    - https://nvd.nist.gov/vuln/detail/CVE-2026-31431
    - https://man7.org/linux/man-pages/man8/modprobe.8.html
    - https://www.kernel.org/doc/html/latest/crypto/userspace-if.html
author: Gene Kazimiarovich
date: 2026-05-09
tags:
    - attack.privilege-escalation
    - attack.t1068
    - attack.persistence
    - attack.t1547.006
    - detection.emerging-threats
    - cve.2026-31431
logsource:
    category: process_creation
    product: linux
detection:
    selection_kmod:
        Image|endswith: '/kmod'
        CommandLine|contains|all:
            - 'modprobe'
            - 'crypto-authencesn('
    selection_modprobe:
        Image|endswith: '/modprobe'
        CommandLine|contains: 'crypto-authencesn('
    condition: 1 of selection_*
falsepositives:
    - Legitimate manual loading of the authencesn module by administrators for kernel crypto benchmarking or IPsec configuration (near-zero in production)
level: high

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_kmod

selection_kmod:
    Image|endswith: '/kmod'
    CommandLine|contains|all:
        - 'modprobe'
        - 'crypto-authencesn('

Stage 2: selection_modprobe

selection_modprobe:
    Image|endswith: '/modprobe'
    CommandLine|contains: 'crypto-authencesn('

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • crypto-authencesn(
  • modprobe corpus 2 (sigma 1, splunk 1)
field:"CommandLine" kind:match
Imageends_with
  • /kmod
  • /modprobe
field:"Image" kind:ends_with

Bitbucket Audit Log Configuration Updated

#
Status
test
Severity
medium
Author
Muhammad Faisal (@faisalusuf)
Source
github.com/SigmaHQ/sigma

Detects changes to the bitbucket audit log configuration.

Known False Positives

  • Legitimate user activity.

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Rule Body

title: Bitbucket Audit Log Configuration Updated
id: 6aa12161-235a-4dfb-9c74-fe08df8d8da1
status: test
description: Detects changes to the bitbucket audit log configuration.
references:
    - https://confluence.atlassian.com/bitbucketserver/view-and-configure-the-audit-log-776640417.html
author: Muhammad Faisal (@faisalusuf)
date: 2024-02-25
tags:
    - attack.defense-impairment
    - attack.t1685
logsource:
    product: bitbucket
    service: audit
    definition: 'Requirements: "Basic" log level is required to receive these audit events.'
detection:
    selection:
        auditType.category: 'Auditing'
        auditType.action: 'Audit log configuration updated'
    condition: selection
falsepositives:
    - Legitimate user activity.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    auditType.category: 'Auditing'
    auditType.action: 'Audit log configuration updated'

Indicators

These rows show field, operator, and value matches.

BITS Client BitsProxy DLL Loaded By Uncommon Process

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

Detects an uncommon process loading the "BitsProxy.dll". This DLL is used when the BITS COM instance or API is used. This detection can be used to hunt for uncommon processes loading this DLL in your environment. Which may indicate potential suspicious activity occurring.

Known False Positives

  • Allowed binaries in the environment that do BITS Jobs

MITRE ATT&CK Coverage

TacticTechniques
Execution
Persistence
Stealth

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 7: Image loaded

Rule Body

title: BITS Client BitsProxy DLL Loaded By Uncommon Process
id: e700ff14-1bff-4d1d-9438-738dff5f0466
status: experimental
description: |
    Detects an uncommon process loading the "BitsProxy.dll". This DLL is used when the BITS COM instance or API is used.
    This detection can be used to hunt for uncommon processes loading this DLL in your environment. Which may indicate potential suspicious activity occurring.
references:
    - https://unicornofhunt.com/2025/05/22/When-Unicorns-Go-Quiet-BITS-Jobs-and-the-Art-of-Stealthy-Transfers/
author: UnicornOfHunt
date: 2025-06-04
tags:
    - attack.persistence
    - attack.execution
    - attack.stealth
    - attack.t1197
    - detection.threat-hunting
logsource:
    category: image_load
    product: windows
detection:
    selection:
        ImageLoaded|endswith: '\BitsProxy.dll'
    filter_main_system:
        Image:
            - 'C:\Windows\System32\aitstatic.exe'
            - 'C:\Windows\System32\bitsadmin.exe'
            - 'C:\Windows\System32\desktopimgdownldr.exe'
            - 'C:\Windows\System32\DeviceEnroller.exe'
            - 'C:\Windows\System32\MDMAppInstaller.exe'
            - 'C:\Windows\System32\ofdeploy.exe'
            - 'C:\Windows\System32\RecoveryDrive.exe'
            - 'C:\Windows\System32\Speech_OneCore\common\SpeechModelDownload.exe'
            # - 'C:\Windows\System32\svchost.exe' # BITS Service - If you collect CommandLine info. Apply a filter for the specific BITS service.
            - 'C:\Windows\SysWOW64\bitsadmin.exe'
            - 'C:\Windows\SysWOW64\OneDriveSetup.exe'
            - 'C:\Windows\SysWOW64\Speech_OneCore\Common\SpeechModelDownload.exe'
    filter_optional_chrome:
        Image: 'C:\Program Files\Google\Chrome\Application\chrome.exe'
    condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Allowed binaries in the environment that do BITS Jobs
level: low

Stages and Predicates

Stage 0: condition

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

Stage 1: selection

selection:
    ImageLoaded|endswith: '\BitsProxy.dll'

Stage 2: not filter_main_system

filter_main_system:
    Image:
        - 'C:\Windows\System32\aitstatic.exe'
        - 'C:\Windows\System32\bitsadmin.exe'
        - 'C:\Windows\System32\desktopimgdownldr.exe'
        - 'C:\Windows\System32\DeviceEnroller.exe'
        - 'C:\Windows\System32\MDMAppInstaller.exe'
        - 'C:\Windows\System32\ofdeploy.exe'
        - 'C:\Windows\System32\RecoveryDrive.exe'
        - 'C:\Windows\System32\Speech_OneCore\common\SpeechModelDownload.exe'
        - 'C:\Windows\SysWOW64\bitsadmin.exe'
        - 'C:\Windows\SysWOW64\OneDriveSetup.exe'
        - 'C:\Windows\SysWOW64\Speech_OneCore\Common\SpeechModelDownload.exe'

Stage 3: not filter_optional_chrome

filter_optional_chrome:
    Image: 'C:\Program Files\Google\Chrome\Application\chrome.exe'

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ImageeqC:\Windows\SysWOW64\OneDriveSetup.exeexcludes:Image field:"Image" value:"C:\Windows\SysWOW64\OneDriveSetup.exe"
ImageeqC:\Windows\SysWOW64\Speech_OneCore\Common\SpeechModelDownload.exeexcludes:Image field:"Image" value:"C:\Windows\SysWOW64\Speech_OneCore\Common\SpeechModelDownload.exe"
ImageeqC:\Windows\SysWOW64\bitsadmin.exeexcludes:Image field:"Image" value:"C:\Windows\SysWOW64\bitsadmin.exe"
ImageeqC:\Windows\System32\DeviceEnroller.exeexcludes:Image field:"Image" value:"C:\Windows\System32\DeviceEnroller.exe"
ImageeqC:\Windows\System32\MDMAppInstaller.exeexcludes:Image field:"Image" value:"C:\Windows\System32\MDMAppInstaller.exe"
ImageeqC:\Windows\System32\RecoveryDrive.exeexcludes:Image field:"Image" value:"C:\Windows\System32\RecoveryDrive.exe"
ImageeqC:\Windows\System32\Speech_OneCore\common\SpeechModelDownload.exeexcludes:Image field:"Image" value:"C:\Windows\System32\Speech_OneCore\common\SpeechModelDownload.exe"
ImageeqC:\Windows\System32\aitstatic.exeexcludes:Image field:"Image" value:"C:\Windows\System32\aitstatic.exe"
ImageeqC:\Windows\System32\bitsadmin.exeexcludes:Image field:"Image" value:"C:\Windows\System32\bitsadmin.exe"
ImageeqC:\Windows\System32\desktopimgdownldr.exeexcludes:Image field:"Image" value:"C:\Windows\System32\desktopimgdownldr.exe"
ImageeqC:\Windows\System32\ofdeploy.exeexcludes:Image field:"Image" value:"C:\Windows\System32\ofdeploy.exe"
ImageeqC:\Program Files\Google\Chrome\Application\chrome.exeexcludes:Image field:"Image" value:"C:\Program Files\Google\Chrome\Application\chrome.exe"

Bulk Deletion Changes To Privileged Account Permissions

#
Status
test
Severity
high
Author
Mark Morowczynski '@markmorow', Yochana Henderson, '@Yochana-H'
Source
github.com/SigmaHQ/sigma

Detects when a user is removed from a privileged role. Bulk changes should be investigated.

Known False Positives

  • Legtimate administrator actions of removing members from a role

MITRE ATT&CK Coverage

TacticTechniques
Persistence
Privilege Escalation

Telemetry Coverage

Rule Body

title: Bulk Deletion Changes To Privileged Account Permissions
id: 102e11e3-2db5-4c9e-bc26-357d42585d21
status: test
description: Detects when a user is removed from a privileged role. Bulk changes should be investigated.
references:
    - https://learn.microsoft.com/en-us/entra/architecture/security-operations-privileged-identity-management#azure-ad-roles-assignment
author: Mark Morowczynski '@markmorow', Yochana Henderson, '@Yochana-H'
date: 2022-08-05
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.t1098
logsource:
    product: azure
    service: auditlogs
detection:
    selection:
        properties.message:
            - Remove eligible member (permanent)
            - Remove eligible member (eligible)
    condition: selection
falsepositives:
    - Legtimate administrator actions of removing members from a role
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    properties.message:
        - Remove eligible member (permanent)
        - Remove eligible member (eligible)

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
properties.messageeq
  • Remove eligible member (eligible)
  • Remove eligible member (permanent)
field:"properties.message" kind:eq

CA Policy Removed by Non Approved Actor

#
Status
test
Severity
medium
Author
Corissa Koopmans, '@corissalea'
Source
github.com/SigmaHQ/sigma

Monitor and alert on conditional access changes where non approved actor removed CA Policy.

Known False Positives

  • Misconfigured role permissions
  • Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
AzureDelete conditional access policy

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: CA Policy Removed by Non Approved Actor
id: 26e7c5e2-6545-481e-b7e6-050143459635
status: test
description: Monitor and alert on conditional access changes where non approved actor removed CA Policy.
references:
    - https://learn.microsoft.com/en-us/entra/architecture/security-operations-infrastructure#conditional-access
author: Corissa Koopmans, '@corissalea'
date: 2022-07-19
tags:
    - attack.privilege-escalation
    - attack.credential-access
    - attack.persistence
    - attack.defense-impairment
    - attack.t1548
    - attack.t1556
logsource:
    product: azure
    service: auditlogs
detection:
    selection:
        properties.message: Delete conditional access policy
    condition: selection
falsepositives:
    - Misconfigured role permissions
    - Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    properties.message: Delete conditional access policy

Indicators

These rows show field, operator, and value matches.

Cisco ASA FTD Exploit CVE-2020-3452

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

Detects exploitation attempts on Cisco ASA FTD systems exploiting CVE-2020-3452 with a status code of 200 (sccessful exploitation)

MITRE ATT&CK Coverage

TacticTechniques
Initial Access

Rule Body

title: Cisco ASA FTD Exploit CVE-2020-3452
id: aba47adc-4847-4970-95c1-61dce62a8b29
status: test
description: Detects exploitation attempts on Cisco ASA FTD systems exploiting CVE-2020-3452 with a status code of 200 (sccessful exploitation)
references:
    - https://twitter.com/aboul3la/status/1286012324722155525
    - https://github.com/darklotuskdb/CISCO-CVE-2020-3452-Scanner-Exploiter
author: Florian Roth (Nextron Systems)
date: 2021-01-07
modified: 2023-01-02
tags:
    - attack.t1190
    - attack.initial-access
    - cve.2020-3452
    - detection.emerging-threats
logsource:
    category: webserver
detection:
    selection_endpoint:
        cs-uri-query|contains:
            - '+CSCOT+/translation-table'
            - '+CSCOT+/oem-customization'
    selection_path_select:
        cs-uri-query|contains:
            - '&textdomain=/'
            - '&textdomain=%'
            - '&name=/'
            - '&name=%'
    select_status_code:
        sc-status: 200
    condition: selection_endpoint and selection_path_select and select_status_code
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection_endpoint and selection_path_select and select_status_code

Stage 1: selection_endpoint

selection_endpoint:
    cs-uri-query|contains:
        - '+CSCOT+/translation-table'
        - '+CSCOT+/oem-customization'

Stage 2: selection_path_select

selection_path_select:
    cs-uri-query|contains:
        - '&textdomain=/'
        - '&textdomain=%'
        - '&name=/'
        - '&name=%'

Stage 3: select_status_code

select_status_code:
    sc-status: 200

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
cs-uri-querymatch
  • &name=%
  • &name=/
  • &textdomain=%
  • &textdomain=/
  • +CSCOT+/oem-customization
  • +CSCOT+/translation-table
field:"cs-uri-query" kind:match
sc-statuseq
  • 200
field:"sc-status" kind:eq value:"200"

Cmd.EXE Missing Space Characters Execution Anomaly

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

Detects Windows command lines that miss a space before or after the /c flag when running a command using the cmd.exe. This could be a sign of obfuscation of a fat finger problem (typo by the developer).

Known False Positives

  • Legitimate use of cmd.exe with no arguments e.g. via system("") in C to enable ANSI escape codes

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Cmd.EXE Missing Space Characters Execution Anomaly
id: a16980c2-0c56-4de0-9a79-17971979efdd
status: test
description: |
    Detects Windows command lines that miss a space before or after the /c flag when running a command using the cmd.exe.
    This could be a sign of obfuscation of a fat finger problem (typo by the developer).
references:
    - https://twitter.com/cyb3rops/status/1562072617552678912
    - https://ss64.com/nt/cmd.html
author: Florian Roth (Nextron Systems)
date: 2022-08-23
modified: 2026-05-13
tags:
    - attack.execution
    - attack.t1059.001
logsource:
    category: process_creation
    product: windows
detection:
    selection1:  # missing space before the /c
        CommandLine|contains:
            - 'cmd.exe/c'
            - '\cmd/c'  # just cmd/c would be prone to false positives
            - '"cmd/c'
            - 'cmd.exe/k'
            - '\cmd/k'  # just cmd/k would be prone to false positives
            - '"cmd/k'
            - 'cmd.exe/r'
            - '\cmd/r'  # just cmd/r would be prone to false positives
            - '"cmd/r'
    selection2: # special cases verified via Virustotal Enterprise search
        CommandLine|contains:
            - '/cwhoami'
            - '/cpowershell'
            - '/cschtasks'
            - '/cbitsadmin'
            - '/ccertutil'
            - '/kwhoami'
            - '/kpowershell'
            - '/kschtasks'
            - '/kbitsadmin'
            - '/kcertutil'
    selection3:  # missing space after the /c
        CommandLine|contains:
            - 'cmd.exe /c'
            - 'cmd /c'
            - 'cmd.exe /k'
            - 'cmd /k'
            - 'cmd.exe /r'
            - 'cmd /r'
    filter_generic:
        CommandLine|contains:
            - 'cmd.exe /c '
            - 'cmd /c '
            - 'cmd.exe /k '
            - 'cmd /k '
            - 'cmd.exe /r '
            - 'cmd /r '
    filter_fp:
        - CommandLine|contains: 'AppData\Local\Programs\Microsoft VS Code\resources\app\node_modules'
        - CommandLine|endswith: 'cmd.exe/c .'
        - CommandLine: 'cmd.exe /c'
        - CommandLine: 'cmd /c'
    condition: 1 of selection* and not 1 of filter_*
falsepositives:
    - Legitimate use of cmd.exe with no arguments e.g. via system("") in C to enable ANSI escape codes
level: high

Stages and Predicates

Stage 0: condition

1 of selection* and not 1 of filter_*

Stage 1: selection1

selection1:
    CommandLine|contains:
        - 'cmd.exe/c'
        - '\cmd/c'
        - '"cmd/c'
        - 'cmd.exe/k'
        - '\cmd/k'
        - '"cmd/k'
        - 'cmd.exe/r'
        - '\cmd/r'
        - '"cmd/r'

Stage 2: selection2

selection2:
    CommandLine|contains:
        - '/cwhoami'
        - '/cpowershell'
        - '/cschtasks'
        - '/cbitsadmin'
        - '/ccertutil'
        - '/kwhoami'
        - '/kpowershell'
        - '/kschtasks'
        - '/kbitsadmin'
        - '/kcertutil'

Stage 3: selection3

selection3:
    CommandLine|contains:
        - 'cmd.exe /c'
        - 'cmd /c'
        - 'cmd.exe /k'
        - 'cmd /k'
        - 'cmd.exe /r'
        - 'cmd /r'

Stage 4: not filter_*

filter_generic:
    CommandLine|contains:
        - 'cmd.exe /c '
        - 'cmd /c '
        - 'cmd.exe /k '
        - 'cmd /k '
        - 'cmd.exe /r '
        - 'cmd /r '
filter_fp:
    - CommandLine|contains: 'AppData\Local\Programs\Microsoft VS Code\resources\app\node_modules'
    - CommandLine|endswith: 'cmd.exe/c .'
    - CommandLine: 'cmd.exe /c'
    - CommandLine: 'cmd /c'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • "cmd/c
  • "cmd/k
  • "cmd/r
  • /cbitsadmin
  • /ccertutil
  • /cpowershell
  • /cschtasks
  • /cwhoami
  • /kbitsadmin
  • /kcertutil
  • /kpowershell
  • /kschtasks
  • /kwhoami
  • \cmd/c
  • \cmd/k
  • \cmd/r
  • cmd /c corpus 5 (sigma 5)
  • cmd /k corpus 4 (sigma 4)
  • cmd /r corpus 3 (sigma 3)
  • cmd.exe /c corpus 3 (sigma 3)
  • cmd.exe /k corpus 3 (sigma 3)
  • cmd.exe /r corpus 3 (sigma 3)
  • cmd.exe/c
  • cmd.exe/k
  • cmd.exe/r
field:"CommandLine" kind:match

Exclusions

The rule actively suppresses these predicates.

CobaltStrike Named Pipe Patterns

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

Detects the creation of a named pipe with a pattern found in CobaltStrike malleable C2 profiles

Known False Positives

  • Chrome instances using the exact same pipe name "mojo.xxx"
  • Websense Endpoint using the pipe name "DserNamePipe(R|W)\d{1,5}"
  • Some applications may just coincidentally use the pipe names which contain the same prefix as the ones used by CobaltStrike, e.g. "f4c3"

MITRE ATT&CK Coverage

TacticTechniques
Privilege Escalation
Stealth

Telemetry Coverage

Rule Body

title: CobaltStrike Named Pipe Patterns
id: 85adeb13-4fc9-4e68-8a4a-c7cb2c336eb7
related:
    - id: 0e7163d4-9e19-4fa7-9be6-000c61aad77a # Regex
      type: similar
    - id: d5601f8c-b26f-4ab0-9035-69e11a8d4ad2 # Generic
      type: similar
status: test
description: Detects the creation of a named pipe with a pattern found in CobaltStrike malleable C2 profiles
references:
    - https://svch0st.medium.com/guide-to-named-pipes-and-hunting-for-cobalt-strike-pipes-dc46b2c5f575
    - https://gist.github.com/MHaggis/6c600e524045a6d49c35291a21e10752
author: Florian Roth (Nextron Systems), Christian Burkard (Nextron Systems)
date: 2021-07-30
modified: 2024-01-26
tags:
    - attack.privilege-escalation
    - attack.stealth
    - attack.t1055
    - stp.1k
logsource:
    product: windows
    category: pipe_created
    definition: 'Note that you have to configure logging for Named Pipe Events in Sysmon config (Event ID 17 and Event ID 18). The basic configuration is in popular sysmon configuration (https://github.com/SwiftOnSecurity/sysmon-config), but it is worth verifying. You can also use other repo, e.g. https://github.com/Neo23x0/sysmon-config, https://github.com/olafhartong/sysmon-modular You can also use other repo, e.g. https://github.com/Neo23x0/sysmon-config, https://github.com/olafhartong/sysmon-modular. How to test detection? You can always use Cobalt Strike, but also you can check powershell script from this site https://svch0st.medium.com/guide-to-named-pipes-and-hunting-for-cobalt-strike-pipes-dc46b2c5f575'
detection:
    selection_malleable_profile_generic:
        - PipeName|startswith:
              - '\DserNamePipe'
              - '\f4c3'
              - '\f53f'
              - '\fullduplex_'
              - '\mojo.5688.8052.183894939787088877'
              - '\mojo.5688.8052.35780273329370473'
              - '\MsFteWds'
              - '\msrpc_'
              - '\mypipe-f'
              - '\mypipe-h'
              - '\ntsvcs'
              - '\PGMessagePipe'
              - '\rpc_'
              - '\scerpc'
              - '\SearchTextHarvester'
              - '\spoolss'
              - '\win_svc'
              - '\win\msrpc_'
              - '\windows.update.manager'
              - '\wkssvc'
        - PipeName:
              - '\demoagent_11'
              - '\demoagent_22'
    selection_malleable_profile_catalog_change_listener:
        PipeName|startswith: '\Winsock2\CatalogChangeListener-'
        PipeName|endswith: '-0,'
    filter_main_generic:
        PipeName:
            - '\wkssvc'
            - '\spoolss'
            - '\scerpc'
            - '\ntsvcs'
            - '\SearchTextHarvester'
            - '\PGMessagePipe'
            - '\MsFteWds'
    filter_optional_websense:
        Image|contains:
            - ':\Program Files\Websense\'
            - ':\Program Files (x86)\Websense\'
        PipeName|startswith:
            - '\DserNamePipeR'
            - '\DserNamePipeW'
    condition: 1 of selection_malleable_profile_* and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Chrome instances using the exact same pipe name "mojo.xxx"
    - Websense Endpoint using the pipe name "DserNamePipe(R|W)\d{1,5}"
    - Some applications may just coincidentally use the pipe names which contain the same prefix as the ones used by CobaltStrike, e.g. "f4c3"
level: high

Stages and Predicates

Stage 0: condition

1 of selection_malleable_profile_* and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection_malleable_profile_generic

selection_malleable_profile_generic:
    - PipeName|startswith:
          - '\DserNamePipe'
          - '\f4c3'
          - '\f53f'
          - '\fullduplex_'
          - '\mojo.5688.8052.183894939787088877'
          - '\mojo.5688.8052.35780273329370473'
          - '\MsFteWds'
          - '\msrpc_'
          - '\mypipe-f'
          - '\mypipe-h'
          - '\ntsvcs'
          - '\PGMessagePipe'
          - '\rpc_'
          - '\scerpc'
          - '\SearchTextHarvester'
          - '\spoolss'
          - '\win_svc'
          - '\win\msrpc_'
          - '\windows.update.manager'
          - '\wkssvc'
    - PipeName:
          - '\demoagent_11'
          - '\demoagent_22'

Stage 2: selection_malleable_profile_catalog_change_listener

selection_malleable_profile_catalog_change_listener:
    PipeName|startswith: '\Winsock2\CatalogChangeListener-'
    PipeName|endswith: '-0,'

Stage 3: not filter_main_generic

filter_main_generic:
    PipeName:
        - '\wkssvc'
        - '\spoolss'
        - '\scerpc'
        - '\ntsvcs'
        - '\SearchTextHarvester'
        - '\PGMessagePipe'
        - '\MsFteWds'

Stage 4: not filter_optional_websense

filter_optional_websense:
    Image|contains:
        - ':\Program Files\Websense\'
        - ':\Program Files (x86)\Websense\'
    PipeName|startswith:
        - '\DserNamePipeR'
        - '\DserNamePipeW'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
PipeNameends_with
  • -0,
field:"PipeName" kind:ends_with value:"-0,"
PipeNameeq
  • \demoagent_11
  • \demoagent_22
field:"PipeName" kind:eq
PipeNamestarts_with
  • \DserNamePipe
  • \MsFteWds
  • \PGMessagePipe
  • \SearchTextHarvester
  • \Winsock2\CatalogChangeListener-
  • \f4c3
  • \f53f
  • \fullduplex_
  • \mojo.5688.8052.183894939787088877
  • \mojo.5688.8052.35780273329370473
  • \msrpc_
  • \mypipe-f
  • \mypipe-h
  • \ntsvcs
  • \rpc_
  • \scerpc
  • \spoolss
  • \win\msrpc_
  • \win_svc
  • \windows.update.manager
  • \wkssvc
field:"PipeName" kind:starts_with

Exclusions

The rule actively suppresses these predicates.

Console CodePage Lookup Via CHCP

#
Status
test
Severity
medium
Author
_pete_0, TheDFIRReport
Source
github.com/SigmaHQ/sigma

Detects use of chcp to look up the system locale value as part of host discovery

Known False Positives

  • During Anaconda update the 'conda.exe' process will eventually execution the 'chcp' command.
  • Discord was seen using chcp to look up code pages

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Console CodePage Lookup Via CHCP
id: 7090adee-82e2-4269-bd59-80691e7c6338
status: test
description: Detects use of chcp to look up the system locale value as part of host discovery
references:
    - https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/
    - https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/chcp
author: _pete_0, TheDFIRReport
date: 2022-02-21
modified: 2024-03-05
tags:
    - attack.discovery
    - attack.t1614.001
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        ParentImage|endswith: '\cmd.exe'
        ParentCommandLine|contains|windash:
            - ' -c '
            - ' -r '
            - ' -k '
        Image|endswith: '\chcp.com'
        CommandLine|endswith:
            - 'chcp'
            - 'chcp '
            - 'chcp  '
    condition: selection
falsepositives:
    - During Anaconda update the 'conda.exe' process will eventually execution the 'chcp' command.
    - Discord was seen using chcp to look up code pages
level: medium
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_chcp_codepage_lookup/info.yml

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ParentImage|endswith: '\cmd.exe'
    ParentCommandLine|contains|windash:
        - ' -c '
        - ' -r '
        - ' -k '
    Image|endswith: '\chcp.com'
    CommandLine|endswith:
        - 'chcp'
        - 'chcp '
        - 'chcp  '

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLineends_with
  • chcp
  • chcp
  • chcp
field:"CommandLine" kind:ends_with
Imageends_with
  • \chcp.com corpus 2 (sigma 2)
field:"Image" kind:ends_with value:"\chcp.com"
ParentCommandLinematch
  • -c
  • -k
  • -r
  • /c
  • /k
  • /r
  • –c
  • –k
  • –r
  • —c
  • —k
  • —r
  • ―c
  • ―k
  • ―r
field:"ParentCommandLine" kind:match
ParentImageends_with
  • \cmd.exe corpus 20 (sigma 20)
field:"ParentImage" kind:ends_with value:"\cmd.exe"

Control Panel Items

#
Status
test
Severity
high
Author
Kyaw Min Thein, Furkan Caliskan (@caliskanfurkan_)
Source
github.com/SigmaHQ/sigma

Detects the malicious use of a control panel item

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Control Panel Items
id: 0ba863e6-def5-4e50-9cea-4dd8c7dc46a4
status: test
description: Detects the malicious use of a control panel item
references:
    - https://ired.team/offensive-security/code-execution/code-execution-through-control-panel-add-ins
author: Kyaw Min Thein, Furkan Caliskan (@caliskanfurkan_)
date: 2020-06-22
modified: 2023-10-11
tags:
    - attack.privilege-escalation
    - attack.execution
    - attack.stealth
    - attack.t1218.002
    - attack.persistence
    - attack.t1546
logsource:
    product: windows
    category: process_creation
detection:
    selection_reg_img:
        - Image|endswith: '\reg.exe'
        - OriginalFileName: 'reg.exe'
    selection_reg_cli:
        CommandLine|contains|all:
            - 'add'
            - 'CurrentVersion\Control Panel\CPLs'
    selection_cpl:
        CommandLine|endswith: '.cpl'
    filter_cpl_sys:
        CommandLine|contains:
            - '\System32\'
            - '%System%'
            - '|C:\Windows\system32|'
    filter_cpl_igfx:
        CommandLine|contains|all:
            - 'regsvr32 '
            - ' /s '
            - 'igfxCPL.cpl'
    condition: all of selection_reg_* or (selection_cpl and not 1 of filter_cpl_*)
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

all of selection_reg_* or (selection_cpl and not 1 of filter_cpl_*)

Stage 1: selection_reg_img

selection_reg_img:
    - Image|endswith: '\reg.exe'
    - OriginalFileName: 'reg.exe'

Stage 2: selection_reg_cli

selection_reg_cli:
    CommandLine|contains|all:
        - 'add'
        - 'CurrentVersion\Control Panel\CPLs'

Stage 3: selection_cpl

selection_cpl:
    CommandLine|endswith: '.cpl'

Stage 4: not filter_cpl_*

filter_cpl_sys:
    CommandLine|contains:
        - '\System32\'
        - '%System%'
        - '|C:\Windows\system32|'
filter_cpl_igfx:
    CommandLine|contains|all:
        - 'regsvr32 '
        - ' /s '
        - 'igfxCPL.cpl'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLineends_with
  • .cpl
field:"CommandLine" kind:ends_with value:".cpl"
CommandLinematch
  • CurrentVersion\Control Panel\CPLs
  • add corpus 30 (sigma 26, splunk 4)
field:"CommandLine" kind:match
Imageends_with
  • \reg.exe corpus 58 (sigma 58)
field:"Image" kind:ends_with value:"\reg.exe"
OriginalFileNameeq
  • reg.exe corpus 41 (sigma 32, splunk 8, elastic 1)
field:"OriginalFileName" kind:eq value:"reg.exe"

Exclusions

The rule actively suppresses these predicates.

Copying Sensitive Files with Credential Data

#
Status
test
Severity
high
Author
Teymur Kheirkhabarov, Daniil Yugoslavskiy, oscd.community
Source
github.com/SigmaHQ/sigma

Files with well-known filenames (sensitive files with credential data) copying

Known False Positives

  • Copying sensitive files for legitimate use (eg. backup) or forensic investigation by legitimate incident responder or forensic investigator.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Copying Sensitive Files with Credential Data
id: e7be6119-fc37-43f0-ad4f-1f3f99be2f9f
status: test
description: Files with well-known filenames (sensitive files with credential data) copying
references:
    - https://room362.com/post/2013/2013-06-10-volume-shadow-copy-ntdsdit-domain-hashes-remotely-part-1/
    - https://www.slideshare.net/heirhabarov/hunting-for-credentials-dumping-in-windows-environment
    - https://dfironthemountain.wordpress.com/2018/12/06/locked-file-access-using-esentutl-exe/
    - https://github.com/LOLBAS-Project/LOLBAS/blob/2cc01b01132b5c304027a658c698ae09dd6a92bf/yml/OSBinaries/Esentutl.yml
author: Teymur Kheirkhabarov, Daniil Yugoslavskiy, oscd.community
date: 2019-10-22
modified: 2024-06-04
tags:
    - attack.credential-access
    - attack.t1003.002
    - attack.t1003.003
    - car.2013-07-001
    - attack.s0404
logsource:
    category: process_creation
    product: windows
detection:
    selection_esent_img:
        - Image|endswith: '\esentutl.exe'
        - OriginalFileName: '\esentutl.exe'
    selection_esent_cli:
        CommandLine|contains|windash:
            - 'vss'
            - ' /m '
            - ' /y '
    selection_susp_paths:
        CommandLine|contains:
            - '\config\RegBack\sam'
            - '\config\RegBack\security'
            - '\config\RegBack\system'
            - '\config\sam'
            - '\config\security'
            - '\config\system '        # space needed to avoid false positives with \config\systemprofile\
            - '\repair\sam'
            - '\repair\security'
            - '\repair\system'
            - '\windows\ntds\ntds.dit'
    condition: all of selection_esent_* or selection_susp_paths
falsepositives:
    - Copying sensitive files for legitimate use (eg. backup) or forensic investigation by legitimate incident responder or forensic investigator.
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_esentutl_sensitive_file_copy/info.yml

Stages and Predicates

Stage 0: condition

all of selection_esent_* or selection_susp_paths

Stage 1: selection_esent_img

selection_esent_img:
    - Image|endswith: '\esentutl.exe'
    - OriginalFileName: '\esentutl.exe'

Stage 2: selection_esent_cli

selection_esent_cli:
    CommandLine|contains|windash:
        - 'vss'
        - ' /m '
        - ' /y '

Stage 3: selection_susp_paths

selection_susp_paths:
    CommandLine|contains:
        - '\config\RegBack\sam'
        - '\config\RegBack\security'
        - '\config\RegBack\system'
        - '\config\sam'
        - '\config\security'
        - '\config\system '
        - '\repair\sam'
        - '\repair\security'
        - '\repair\system'
        - '\windows\ntds\ntds.dit'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -m corpus 2 (sigma 2)
  • -y corpus 2 (sigma 2)
  • /m
  • /y corpus 3 (sigma 3)
  • –m
  • –y corpus 2 (sigma 2)
  • —m
  • —y corpus 2 (sigma 2)
  • ―m
  • ―y corpus 2 (sigma 2)
  • \config\RegBack\sam
  • \config\RegBack\security
  • \config\RegBack\system
  • \config\sam corpus 4 (sigma 4)
  • \config\security corpus 4 (sigma 4)
  • \config\system
  • \repair\sam
  • \repair\security
  • \repair\system
  • \windows\ntds\ntds.dit corpus 5 (sigma 5)
  • vss corpus 2 (sigma 2)
field:"CommandLine" kind:match
Imageends_with
  • \esentutl.exe corpus 7 (sigma 7)
field:"Image" kind:ends_with value:"\esentutl.exe"
OriginalFileNameeq
  • \esentutl.exe
field:"OriginalFileName" kind:eq value:"\esentutl.exe"

DLL Load By System Process From Suspicious Locations

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

Detects when a system process (i.e. located in system32, syswow64, etc.) loads a DLL from a suspicious location or a location with permissive permissions such as "C:\Users\Public"

MITRE ATT&CK Coverage

TacticTechniques
Stealth

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 7: Image loaded

Rule Body

title: DLL Load By System Process From Suspicious Locations
id: 9e9a9002-56c4-40fd-9eff-e4b09bfa5f6c
status: test
description: Detects when a system process (i.e. located in system32, syswow64, etc.) loads a DLL from a suspicious location or a location with permissive permissions such as "C:\Users\Public"
references:
    - https://github.com/hackerhouse-opensource/iscsicpl_bypassUAC (Idea)
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-17
modified: 2023-09-18
tags:
    - attack.stealth
    - attack.t1070
logsource:
    product: windows
    category: image_load
detection:
    selection:
        Image|startswith: 'C:\Windows\'
        ImageLoaded|startswith:
            # TODO: Add more suspicious paths as you see fit in your env
            - 'C:\Users\Public\'
            - 'C:\PerfLogs\'
    condition: selection
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|startswith: 'C:\Windows\'
    ImageLoaded|startswith:
        - 'C:\Users\Public\'
        - 'C:\PerfLogs\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imagestarts_with
  • C:\Windows\ corpus 2 (sigma 1, elastic 1)
field:"Image" kind:starts_with value:"C:\Windows\"
ImageLoadedstarts_with
  • C:\PerfLogs\
  • C:\Users\Public\
field:"ImageLoaded" kind:starts_with

HackTool - F-Secure C3 Load by Rundll32

#
Status
test
Severity
critical
Author
Alfie Champion (ajpc500)
Source
github.com/SigmaHQ/sigma

F-Secure C3 produces DLLs with a default exported StartNodeRelay function.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: HackTool - F-Secure C3 Load by Rundll32
id: b18c9d4c-fac9-4708-bd06-dd5bfacf200f
status: test
description: F-Secure C3 produces DLLs with a default exported StartNodeRelay function.
references:
    - https://github.com/FSecureLABS/C3/blob/11a081fd3be2aaf2a879f6b6e9a96ecdd24966ef/Src/NodeRelayDll/NodeRelayDll.cpp#L12
author: Alfie Champion (ajpc500)
date: 2021-06-02
modified: 2023-03-05
tags:
    - attack.stealth
    - attack.t1218.011
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        CommandLine|contains|all:
            - 'rundll32.exe'
            - '.dll'
            - 'StartNodeRelay'
    condition: selection
falsepositives:
    - Unknown
level: critical

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    CommandLine|contains|all:
        - 'rundll32.exe'
        - '.dll'
        - 'StartNodeRelay'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • .dll corpus 16 (sigma 16)
  • StartNodeRelay
  • rundll32.exe corpus 8 (sigma 8)
field:"CommandLine" kind:match

Impacket DCOMexec process abuse via MMC

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

Detects scenarios where an attacker execute the Impacket DCOMexec tool in order to abuse DCOM services.

Known False Positives

  • applications using DCOM components remotely
  • rare administrator modifications of DCOM settings

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Impacket DCOMexec process abuse via MMC
description: Detects scenarios where an attacker execute the Impacket DCOMexec tool in order to abuse DCOM services.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0008-Lateral%20Movement/T1021.003-Distributed%20Component%20Object%20Model%20(DCOM)
- https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/
- https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/
- https://github.com/SecureAuthCorp/impacket/blob/master/examples/dcomexec.py
- https://www.ired.team/offensive-security/lateral-movement/t1175-distributed-component-object-model
- https://www.synacktiv.com/publications/traces-of-windows-remote-command-execution.html
tags:
- attack.lateral_movement
- attack.t1021.003
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  selection_basic:
    EventID: 4688
    Version: 2  # parent process name is available starting Windows 10 / Server 2016 and higher
    ParentProcessName|endswith: '\svchost.exe'
    NewProcessName|endswith: '\mmc.exe'

  selection_sysmon:
    EventID: 1
    ParentImage|endswith: '\svchost.exe'
    Image|endswith: '\mmc.exe'

  condition: selection_basic or selection_sysmon
falsepositives:
- applications using DCOM components remotely
- rare administrator modifications of DCOM settings
level: high

Stages and Predicates

Stage 0: condition

selection_basic or selection_sysmon

Stage 1: selection_basic

selection_basic:
  EventID: 4688
  Version: 2
  ParentProcessName|endswith: '\svchost.exe'
  NewProcessName|endswith: '\mmc.exe'

Stage 2: selection_sysmon

selection_sysmon:
  EventID: 1
  ParentImage|endswith: '\svchost.exe'
  Image|endswith: '\mmc.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \mmc.exe corpus 6 (sigma 5, splunk 1)
field:"Image" kind:ends_with value:"\mmc.exe"
NewProcessNameends_with
  • \mmc.exe corpus 6 (sigma 5, splunk 1)
field:"Image" kind:ends_with value:"\mmc.exe"
ParentImageends_with
  • \svchost.exe corpus 14 (sigma 14)
field:"ParentImage" kind:ends_with value:"\svchost.exe"
ParentProcessNameends_with
  • \svchost.exe
field:"parent_process_name" kind:ends_with value:"\svchost.exe"
Versioneq
  • 2 corpus 7 (sigma 7)
field:"Version" kind:eq value:"2"

Linux HackTool Execution

#
Status
test
Severity
high
Author
Nasreddine Bencherchali (Nextron Systems), Georg Lauenstein (sure[secure])
Source
github.com/SigmaHQ/sigma

Detects known hacktool execution based on image name.

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

TacticTechniques
Resource Development

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: Linux HackTool Execution
id: a015e032-146d-4717-8944-7a1884122111
status: test
description: Detects known hacktool execution based on image name.
references:
    - https://github.com/Gui774ume/ebpfkit
    - https://github.com/pathtofile/bad-bpf
    - https://github.com/carlospolop/PEASS-ng
    - https://github.com/t3l3machus/hoaxshell
    - https://github.com/t3l3machus/Villain
    - https://github.com/HavocFramework/Havoc
    - https://github.com/1N3/Sn1per
    - https://github.com/Ne0nd0g/merlin
    - https://github.com/Pennyw0rth/NetExec/
author: Nasreddine Bencherchali (Nextron Systems), Georg Lauenstein (sure[secure])
date: 2023-01-03
modified: 2024-09-19
tags:
    - attack.execution
    - attack.resource-development
    - attack.t1587
logsource:
    product: linux
    category: process_creation
detection:
    selection_c2_frameworks:
        Image|endswith:
            - '/crackmapexec'
            - '/havoc'
            - '/merlin-agent'
            - '/merlinServer-Linux-x64'
            - '/msfconsole'
            - '/msfvenom'
            - '/ps-empire server'
            - '/ps-empire'
            - '/sliver-client'
            - '/sliver-server'
            - '/Villain.py'
    selection_c2_framework_cobaltstrike:
        Image|contains:
            - '/cobaltstrike'
            - '/teamserver'
    selection_scanners:
        Image|endswith:
            - '/autorecon'
            - '/httpx'
            - '/legion'
            - '/naabu'
            - '/netdiscover'
            - '/nuclei'
            - '/recon-ng'
    selection_scanners_sniper:
        Image|contains: '/sniper'
    selection_web_enum:
        Image|endswith:
            - '/dirb'
            - '/dirbuster'
            - '/eyewitness'
            - '/feroxbuster'
            - '/ffuf'
            - '/gobuster'
            - '/wfuzz'
            - '/whatweb'
    selection_web_vuln:
        Image|endswith:
            - '/joomscan'
            - '/nikto'
            - '/wpscan'
    selection_exploit_tools:
        Image|endswith:
            - '/aircrack-ng'
            - '/bloodhound-python'
            - '/bpfdos'
            - '/ebpfki'
            - '/evil-winrm'
            - '/hashcat'
            - '/hoaxshell.py'
            - '/hydra'
            - '/john'
            - '/ncrack'
            # default binary: https://github.com/Pennyw0rth/NetExec/releases/download/v1.0.0/nxc-ubuntu-latest
            - '/nxc-ubuntu-latest'
            - '/pidhide'
            - '/pspy32'
            - '/pspy32s'
            - '/pspy64'
            - '/pspy64s'
            - '/setoolkit'
            - '/sqlmap'
            - '/writeblocker'
    selection_linpeas:
        # covers: all linux versions listed here: https://github.com/carlospolop/PEASS-ng/releases
        Image|contains: '/linpeas'
    condition: 1 of selection_*
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_c2_frameworks

selection_c2_frameworks:
    Image|endswith:
        - '/crackmapexec'
        - '/havoc'
        - '/merlin-agent'
        - '/merlinServer-Linux-x64'
        - '/msfconsole'
        - '/msfvenom'
        - '/ps-empire server'
        - '/ps-empire'
        - '/sliver-client'
        - '/sliver-server'
        - '/Villain.py'

Stage 2: selection_c2_framework_cobaltstrike

selection_c2_framework_cobaltstrike:
    Image|contains:
        - '/cobaltstrike'
        - '/teamserver'

Stage 3: selection_scanners

selection_scanners:
    Image|endswith:
        - '/autorecon'
        - '/httpx'
        - '/legion'
        - '/naabu'
        - '/netdiscover'
        - '/nuclei'
        - '/recon-ng'

Stage 4: selection_scanners_sniper

selection_scanners_sniper:
    Image|contains: '/sniper'

Stage 5: selection_web_enum

selection_web_enum:
    Image|endswith:
        - '/dirb'
        - '/dirbuster'
        - '/eyewitness'
        - '/feroxbuster'
        - '/ffuf'
        - '/gobuster'
        - '/wfuzz'
        - '/whatweb'

Stage 6: selection_web_vuln

selection_web_vuln:
    Image|endswith:
        - '/joomscan'
        - '/nikto'
        - '/wpscan'

Stage 7: selection_exploit_tools

selection_exploit_tools:
    Image|endswith:
        - '/aircrack-ng'
        - '/bloodhound-python'
        - '/bpfdos'
        - '/ebpfki'
        - '/evil-winrm'
        - '/hashcat'
        - '/hoaxshell.py'
        - '/hydra'
        - '/john'
        - '/ncrack'
        - '/nxc-ubuntu-latest'
        - '/pidhide'
        - '/pspy32'
        - '/pspy32s'
        - '/pspy64'
        - '/pspy64s'
        - '/setoolkit'
        - '/sqlmap'
        - '/writeblocker'

Stage 8: selection_linpeas

selection_linpeas:
    Image|contains: '/linpeas'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • /Villain.py
  • /aircrack-ng
  • /autorecon corpus 2 (sigma 2)
  • /bloodhound-python
  • /bpfdos
  • /crackmapexec
  • /dirb
  • /dirbuster
  • /ebpfki
  • /evil-winrm
  • /eyewitness
  • /feroxbuster
  • /ffuf
  • /gobuster
  • /hashcat
  • /havoc
  • /hoaxshell.py
  • /httpx
  • /hydra
  • /john
  • /joomscan
  • /legion
  • /merlin-agent
  • /merlinServer-Linux-x64
  • /msfconsole
  • /msfvenom
  • /naabu corpus 2 (sigma 2)
  • /ncrack
  • /netdiscover
  • /nikto
  • /nuclei
  • /nxc-ubuntu-latest
  • /pidhide
  • /ps-empire
  • /ps-empire server
  • /pspy32
  • /pspy32s
  • /pspy64
  • /pspy64s
  • /recon-ng
  • /setoolkit
  • /sliver-client
  • /sliver-server
  • /sqlmap
  • /wfuzz
  • /whatweb
  • /wpscan
  • /writeblocker
field:"Image" kind:ends_with
Imagematch
  • /cobaltstrike
  • /linpeas
  • /sniper
  • /teamserver
field:"Image" kind:match

LSASS credential dump with LSASSY (process)

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

Detects scenarios where an attacker remotely dump LSASS credentials using the LSASSY tool.

Known False Positives

  • None

MITRE ATT&CK Coverage

TacticTechniques
Credential Access

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: LSASS credential dump with LSASSY (process)
description: Detects scenarios where an attacker remotely dump LSASS credentials using the LSASSY tool.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0006-Credential%20Access/T1003-Credential%20dumping
- https://github.com/Hackndo/lsassy
tags:
- attack.credential_access
- attack.t1003.001
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category: process_creation
detection: # Full command: '"C:\Windows\System32\rundll32.exe" C:\Windows\System32\comsvcs.dll MiniDump 512 \Windows\Temp\76nivOxA.dmp full'
  selection_process_native:
    NewProcessName|endswith:
      - \rundll32.exe
      - \powershell.exe
    CommandLine|contains|all:
      - rundll32.exe
      - comsvcs.dll
      #- '.dmp' # Extension can be changed in source code

  selection_sysmon_baseline:
    Image|endswith:
      - \rundll32.exe
      - \powershell.exe
      - \pwsh.exe # PowerShell v6
      - \powershell_ise.exe # Development GUI
  selection_sysmon_parent_process:
    ParentCommandLine:
      - rundll32.exe
      - comsvcs.dll
      #- '.dmp' # Extension can be changed in source code
  selection_sysmon_process:
    CommandLine|contains|all:
      - rundll32.exe
      - comsvcs.dll
      #- '.dmp' # Extension can be changed in source code
  condition: selection_process_native or (selection_sysmon_baseline and (selection_sysmon_parent_process or selection_sysmon_process))
falsepositives:
- None
level: high

Stages and Predicates

Stage 0: condition

selection_process_native or (selection_sysmon_baseline and (selection_sysmon_parent_process or selection_sysmon_process))

Stage 1: selection_process_native

selection_process_native:
  NewProcessName|endswith:
    - \rundll32.exe
    - \powershell.exe
  CommandLine|contains|all:
    - rundll32.exe
    - comsvcs.dll

Stage 2: selection_sysmon_baseline

selection_sysmon_baseline:
  Image|endswith:
    - \rundll32.exe
    - \powershell.exe
    - \pwsh.exe
    - \powershell_ise.exe

Stage 3: selection_sysmon_parent_process

selection_sysmon_parent_process:
  ParentCommandLine:
    - rundll32.exe
    - comsvcs.dll

Stage 4: selection_sysmon_process

selection_sysmon_process:
  CommandLine|contains|all:
    - rundll32.exe
    - comsvcs.dll

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • comsvcs.dll corpus 3 (sigma 2, splunk 1)
  • rundll32.exe corpus 8 (sigma 8)
field:"CommandLine" kind:match
Imageends_with
  • \powershell.exe corpus 181 (sigma 180, splunk 1)
  • \powershell_ise.exe corpus 41 (sigma 41)
  • \pwsh.exe corpus 166 (sigma 166)
  • \rundll32.exe corpus 94 (sigma 94)
field:"Image" kind:ends_with
NewProcessNameends_with
  • \powershell.exe corpus 181 (sigma 180, splunk 1)
  • \rundll32.exe corpus 94 (sigma 94)
field:"Image" kind:ends_with
ParentCommandLineeq
  • comsvcs.dll
  • rundll32.exe
field:"ParentCommandLine" kind:eq

macOS Encryption Tool Usage

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

Detects execution of encryption tools (openssl, gpg, diskutil) which may indicate ransomware activity or data encryption for impact. Adversaries encrypt data to deny availability and extort victims. Also monitors disk encryption operations.

Known False Positives

  • Legitimate data encryption for security
  • FileVault and disk encryption setup
  • Secure file transfer preparations
  • Development and testing of encryption features

MITRE ATT&CK Coverage

Rule Body

title: macOS Encryption Tool Usage
id: f2a3b4c5-d6e7-4f8a-9b0c-1d2e3f4a5b6c
status: experimental
description: 'Detects execution of encryption tools (openssl, gpg, diskutil) which
  may indicate

  ransomware activity or data encryption for impact. Adversaries encrypt data to

  deny availability and extort victims. Also monitors disk encryption operations.

  '
author: Eric Brown - Nebulock, Inc.
date: 2025/10/31
modified: 2025/10/31
references:
- https://attack.mitre.org/techniques/T1486/
- https://attack.mitre.org/techniques/T1565/001/
logsource:
  product: macos
  service: endpointsecurity
detection:
  selection_event:
    esf.event_type: 9
    event.action: exec
  selection_process:
    Image|endswith:
    - /openssl
    - /gpg
    - /gpg2
    - /diskutil
  selection_encryption:
    CommandLine|contains:
    - 'enc '
    - encrypt
    - aes
    - --cipher
    - apfs encryptVolume
    - coreStorage convert
  condition: selection_event and selection_process and selection_encryption
falsepositives:
- Legitimate data encryption for security
- FileVault and disk encryption setup
- Secure file transfer preparations
- Development and testing of encryption features
fields:
- Image
- CommandLine
- ProcessId
- ParentProcessId
- User
tags:
- attack.impact
- attack.t1486
- attack.t1565.001
level: medium

Stages and Predicates

Stage 0: condition

selection_event and selection_process and selection_encryption

Stage 1: selection_event

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

Stage 2: selection_process

selection_process:
  Image|endswith:
  - /openssl
  - /gpg
  - /gpg2
  - /diskutil

Stage 3: selection_encryption

selection_encryption:
  CommandLine|contains:
  - 'enc '
  - encrypt
  - aes
  - --cipher
  - apfs encryptVolume
  - coreStorage convert

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • --cipher
  • aes
  • apfs encryptVolume
  • coreStorage convert
  • enc
  • encrypt
field:"CommandLine" kind:match
Imageends_with
  • /diskutil
  • /gpg
  • /gpg2
  • /openssl
field:"Image" kind:ends_with
esf.event_typeeq
  • 9
field:"esf.event_type" kind:eq value:"9"
event.actioneq
  • exec
field:"EventType" kind:eq value:"exec"

Massive service installation - Tchopper

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

Detects scenarios where an attacker uses the Tchopper tool by abusing the display name of a service as a placeholder to upload an obfuscated payload. Service name may come with very high entropy. Option mode "-m" will not report any service installation, only service failures.

Known False Positives

  • None

MITRE ATT&CK Coverage

TacticTechniques
Execution

Telemetry Coverage

Rule Body

title: Massive service installation - Tchopper
description: Detects scenarios where an attacker uses the Tchopper tool by abusing the display name of a service as a placeholder to upload an obfuscated payload. Service name may come with very high entropy. Option mode "-m" will not report any service installation, only service failures.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0002-Execution/T1569.002-Service%20execution
- https://github.com/lawrenceamer/TChopper
tags:
- attack.execution
- attack.t1569
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: system
detection:
  selection:
    EventID: 7045 # service installation
    #ImagePath|contains|all: # May not be necessary as deploying a high number of services is already suspicious
    #  - cmd
    #  - powershell
    #  - Get-Service
    #  - out-file
  condition: selection | count(ServiceName) by Computer > 50 # Count how many different services are deployed on the host.
  timeframe: 20m
falsepositives:
- None
level: high

Stages and Predicates

Stage 0: condition

selection | count(ServiceName) by Computer > 50 # Count how many different services are deployed on the host.

Stage 1: selection

selection:
  EventID: 7045
Threshold
> 50

New Network ACL Entry Added

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

Detects that network ACL entries have been added to a route table which could indicate that new attack vectors have been opened up in the AWS account.

Known False Positives

  • Legitimate use of ACLs to enable customer and staff access from the public internet into a public VPC

MITRE ATT&CK Coverage

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: New Network ACL Entry Added
id: e1f7febb-7b94-4234-b5c6-00fb8500f5dd
status: test
description: |
    Detects that network ACL entries have been added to a route table which could indicate that new attack vectors have been opened up in the AWS account.
references:
    - https://www.gorillastack.com/blog/real-time-events/important-aws-cloudtrail-security-events-tracking/
author: jamesc-grafana
date: 2024-07-11
tags:
    - attack.defense-impairment
    - attack.t1686.001
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: 'ec2.amazonaws.com'
        eventName: 'CreateNetworkAclEntry'
    condition: selection
falsepositives:
    - Legitimate use of ACLs to enable customer and staff access from the public internet into a public VPC
level: low

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: 'ec2.amazonaws.com'
    eventName: 'CreateNetworkAclEntry'

Indicators

These rows show field, operator, and value matches.

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

OpenCanary - HTTP POST Login Attempt

#
Status
test
Severity
high
Author
Security Onion Solutions
Source
github.com/SigmaHQ/sigma

Detects instances where an HTTP service on an OpenCanary node has had login attempt via Form POST.

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

TacticTechniques
Initial Access

Rule Body

title: OpenCanary - HTTP POST Login Attempt
id: af1ac430-df6b-4b38-b976-0b52f07a0252
status: test
description: |
    Detects instances where an HTTP service on an OpenCanary node has had login attempt via Form POST.
references:
    - https://opencanary.readthedocs.io/en/latest/starting/configuration.html#services-configuration
    - https://github.com/thinkst/opencanary/blob/a0896adfcaf0328cfd5829fe10d2878c7445138e/opencanary/logger.py#L52
author: Security Onion Solutions
date: 2024-03-08
tags:
    - attack.initial-access
    - attack.t1190
logsource:
    category: application
    product: opencanary
detection:
    selection:
        logtype: 3001
    condition: selection
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    logtype: 3001

Indicators

These rows show field, operator, and value matches.

OpenSSH native server feature installation

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

Detects scenarios where an attacker enables the native OpenSSH server feature on Windows to perform stealthy lateral movement.

Known False Positives

  • legitimate administrator installation
  • developer computer

MITRE ATT&CK Coverage

TacticTechniques
Lateral Movement

Telemetry Coverage

Rule Body

title: OpenSSH native server feature installation
description: Detects scenarios where an attacker enables the native OpenSSH server feature on Windows to perform stealthy lateral movement.
references:
 - https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0008-Lateral%20Movement/T1021.004-Remote%20Service%20SSH
 - https://winaero.com/enable-openssh-server-windows-10/
 - https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse
 - https://virtualizationreview.com/articles/2020/05/21/ssh-server-on-windows-10.aspx
 - https://www.microsoft.com/en-us/security/blog/2022/10/18/defenders-beware-a-case-for-post-ransomware-investigations/
tags:
- attack.lateral_movement
- attack.t1021.004
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category:
    - ps_module
    - ps_classic_script
    - ps_script
detection:
  selection_powershell_native:
    EventID: 800
    EventData|contains|all:
      - Add-WindowsCapability
      - OpenSSH.Server

  selection_powershell_modern:
    EventID: 4103
    Payload|contains|all:
      - Add-WindowsCapability
      - OpenSSH.Server

  selection_powershell_block:
    EventID: 4104
    ScriptBlockText|contains|all:
      - Add-WindowsCapability
      - OpenSSH.Server

  condition: 1 of selection*
falsepositives:
- legitimate administrator installation
- developer computer
level: medium

Stages and Predicates

Stage 0: condition

1 of selection*

Stage 1: selection_powershell_native

selection_powershell_native:
  EventID: 800
  EventData|contains|all:
    - Add-WindowsCapability
    - OpenSSH.Server

Stage 2: selection_powershell_modern

selection_powershell_modern:
  EventID: 4103
  Payload|contains|all:
    - Add-WindowsCapability
    - OpenSSH.Server

Stage 3: selection_powershell_block

selection_powershell_block:
  EventID: 4104
  ScriptBlockText|contains|all:
    - Add-WindowsCapability
    - OpenSSH.Server

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventDatamatch
  • Add-WindowsCapability
  • OpenSSH.Server
field:"EventData" kind:match
Payloadmatch
  • Add-WindowsCapability
  • OpenSSH.Server
field:"Payload" kind:match
ScriptBlockTextmatch
  • Add-WindowsCapability
  • OpenSSH.Server
field:"ScriptBlockText" kind:match

Outbound Network Connection Initiated By Cmstp.EXE

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

Detects a network connection initiated by Cmstp.EXE Its uncommon for "cmstp.exe" to initiate an outbound network connection. Investigate the source of such requests to determine if they are malicious.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 3: Network connection

Rule Body

title: Outbound Network Connection Initiated By Cmstp.EXE
id: efafe0bf-4238-479e-af8f-797bd3490d2d
status: test
description: |
    Detects a network connection initiated by Cmstp.EXE
    Its uncommon for "cmstp.exe" to initiate an outbound network connection. Investigate the source of such requests to determine if they are malicious.
references:
    - https://web.archive.org/web/20190720093911/http://www.endurant.io/cmstp/detecting-cmstp-enabled-code-execution-and-uac-bypass-with-sysmon/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-30
modified: 2024-05-31
tags:
    - attack.stealth
    - attack.t1218.003
logsource:
    category: network_connection
    product: windows
detection:
    selection:
        Image|endswith: '\cmstp.exe'
        Initiated: 'true'
    filter_main_local_ranges:
        DestinationIp|cidr:
            - '127.0.0.0/8'
            - '10.0.0.0/8'
            - '172.16.0.0/12'
            - '192.168.0.0/16'
            - '169.254.0.0/16'
            - '::1/128'  # IPv6 loopback
            - 'fe80::/10'  # IPv6 link-local addresses
            - 'fc00::/7'  # IPv6 private addresses
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Unknown
# Note: Please report any false positive seen in the wild to help tune the rule.
level: high

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    Image|endswith: '\cmstp.exe'
    Initiated: 'true'

Stage 2: not filter_main_local_ranges

filter_main_local_ranges:
    DestinationIp|cidr:
        - '127.0.0.0/8'
        - '10.0.0.0/8'
        - '172.16.0.0/12'
        - '192.168.0.0/16'
        - '169.254.0.0/16'
        - '::1/128'
        - 'fe80::/10'
        - 'fc00::/7'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \cmstp.exe corpus 8 (sigma 8)
field:"Image" kind:ends_with value:"\cmstp.exe"
Initiatedeq
  • true corpus 50 (sigma 50)
field:"Initiated" kind:eq value:"true"

Exclusions

The rule actively suppresses these predicates.

Potential LethalHTA Technique Execution

#
Status
test
Severity
high
Author
Markus Neis
Source
github.com/SigmaHQ/sigma

Detects potential LethalHTA technique where the "mshta.exe" is spawned by an "svchost.exe" process

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Potential LethalHTA Technique Execution
id: ed5d72a6-f8f4-479d-ba79-02f6a80d7471
status: test
description: Detects potential LethalHTA technique where the "mshta.exe" is spawned by an "svchost.exe" process
references:
    - https://codewhitesec.blogspot.com/2018/07/lethalhta.html
author: Markus Neis
date: 2018-06-07
modified: 2023-02-07
tags:
    - attack.stealth
    - attack.t1218.005
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        ParentImage|endswith: '\svchost.exe'
        Image|endswith: '\mshta.exe'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ParentImage|endswith: '\svchost.exe'
    Image|endswith: '\mshta.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \mshta.exe corpus 67 (sigma 66, splunk 1)
field:"Image" kind:ends_with value:"\mshta.exe"
ParentImageends_with
  • \svchost.exe corpus 14 (sigma 14)
field:"ParentImage" kind:ends_with value:"\svchost.exe"

Potential Peach Sandstorm APT C2 Communication Activity

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

Detects potential C2 communication activity related to Peach Sandstorm APT

MITRE ATT&CK Coverage

TacticTechniques
Command & ControlNo specific technique

Rule Body

title: Potential Peach Sandstorm APT C2 Communication Activity
id: b8225208-81d0-4715-a822-12bcdd583e0f
status: test
description: Detects potential C2 communication activity related to Peach Sandstorm APT
references:
    - https://twitter.com/MsftSecIntel/status/1737895710169628824
    - https://www.virustotal.com/gui/file/364275326bbfc4a3b89233dabdaf3230a3d149ab774678342a40644ad9f8d614/details
author: X__Junior (Nextron Systems)
date: 2024-01-15
tags:
    - attack.command-and-control
    - detection.emerging-threats
logsource:
    category: proxy
detection:
    selection:
        cs-method: 'GET'
        c-uri|endswith:
            - '/api/Core/Command/Init'
            - '/api/Core/Command/Restart'
    condition: selection
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    cs-method: 'GET'
    c-uri|endswith:
        - '/api/Core/Command/Init'
        - '/api/Core/Command/Restart'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
c-uriends_with
  • /api/Core/Command/Init
  • /api/Core/Command/Restart
field:"c-uri" kind:ends_with
cs-methodeq
  • GET
field:"cs-method" kind:eq value:"GET"

Potentially Suspicious ASP.NET Compilation Via AspNetCompiler

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

Detects execution of "aspnet_compiler.exe" with potentially suspicious paths for compilation.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Potentially Suspicious ASP.NET Compilation Via AspNetCompiler
id: 9f50fe98-fe5c-4a2d-86c7-fad7f63ed622 # Susp Paths
related:
    - id: 9ccba514-7cb6-4c5c-b377-700758f2f120 # SuspChild
      type: similar
    - id: 4c7f49ee-2638-43bb-b85b-ce676c30b260 # TMP File
      type: similar
    - id: a01b8329-5953-4f73-ae2d-aa01e1f35f00 # Exec
      type: similar
status: test
description: Detects execution of "aspnet_compiler.exe" with potentially suspicious paths for compilation.
references:
    - https://lolbas-project.github.io/lolbas/Binaries/Aspnet_Compiler/
    - https://ijustwannared.team/2020/08/01/the-curious-case-of-aspnet_compiler-exe/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-08-14
modified: 2025-02-24
tags:
    - attack.execution
    - attack.stealth
    - attack.t1127
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|contains:
            - ':\Windows\Microsoft.NET\Framework\'
            - ':\Windows\Microsoft.NET\Framework64\'
            - ':\Windows\Microsoft.NET\FrameworkArm\'
            - ':\Windows\Microsoft.NET\FrameworkArm64\'
        Image|endswith: '\aspnet_compiler.exe'
        CommandLine|contains:
            # Note: add other potential suspicious paths
            - '\Users\Public\'
            - '\AppData\Local\Temp\'
            - '\AppData\Local\Roaming\'
            - ':\Temp\'
            - ':\Windows\Temp\'
            - ':\Windows\System32\Tasks\'
            - ':\Windows\Tasks\'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Image|contains:
        - ':\Windows\Microsoft.NET\Framework\'
        - ':\Windows\Microsoft.NET\Framework64\'
        - ':\Windows\Microsoft.NET\FrameworkArm\'
        - ':\Windows\Microsoft.NET\FrameworkArm64\'
    Image|endswith: '\aspnet_compiler.exe'
    CommandLine|contains:
        - '\Users\Public\'
        - '\AppData\Local\Temp\'
        - '\AppData\Local\Roaming\'
        - ':\Temp\'
        - ':\Windows\Temp\'
        - ':\Windows\System32\Tasks\'
        - ':\Windows\Tasks\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • :\Temp\ corpus 14 (sigma 14)
  • :\Windows\System32\Tasks\ corpus 4 (sigma 4)
  • :\Windows\Tasks\ corpus 6 (sigma 6)
  • :\Windows\Temp\ corpus 16 (sigma 16)
  • \AppData\Local\Roaming\
  • \AppData\Local\Temp\ corpus 28 (sigma 26, elastic 2)
  • \Users\Public\ corpus 18 (sigma 17, elastic 1)
field:"CommandLine" kind:match
Imageends_with
  • \aspnet_compiler.exe corpus 3 (sigma 3)
field:"Image" kind:ends_with value:"\aspnet_compiler.exe"
Imagematch
  • :\Windows\Microsoft.NET\Framework64\ corpus 2 (sigma 2)
  • :\Windows\Microsoft.NET\FrameworkArm64\ corpus 2 (sigma 2)
  • :\Windows\Microsoft.NET\FrameworkArm\ corpus 2 (sigma 2)
  • :\Windows\Microsoft.NET\Framework\ corpus 2 (sigma 2)
field:"Image" kind:match

PST Export Alert Using New-ComplianceSearchAction

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

Alert when a user has performed an export to a search using 'New-ComplianceSearchAction' with the '-Export' flag. This detection will detect PST export even if the 'eDiscovery search or exported' alert is disabled in the O365.This rule will apply to ExchangePowerShell usage and from the cloud.

Known False Positives

  • Exporting a PST can be done for legitimate purposes by legitimate sources, but due to the sensitive nature of PST content, it must be monitored.

MITRE ATT&CK Coverage

TacticTechniques
Collection

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: PST Export Alert Using New-ComplianceSearchAction
id: 6897cd82-6664-11ed-9022-0242ac120002
related:
    - id: 18b88d08-d73e-4f21-bc25-4b9892a4fdd0
      type: similar
status: test
description: Alert when a user has performed an export to a search using 'New-ComplianceSearchAction' with the '-Export' flag. This detection will detect PST export even if the 'eDiscovery search or exported' alert is disabled in the O365.This rule will apply to ExchangePowerShell usage and from the cloud.
references:
    - https://learn.microsoft.com/en-us/powershell/module/exchange/new-compliancesearchaction?view=exchange-ps
author: Nikita Khalimonenkov
date: 2022-11-17
tags:
    - attack.collection
    - attack.t1114
logsource:
    service: threat_management
    product: m365
detection:
    selection:
        eventSource: SecurityComplianceCenter
        Payload|contains|all:
            - 'New-ComplianceSearchAction'
            - 'Export'
            - 'pst'
    condition: selection
falsepositives:
    - Exporting a PST can be done for legitimate purposes by legitimate sources, but due to the sensitive nature of PST content, it must be monitored.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: SecurityComplianceCenter
    Payload|contains|all:
        - 'New-ComplianceSearchAction'
        - 'Export'
        - 'pst'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Payloadmatch
  • Export
  • New-ComplianceSearchAction
  • pst
field:"Payload" kind:match
eventSourceeq
  • SecurityComplianceCenter
field:"aws::eventSource" kind:eq value:"SecurityComplianceCenter"

Rejetto HTTP File Server RCE

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

Detects attempts to exploit a Rejetto HTTP File Server (HFS) via CVE-2014-6287

MITRE ATT&CK Coverage

Rule Body

title: Rejetto HTTP File Server RCE
id: a133193c-2daa-4a29-8022-018695fcf0ae
status: test
description: Detects attempts to exploit a Rejetto HTTP File Server (HFS) via CVE-2014-6287
references:
    - https://vk9-sec.com/hfs-code-execution-cve-2014-6287/
    - https://www.exploit-db.com/exploits/39161
    - https://github.com/Twigonometry/Cybersecurity-Notes/blob/c875b0f52df7d2c7a870e75e1f0c2679d417931d/Writeups/Hack%20the%20Box/Boxes/Optimum/10%20-%20Website.md
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-19
modified: 2023-01-02
tags:
    - attack.persistence
    - attack.initial-access
    - attack.t1190
    - attack.t1505.003
    - cve.2014-6287
    - detection.emerging-threats
logsource:
    category: webserver
detection:
    selection_search:
        cs-uri-query|contains: '?search=%00{.'
    selection_payload:
        cs-uri-query|contains:
            - 'save|' # Indication of saving a file which shouldn't be tested by vuln scanners
            - 'powershell'
            - 'cmd.exe'
            - 'cmd /c'
            - 'cmd /r'
            - 'cmd /k'
            - 'cscript'
            - 'wscript'
            - 'python'
            - 'C:\Users\Public\'
            - '%comspec%'
    condition: all of selection_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_search

selection_search:
    cs-uri-query|contains: '?search=%00{.'

Stage 2: selection_payload

selection_payload:
    cs-uri-query|contains:
        - 'save|'
        - 'powershell'
        - 'cmd.exe'
        - 'cmd /c'
        - 'cmd /r'
        - 'cmd /k'
        - 'cscript'
        - 'wscript'
        - 'python'
        - 'C:\Users\Public\'
        - '%comspec%'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
cs-uri-querymatch
  • %comspec%
  • ?search=%00{.
  • C:\Users\Public\
  • cmd /c
  • cmd /k
  • cmd /r
  • cmd.exe
  • cscript
  • powershell
  • python
  • save|
  • wscript
field:"cs-uri-query" kind:match

Rundll32 Internet Connection

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

Detects a rundll32 that communicates with public IP addresses

Known False Positives

  • Communication to other corporate systems that use IP addresses from public address spaces

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 3: Network connection

Rule Body

title: Rundll32 Internet Connection
id: cdc8da7d-c303-42f8-b08c-b4ab47230263
status: test
description: Detects a rundll32 that communicates with public IP addresses
references:
    - https://www.hybrid-analysis.com/sample/759fb4c0091a78c5ee035715afe3084686a8493f39014aea72dae36869de9ff6?environmentId=100
author: Florian Roth (Nextron Systems)
date: 2017-11-04
modified: 2024-03-13
tags:
    - attack.stealth
    - attack.t1218.011
    - attack.execution
logsource:
    category: network_connection
    product: windows
detection:
    selection:
        Image|endswith: '\rundll32.exe'
        Initiated: 'true'
    filter_main_local_ranges:
        DestinationIp|cidr:
            - '127.0.0.0/8'
            - '10.0.0.0/8'
            - '172.16.0.0/12'
            - '192.168.0.0/16'
            - '169.254.0.0/16'
            - '::1/128'  # IPv6 loopback
            - 'fe80::/10'  # IPv6 link-local addresses
            - 'fc00::/7'  # IPv6 private addresses
    filter_main_ms_ranges:
        DestinationIp|cidr:
            - '20.0.0.0/8' # Microsoft range, caused some FPs
            - '51.103.0.0/16' # Microsoft AS8075 range, caused some FPs
            - '51.104.0.0/16' # Microsoft AS8075 range, caused some FPs
            - '51.105.0.0/16' # Microsoft AS8075 range, caused some FPs
    filter_main_app_sdb:
        CommandLine|endswith: '\system32\PcaSvc.dll,PcaPatchSdbTask'
    filter_main_azure_managed:
        SourceHostname|endswith: '.internal.cloudapp.net'
    filter_main_svchost_update_processes:
        # Note: This require "ParentImage" data enrichment.
        ParentImage: 'C:\Windows\System32\svchost.exe'
        DestinationPort: 443
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Communication to other corporate systems that use IP addresses from public address spaces
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    Image|endswith: '\rundll32.exe'
    Initiated: 'true'

Stage 2: not filter_main_*

filter_main_local_ranges:
    DestinationIp|cidr:
        - '127.0.0.0/8'
        - '10.0.0.0/8'
        - '172.16.0.0/12'
        - '192.168.0.0/16'
        - '169.254.0.0/16'
        - '::1/128'
        - 'fe80::/10'
        - 'fc00::/7'
filter_main_ms_ranges:
    DestinationIp|cidr:
        - '20.0.0.0/8'
        - '51.103.0.0/16'
        - '51.104.0.0/16'
        - '51.105.0.0/16'
filter_main_app_sdb:
    CommandLine|endswith: '\system32\PcaSvc.dll,PcaPatchSdbTask'
filter_main_azure_managed:
    SourceHostname|endswith: '.internal.cloudapp.net'
filter_main_svchost_update_processes:
    ParentImage: 'C:\Windows\System32\svchost.exe'
    DestinationPort: 443

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \rundll32.exe corpus 94 (sigma 94)
field:"Image" kind:ends_with value:"\rundll32.exe"
Initiatedeq
  • true corpus 50 (sigma 50)
field:"Initiated" kind:eq value:"true"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
DestinationPorteq443excludes:DestinationPort field:"DestinationPort" value:"443"
ParentImageeqC:\Windows\System32\svchost.exeexcludes:ParentImage field:"ParentImage" value:"C:\Windows\System32\svchost.exe"
CommandLineends_with\system32\PcaSvc.dll,PcaPatchSdbTaskexcludes:CommandLine field:"CommandLine" value:"\system32\PcaSvc.dll,PcaPatchSdbTask"
DestinationIpcidr_match10.0.0.0/8excludes:DestinationIp field:"DestinationIp" value:"10.0.0.0/8"
DestinationIpcidr_match127.0.0.0/8excludes:DestinationIp field:"DestinationIp" value:"127.0.0.0/8"
DestinationIpcidr_match169.254.0.0/16excludes:DestinationIp field:"DestinationIp" value:"169.254.0.0/16"
DestinationIpcidr_match172.16.0.0/12excludes:DestinationIp field:"DestinationIp" value:"172.16.0.0/12"
DestinationIpcidr_match192.168.0.0/16excludes:DestinationIp field:"DestinationIp" value:"192.168.0.0/16"
DestinationIpcidr_match20.0.0.0/8excludes:DestinationIp field:"DestinationIp" value:"20.0.0.0/8"
DestinationIpcidr_match51.103.0.0/16excludes:DestinationIp field:"DestinationIp" value:"51.103.0.0/16"
DestinationIpcidr_match51.104.0.0/16excludes:DestinationIp field:"DestinationIp" value:"51.104.0.0/16"
DestinationIpcidr_match51.105.0.0/16excludes:DestinationIp field:"DestinationIp" value:"51.105.0.0/16"
DestinationIpcidr_match::1/128excludes:DestinationIp field:"DestinationIp" value:"::1/128"
DestinationIpcidr_matchfc00::/7excludes:DestinationIp field:"DestinationIp" value:"fc00::/7"
DestinationIpcidr_matchfe80::/10excludes:DestinationIp field:"DestinationIp" value:"fe80::/10"
SourceHostnameends_with.internal.cloudapp.netexcludes:SourceHostname field:"SourceHostname" value:".internal.cloudapp.net"

Security Support Provider (SSP) Added to LSA Configuration

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

Detects the addition of a SSP to the registry. Upon a reboot or API call, SSP DLLs gain access to encrypted and plaintext passwords stored in Windows.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Security Support Provider (SSP) Added to LSA Configuration
id: eeb30123-9fbd-4ee8-aaa0-2e545bbed6dc
status: test
description: |
    Detects the addition of a SSP to the registry. Upon a reboot or API call, SSP DLLs gain access to encrypted and plaintext passwords stored in Windows.
references:
    - https://powersploit.readthedocs.io/en/latest/Persistence/Install-SSP/
    - https://github.com/EmpireProject/Empire/blob/08cbd274bef78243d7a8ed6443b8364acd1fc48b/data/module_source/persistence/Install-SSP.ps1#L157
author: iwillkeepwatch
date: 2019-01-18
modified: 2026-03-30
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.t1547.005
logsource:
    category: registry_event
    product: windows
detection:
    selection:
        TargetObject|endswith:
            - '\Control\Lsa\Security Packages'
            - '\Control\Lsa\OSConfig\Security Packages'
    filter_main_msiexec:
        Image:
            - 'C:\Windows\system32\msiexec.exe'
            - 'C:\Windows\syswow64\MsiExec.exe'
    filter_main_image_null:
        Image: null
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    TargetObject|endswith:
        - '\Control\Lsa\Security Packages'
        - '\Control\Lsa\OSConfig\Security Packages'

Stage 2: not filter_main_*

filter_main_msiexec:
    Image:
        - 'C:\Windows\system32\msiexec.exe'
        - 'C:\Windows\syswow64\MsiExec.exe'
filter_main_image_null:
    Image: null

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetObjectends_with
  • \Control\Lsa\OSConfig\Security Packages
  • \Control\Lsa\Security Packages
field:"TargetObject" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ImageeqC:\Windows\system32\msiexec.exeexcludes:Image field:"Image" value:"C:\Windows\system32\msiexec.exe"
ImageeqC:\Windows\syswow64\MsiExec.exeexcludes:Image field:"Image" value:"C:\Windows\syswow64\MsiExec.exe"
Imageis_null(no value, null check)excludes:Image

Suspicious Base64 Encoded User-Agent

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

Detects suspicious encoded User-Agent strings, as seen used by some malware.

MITRE ATT&CK Coverage

Rule Body

title: Suspicious Base64 Encoded User-Agent
id: d443095b-a221-4957-a2c4-cd1756c9b747
related:
    - id: 894a8613-cf12-48b3-8e57-9085f54aa0c3
      type: derived
status: test
description: Detects suspicious encoded User-Agent strings, as seen used by some malware.
references:
    - https://deviceatlas.com/blog/list-of-user-agent-strings#desktop
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-05-04
tags:
    - attack.command-and-control
    - attack.t1071.001
logsource:
    category: proxy
detection:
    selection:
        c-useragent|startswith:
            - 'Q2hyb21l' # Chrome Encoded with offset to not include padding
            - 'QXBwbGVXZWJLaX' # AppleWebKit Encoded with offset to not include padding
            - 'RGFsdmlr' # Dalvik Encoded with offset to not include padding
            - 'TW96aWxsY'  # Mozilla Encoded with offset to not include padding (as used by YamaBot)
    condition: selection
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    c-useragent|startswith:
        - 'Q2hyb21l'
        - 'QXBwbGVXZWJLaX'
        - 'RGFsdmlr'
        - 'TW96aWxsY'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
c-useragentstarts_with
  • Q2hyb21l
  • QXBwbGVXZWJLaX
  • RGFsdmlr
  • TW96aWxsY
field:"c-useragent" kind:starts_with

System Control Panel Item Loaded From Uncommon Location

#
Status
test
Severity
high
Author
Anish Bogati
Source
github.com/SigmaHQ/sigma

Detects image load events of system control panel items (.cpl) from uncommon or non-system locations that may indicate DLL sideloading or other abuse techniques.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 7: Image loaded

Rule Body

title: System Control Panel Item Loaded From Uncommon Location
id: 2b140a5c-dc02-4bb8-b6b1-8bdb45714cde
status: test
description: |
    Detects image load events of system control panel items (.cpl) from uncommon or non-system locations that may indicate DLL sideloading or other abuse techniques.
references:
    - https://www.hexacorn.com/blog/2024/01/06/1-little-known-secret-of-fondue-exe/
    - https://www.hexacorn.com/blog/2024/01/01/1-little-known-secret-of-hdwwiz-exe/
    - https://github.com/mhaskar/FsquirtCPLPoC
    - https://securelist.com/sidewinder-apt/114089/
author: Anish Bogati
date: 2024-01-09
modified: 2026-02-17
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.execution
    - attack.stealth
    - attack.t1574.001
logsource:
    product: windows
    category: image_load
detection:
    selection:
        ImageLoaded|endswith:
            - '\appwiz.cpl' # Usually loaded by fondue.exe
            - '\bthprops.cpl' # Usually loaded by fsquirt.exe
            - '\hdwwiz.cpl' # Usually loaded by hdwwiz.exe
    filter_main_legit_location:
        ImageLoaded|startswith:
            - 'C:\Windows\Prefetch\'
            - 'C:\Windows\System32\'
            - 'C:\Windows\SysWOW64\'
            - 'C:\Windows\WinSxS\'
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Unknown
level: high
regression_tests_path: regression_data/rules/windows/image_load/image_load_side_load_cpl_from_non_system_location/info.yml

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    ImageLoaded|endswith:
        - '\appwiz.cpl'
        - '\bthprops.cpl'
        - '\hdwwiz.cpl'

Stage 2: not filter_main_legit_location

filter_main_legit_location:
    ImageLoaded|startswith:
        - 'C:\Windows\Prefetch\'
        - 'C:\Windows\System32\'
        - 'C:\Windows\SysWOW64\'
        - 'C:\Windows\WinSxS\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ImageLoadedends_with
  • \appwiz.cpl
  • \bthprops.cpl
  • \hdwwiz.cpl
field:"ImageLoaded" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ImageLoadedstarts_withC:\Windows\Prefetch\excludes:ImageLoaded field:"ImageLoaded" value:"C:\Windows\Prefetch\"
ImageLoadedstarts_withC:\Windows\SysWOW64\excludes:ImageLoaded field:"ImageLoaded" value:"C:\Windows\SysWOW64\"
ImageLoadedstarts_withC:\Windows\System32\excludes:ImageLoaded field:"ImageLoaded" value:"C:\Windows\System32\"
ImageLoadedstarts_withC:\Windows\WinSxS\excludes:ImageLoaded field:"ImageLoaded" value:"C:\Windows\WinSxS\"

System crash behavior manipulation - WMImplant (registry)

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

Detects scenarios where an attacker abuses the Windows "system failure and recovery" capacities (CrashControl) to store information or to establish persistence.

Known False Positives

  • Forensic, BSOD investigation

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: System crash behavior manipulation - WMImplant (registry)
description: Detects scenarios where an attacker abuses the Windows "system failure and recovery" capacities (CrashControl) to store information or to establish persistence.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1546-Event%20Triggered%20Execution
- https://github.com/FortyNorthSecurity/WMImplant/
- https://docs.microsoft.com/en-us/windows/client-management/system-failure-recovery-options
- https://mathieubuisson.github.io/crash-behaviour-with-powershell/
- https://fortynorthsecurity.com/blog/an-introduction-to-wmimplant-post-exploitation/
- https://fr.slideshare.net/CTruncer/blackhat-usa-2019-wmimplant-an-offensive-use-case-of-wmi
- https://securityaffairs.co/wordpress/117001/ics-scada/ot-network-hack-smart-meters.html
- https://logrhythm.com/blog/bad-rabbit-ransomware-technical-analysis/
- https://www.darkoperator.com/blog/2017/10/14/basics-of-tracking-wmi-activity
- https://lolbas-project.github.io/lolbas/Binaries/Wmic/
tags:
- attack.persistence
- attack.t1546.003
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category: registry_event
detection: # full command: "wmic recoveros set AutoReboot = False"
  selection:
    Image|endswith: \wmiprvse.exe
    EventType: SetValue
    TargetObject|endswith:
      - \CurrentControlSet\Control\CrashControl\AutoReboot
      - \CurrentControlSet\Control\CrashControl\CrashDumpEnabled
      - \CurrentControlSet\Control\CrashControl\DumpFile
      - \CurrentControlSet\Control\CrashControl\KernelDumpOnly
      - \CurrentControlSet\Control\CrashControl\LogEvent
      - \CurrentControlSet\Control\CrashControl\MiniDumpDir
      - \CurrentControlSet\Control\CrashControl\Overwrite
      - \CurrentControlSet\Control\CrashControl\SendAlert
  condition: selection
falsepositives:
- Forensic, BSOD investigation
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
  Image|endswith: \wmiprvse.exe
  EventType: SetValue
  TargetObject|endswith:
    - \CurrentControlSet\Control\CrashControl\AutoReboot
    - \CurrentControlSet\Control\CrashControl\CrashDumpEnabled
    - \CurrentControlSet\Control\CrashControl\DumpFile
    - \CurrentControlSet\Control\CrashControl\KernelDumpOnly
    - \CurrentControlSet\Control\CrashControl\LogEvent
    - \CurrentControlSet\Control\CrashControl\MiniDumpDir
    - \CurrentControlSet\Control\CrashControl\Overwrite
    - \CurrentControlSet\Control\CrashControl\SendAlert

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventTypeeq
  • SetValue corpus 6 (sigma 6)
field:"EventType" kind:eq value:"SetValue"
Imageends_with
  • \wmiprvse.exe corpus 2 (sigma 2)
field:"Image" kind:ends_with value:"\wmiprvse.exe"
TargetObjectends_with
  • \CurrentControlSet\Control\CrashControl\AutoReboot
  • \CurrentControlSet\Control\CrashControl\CrashDumpEnabled
  • \CurrentControlSet\Control\CrashControl\DumpFile
  • \CurrentControlSet\Control\CrashControl\KernelDumpOnly
  • \CurrentControlSet\Control\CrashControl\LogEvent
  • \CurrentControlSet\Control\CrashControl\MiniDumpDir
  • \CurrentControlSet\Control\CrashControl\Overwrite
  • \CurrentControlSet\Control\CrashControl\SendAlert
field:"TargetObject" kind:ends_with

System time changed (PowerShell)

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

Detects scenarios where an attacker attempts to change the system time to evade defense.

Known False Positives

  • None

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: System time changed (PowerShell)
description: Detects scenarios where an attacker attempts to change the system time to evade defense.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0005-Defense%20Evasion/T1070.006-Timestomp
- https://blog.menasec.net/2019/02/threat-hunting-19-suspicious-system.html
- https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/set-date
tags:
- attack.defense_evasion
- attack.t1070.006
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category:
    - ps_module
    - ps_classic_script
    - ps_script
detection: # full command: Set-Date -Date (Get-Date).AddDays(3)
  selection_powershell_native:
    EventID: 800
    EventData|contains: Set-Date
    EventData|contains:
      - -Date
      - -Adjust

  selection_powershell_modern:
    EventID: 4103
    Payload|contains: Set-Date
    Payload|contains:
      - -Date
      - -Adjust

  selection_powershell_block:
    EventID: 4104
    ScriptBlockText|contains: Set-Date
    ScriptBlockText|contains:
      - -Date
      - -Adjust

  condition: selection_powershell_native or selection_powershell_modern or selection_powershell_block
falsepositives:
- None
level: medium

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: Set-Date
  EventData|contains:
    - -Date
    - -Adjust

Stage 2: selection_powershell_modern

selection_powershell_modern:
  EventID: 4103
  Payload|contains: Set-Date
  Payload|contains:
    - -Date
    - -Adjust

Stage 3: selection_powershell_block

selection_powershell_block:
  EventID: 4104
  ScriptBlockText|contains: Set-Date
  ScriptBlockText|contains:
    - -Date
    - -Adjust

Indicators

These rows show field, operator, and value matches.

Uncommon System Information Discovery Via Wmic.EXE

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

Detects the use of the WMI command-line (WMIC) utility to identify and display various system information, including OS, CPU, GPU, and disk drive names; memory capacity; display resolution; and baseboard, BIOS, and GPU driver products/versions. Some of these commands were used by Aurora Stealer in late 2022/early 2023.

MITRE ATT&CK Coverage

TacticTechniques
Discovery

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Uncommon System Information Discovery Via Wmic.EXE
id: 9d5a1274-922a-49d0-87f3-8c653483b909
related:
    - id: d85ecdd7-b855-4e6e-af59-d9c78b5b861e
      type: derived
status: test
description: |
    Detects the use of the WMI command-line (WMIC) utility to identify and display various system information,
    including OS, CPU, GPU, and disk drive names; memory capacity; display resolution; and baseboard, BIOS,
    and GPU driver products/versions.
    Some of these commands were used by Aurora Stealer in late 2022/early 2023.
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/a2ccd19c37d0278b4ffa8583add3cf52060a5418/atomics/T1082/T1082.md#atomic-test-25---system-information-discovery-with-wmic
    - https://nwgat.ninja/getting-system-information-with-wmic-on-windows/
    - https://blog.sekoia.io/aurora-a-rising-stealer-flying-under-the-radar
    - https://blog.cyble.com/2023/01/18/aurora-a-stealer-using-shapeshifting-tactics/
    - https://app.any.run/tasks/a6aa0057-82ec-451f-8f99-55650ca537da/
    - https://www.virustotal.com/gui/file/d6f6bc10ae0e634ed4301d584f61418cee18e5d58ad9af72f8aa552dc4aaeca3/behavior
author: TropChaud
date: 2023-01-26
modified: 2023-12-19
tags:
    - attack.discovery
    - attack.t1082
logsource:
    category: process_creation
    product: windows
detection:
    selection_wmic:
        - Description: 'WMI Commandline Utility'
        - OriginalFileName: 'wmic.exe'
        - Image|endswith: '\WMIC.exe'
    selection_commands:
        CommandLine|contains:
            - 'LOGICALDISK get Name,Size,FreeSpace'
            - 'os get Caption,OSArchitecture,Version'
    condition: all of selection_*
falsepositives:
    - Unknown
level: medium
simulation:
    - type: atomic-red-team
      name: System Information Discovery with WMIC
      technique: T1082
      atomic_guid: 8851b73a-3624-4bf7-8704-aa312411565c
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_wmic_recon_system_info_uncommon/info.yml

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_wmic

selection_wmic:
    - Description: 'WMI Commandline Utility'
    - OriginalFileName: 'wmic.exe'
    - Image|endswith: '\WMIC.exe'

Stage 2: selection_commands

selection_commands:
    CommandLine|contains:
        - 'LOGICALDISK get Name,Size,FreeSpace'
        - 'os get Caption,OSArchitecture,Version'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • LOGICALDISK get Name,Size,FreeSpace
  • os get Caption,OSArchitecture,Version
field:"CommandLine" kind:match
Descriptioneq
  • WMI Commandline Utility corpus 2 (sigma 2)
field:"Description" kind:eq value:"WMI Commandline Utility"
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"

User Added To Group With CA Policy Modification Access

#
Status
test
Severity
medium
Author
Mark Morowczynski '@markmorow', Thomas Detzner '@tdetzner'
Source
github.com/SigmaHQ/sigma

Monitor and alert on group membership additions of groups that have CA policy modification access

Known False Positives

  • User removed from the group is approved

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: User Added To Group With CA Policy Modification Access
id: 91c95675-1f27-46d0-bead-d1ae96b97cd3
status: test
description: Monitor and alert on group membership additions of groups that have CA policy modification access
references:
    - https://learn.microsoft.com/en-us/entra/architecture/security-operations-infrastructure#conditional-access
author: Mark Morowczynski '@markmorow', Thomas Detzner '@tdetzner'
date: 2022-08-04
tags:
    - attack.privilege-escalation
    - attack.credential-access
    - attack.persistence
    - attack.defense-impairment
    - attack.t1548
    - attack.t1556
logsource:
    product: azure
    service: auditlogs
detection:
    selection:
        properties.message: Add member from group
    condition: selection
falsepositives:
    - User removed from the group is approved
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    properties.message: Add member from group

Indicators

These rows show field, operator, and value matches.

User enumeration and creation related to Manic Menagerie 2.0 (via cmdline)

#

Wab/Wabmig Unusual Parent Or Child Processes

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

Detects unusual parent or children of the wab.exe (Windows Contacts) and Wabmig.exe (Microsoft Address Book Import Tool) processes as seen being used with bumblebee activity

MITRE ATT&CK Coverage

TacticTechniques
ExecutionNo specific technique
StealthNo specific technique

Telemetry Coverage

Rule Body

title: Wab/Wabmig Unusual Parent Or Child Processes
id: 63d1ccc0-2a43-4f4b-9289-361b308991ff
status: test
description: Detects unusual parent or children of the wab.exe (Windows Contacts) and Wabmig.exe (Microsoft Address Book Import Tool) processes as seen being used with bumblebee activity
references:
    - https://thedfirreport.com/2022/08/08/bumblebee-roasts-its-way-to-domain-admin/
    - https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/bumblebee-loader-cybercrime
    - https://thedfirreport.com/2022/09/26/bumblebee-round-two/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-12
modified: 2022-09-27
tags:
    - attack.execution
    - attack.stealth
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent:
        ParentImage|endswith:
            # Add more if known
            - \WmiPrvSE.exe
            - \svchost.exe
            - \dllhost.exe
        Image|endswith:
            - '\wab.exe'
            - '\wabmig.exe' # (Microsoft Address Book Import Tool)
    selection_child:
        # You can add specific suspicious child processes (such as cmd, powershell...) to increase the accuracy
        ParentImage|endswith:
            - '\wab.exe'
            - '\wabmig.exe' # (Microsoft Address Book Import Tool)
    condition: 1 of selection_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

1 of selection_*

Stage 1: selection_parent

selection_parent:
    ParentImage|endswith:
        - \WmiPrvSE.exe
        - \svchost.exe
        - \dllhost.exe
    Image|endswith:
        - '\wab.exe'
        - '\wabmig.exe'

Stage 2: selection_child

selection_child:
    ParentImage|endswith:
        - '\wab.exe'
        - '\wabmig.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \wab.exe corpus 2 (sigma 2)
  • \wabmig.exe corpus 2 (sigma 2)
field:"Image" kind:ends_with
ParentImageends_with
  • \WmiPrvSE.exe corpus 8 (sigma 8)
  • \dllhost.exe corpus 7 (sigma 7)
  • \svchost.exe corpus 14 (sigma 14)
  • \wab.exe
  • \wabmig.exe
field:"ParentImage" kind:ends_with

Windows native backup size re-configuration

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

Detects scenarios where an attacker attempts to delete existing Windows native backup by reducing the allocated backup storage.

Known False Positives

  • administrator cleaning outdated backup

MITRE ATT&CK Coverage

TacticTechniques
Impact

Telemetry Coverage

Rule Body

title: Windows native backup size re-configuration
description: Detects scenarios where an attacker attempts to delete existing Windows native backup by reducing the allocated backup storage.
references:
- https://www.picussecurity.com/resource/blog/how-to-beat-nefilim-ransomware-attacks
- https://www.itechtics.com/volume-shadow-copies/
- https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wbadmin
- https://www.picussecurity.com/resource/blog/technique-to-delete-volume-shadow-copies-deviceiocontrol
tags:
- attack.impact
- attack.t1490
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  selection: # vssadmin resize shadowstorage /for=c: /on=c: /maxsize=401MB
    EventID: 4688
    NewProcessName|endswith: \Windows\System32\vssadmin.exe
    CommandLine|contains|all:
      - resize
      - shadowstorage
  condition: selection
falsepositives:
- administrator cleaning outdated backup
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
  EventID: 4688
  NewProcessName|endswith: \Windows\System32\vssadmin.exe
  CommandLine|contains|all:
    - resize
    - shadowstorage

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • resize corpus 9 (elastic 5, sigma 3, splunk 1)
  • shadowstorage corpus 4 (sigma 3, splunk 1)
field:"CommandLine" kind:match
NewProcessNameends_with
  • \Windows\System32\vssadmin.exe
field:"Image" kind:ends_with value:"\Windows\System32\vssadmin.exe"

Back to all Sigma rules