Detection rules › Sigma

Sigma rules: 0p

AWS S3 Bucket Versioning Disable

#
Status
test
Severity
medium
Author
Sean Johnstone | Unit 42
Source
github.com/SigmaHQ/sigma

Detects when S3 bucket versioning is disabled. Threat actors use this technique during AWS ransomware incidents prior to deleting S3 objects.

Known False Positives

  • AWS administrator legitimately disabling bucket versioning

MITRE ATT&CK Coverage

TacticTechniques
Impact

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: AWS S3 Bucket Versioning Disable
id: a136ac98-b2bc-4189-a14d-f0d0388e57a7
status: test
description: Detects when S3 bucket versioning is disabled. Threat actors use this technique during AWS ransomware incidents prior to deleting S3 objects.
references:
    - https://invictus-ir.medium.com/ransomware-in-the-cloud-7f14805bbe82
author: Sean Johnstone | Unit 42
date: 2023-10-28
tags:
    - attack.impact
    - attack.t1490
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource: s3.amazonaws.com
        eventName: PutBucketVersioning
        requestParameters|contains: 'Suspended'
    condition: selection
falsepositives:
    - AWS administrator legitimately disabling bucket versioning
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource: s3.amazonaws.com
    eventName: PutBucketVersioning
    requestParameters|contains: 'Suspended'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
eventNameeq
  • PutBucketVersioning corpus 3 (splunk 2, sigma 1)
field:"aws::eventName" kind:eq value:"PutBucketVersioning"
eventSourceeq
  • s3.amazonaws.com corpus 7 (sigma 3, splunk 3, panther 1)
field:"aws::eventSource" kind:eq value:"s3.amazonaws.com"
requestParametersmatch
  • Suspended
field:"aws::requestParameters" kind:match value:"Suspended"

CurrentVersion NT Autorun Keys Modification

#
Status
test
Severity
medium
Author
Victor Sergeev, Daniil Yugoslavskiy, Gleb Sukhodolskiy, Timur Zinniatullin, oscd.community, Tim Shelton, frack113 (split)
Source
github.com/SigmaHQ/sigma

Detects modification of autostart extensibility point (ASEP) in registry.

Known False Positives

  • Legitimate software automatically (mostly, during installation) sets up autorun keys for legitimate reason
  • Legitimate administrator sets up autorun keys for legitimate reason

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: CurrentVersion NT Autorun Keys Modification
id: cbf93e5d-ca6c-4722-8bea-e9119007c248
related:
    - id: 17f878b8-9968-4578-b814-c4217fc5768c
      type: obsolete
status: test
description: Detects modification of autostart extensibility point (ASEP) in registry.
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1547.001/T1547.001.md
    - https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns
    - https://gist.github.com/GlebSukhodolskiy/0fc5fa5f482903064b448890db1eaf9d # a list with registry keys
author: Victor Sergeev, Daniil Yugoslavskiy, Gleb Sukhodolskiy, Timur Zinniatullin, oscd.community, Tim Shelton, frack113 (split)
date: 2019-10-25
modified: 2025-10-22
tags:
    - attack.privilege-escalation
    - attack.persistence
    - attack.t1547.001
logsource:
    category: registry_set
    product: windows
detection:
    selection_nt_current_version_base:
        TargetObject|contains: '\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
    selection_nt_current_version:
        TargetObject|contains:
            - '\Winlogon\VmApplet'
            - '\Winlogon\Userinit'
            - '\Winlogon\Taskman'
            - '\Winlogon\Shell'
            - '\Winlogon\GpExtensions'
            - '\Winlogon\AppSetup'
            - '\Winlogon\AlternateShells\AvailableShells'
            - '\Windows\IconServiceLib'
            - '\Windows\Appinit_Dlls'
            - '\Image File Execution Options' # Covered in better details in 36803969-5421-41ec-b92f-8500f79c23b0
            - '\Font Drivers'
            - '\Drivers32'
            - '\Windows\Run'
            - '\Windows\Load'
    filter_main_empty:
        Details: '(Empty)'
    filter_main_null:
        Details: null
    filter_main_poqexec:
        Image: 'C:\Windows\System32\poqexec.exe'
    filter_main_legitimate_subkey:  # Legitimately used subkeys of \Image File Execution Options, which are not used for persistence (see https://pentestlab.blog/2020/01/13/persistence-image-file-execution-options-injection/)
        TargetObject|contains: '\Image File Execution Options\'
        TargetObject|endswith:
            - '\DisableExceptionChainValidation'
            - '\MitigationOptions'
    filter_main_security_extension_dc:
        Image: 'C:\Windows\system32\svchost.exe'
        TargetObject|contains:
            - '\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\PreviousPolicyAreas'
            - '\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\MaxNoGPOListChangesInterval'
        Details:
            - 'DWORD (0x00000001)'
            - 'DWORD (0x00000009)'
            - 'DWORD (0x000003c0)'
    filter_main_runtimebroker:
        Image: 'C:\Windows\System32\RuntimeBroker.exe'
        TargetObject|contains: '\runtimebroker.exe\Microsoft.Windows.ShellExperienceHost'
    filter_optional_edge:
        Image|startswith: 'C:\Program Files (x86)\Microsoft\Temp\'
        Image|endswith: '\MicrosoftEdgeUpdate.exe'
    filter_optional_avguard:
        Image|startswith:
            - 'C:\Program Files (x86)\Avira\Antivirus\avguard.exe'
            - 'C:\Program Files\Avira\Antivirus\avguard.exe'
        TargetObject|contains: 'SOFTWARE\WOW6432Node\Avira\Antivirus\Overwrite_Keys\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\'
        TargetObject|endswith:
            - '\userinit\UseAsDefault'
            - '\shell\UseAsDefault'
        Details:
            - 'explorer.exe'
            - 'C:\Windows\system32\userinit.exe,'
    filter_optional_msoffice:
        - TargetObject|contains:
              - '\ClickToRunStore\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\'
              - '\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Windows NT\CurrentVersion\'
        - Image:
              - 'C:\Program Files\Microsoft Office\root\integration\integrator.exe'
              - 'C:\Program Files (x86)\Microsoft Office\root\integration\integrator.exe'
    filter_optional_officeclicktorun:
        Image|startswith:
            - 'C:\Program Files\Common Files\Microsoft Shared\ClickToRun\'
            - 'C:\Program Files\Common Files\Microsoft Shared\ClickToRun\Updates\'
        Image|endswith: '\OfficeClickToRun.exe'
    filter_optional_ngen:
        Image|startswith: 'C:\Windows\Microsoft.NET\Framework'
        Image|endswith: '\ngen.exe'
    filter_optional_onedrive:
        Image|endswith: '\AppData\Local\Microsoft\OneDrive\StandaloneUpdater\OneDriveSetup.exe'
        TargetObject|endswith: '\Microsoft\Windows\CurrentVersion\RunOnce\Delete Cached Update Binary'
        Details|startswith: 'C:\Windows\system32\cmd.exe /q /c del /q "C:\Users\'
        Details|endswith: '\AppData\Local\Microsoft\OneDrive\Update\OneDriveSetup.exe"'
    condition: all of selection_* and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Legitimate software automatically (mostly, during installation) sets up autorun keys for legitimate reason
    - Legitimate administrator sets up autorun keys for legitimate reason
level: medium
regression_tests_path: regression_data/rules/windows/registry/registry_set/registry_set_asep_reg_keys_modification_currentversion_nt/info.yml

Stages and Predicates

Stage 0: condition

all of selection_* and not 1 of filter_main_* and not 1 of filter_optional_*

Stage 1: selection_nt_current_version_base

selection_nt_current_version_base:
    TargetObject|contains: '\SOFTWARE\Microsoft\Windows NT\CurrentVersion'

Stage 2: selection_nt_current_version

selection_nt_current_version:
    TargetObject|contains:
        - '\Winlogon\VmApplet'
        - '\Winlogon\Userinit'
        - '\Winlogon\Taskman'
        - '\Winlogon\Shell'
        - '\Winlogon\GpExtensions'
        - '\Winlogon\AppSetup'
        - '\Winlogon\AlternateShells\AvailableShells'
        - '\Windows\IconServiceLib'
        - '\Windows\Appinit_Dlls'
        - '\Image File Execution Options'
        - '\Font Drivers'
        - '\Drivers32'
        - '\Windows\Run'
        - '\Windows\Load'

Stage 3: not filter_main_*

filter_main_empty:
    Details: '(Empty)'
filter_main_null:
    Details: null
filter_main_poqexec:
    Image: 'C:\Windows\System32\poqexec.exe'
filter_main_legitimate_subkey:
    TargetObject|contains: '\Image File Execution Options\'
    TargetObject|endswith:
        - '\DisableExceptionChainValidation'
        - '\MitigationOptions'
filter_main_security_extension_dc:
    Image: 'C:\Windows\system32\svchost.exe'
    TargetObject|contains:
        - '\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\PreviousPolicyAreas'
        - '\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\MaxNoGPOListChangesInterval'
    Details:
        - 'DWORD (0x00000001)'
        - 'DWORD (0x00000009)'
        - 'DWORD (0x000003c0)'
filter_main_runtimebroker:
    Image: 'C:\Windows\System32\RuntimeBroker.exe'
    TargetObject|contains: '\runtimebroker.exe\Microsoft.Windows.ShellExperienceHost'

Stage 4: not filter_optional_*

filter_optional_edge:
    Image|startswith: 'C:\Program Files (x86)\Microsoft\Temp\'
    Image|endswith: '\MicrosoftEdgeUpdate.exe'
filter_optional_avguard:
    Image|startswith:
        - 'C:\Program Files (x86)\Avira\Antivirus\avguard.exe'
        - 'C:\Program Files\Avira\Antivirus\avguard.exe'
    TargetObject|contains: 'SOFTWARE\WOW6432Node\Avira\Antivirus\Overwrite_Keys\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\'
    TargetObject|endswith:
        - '\userinit\UseAsDefault'
        - '\shell\UseAsDefault'
    Details:
        - 'explorer.exe'
        - 'C:\Windows\system32\userinit.exe,'
filter_optional_msoffice:
    - TargetObject|contains:
          - '\ClickToRunStore\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\'
          - '\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Windows NT\CurrentVersion\'
    - Image:
          - 'C:\Program Files\Microsoft Office\root\integration\integrator.exe'
          - 'C:\Program Files (x86)\Microsoft Office\root\integration\integrator.exe'
filter_optional_officeclicktorun:
    Image|startswith:
        - 'C:\Program Files\Common Files\Microsoft Shared\ClickToRun\'
        - 'C:\Program Files\Common Files\Microsoft Shared\ClickToRun\Updates\'
    Image|endswith: '\OfficeClickToRun.exe'
filter_optional_ngen:
    Image|startswith: 'C:\Windows\Microsoft.NET\Framework'
    Image|endswith: '\ngen.exe'
filter_optional_onedrive:
    Image|endswith: '\AppData\Local\Microsoft\OneDrive\StandaloneUpdater\OneDriveSetup.exe'
    TargetObject|endswith: '\Microsoft\Windows\CurrentVersion\RunOnce\Delete Cached Update Binary'
    Details|startswith: 'C:\Windows\system32\cmd.exe /q /c del /q "C:\Users\'
    Details|endswith: '\AppData\Local\Microsoft\OneDrive\Update\OneDriveSetup.exe"'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetObjectmatch
  • \Drivers32 corpus 2 (sigma 2)
  • \Font Drivers
  • \Image File Execution Options corpus 2 (sigma 2)
  • \SOFTWARE\Microsoft\Windows NT\CurrentVersion
  • \Windows\Appinit_Dlls corpus 2 (sigma 2)
  • \Windows\IconServiceLib
  • \Windows\Load
  • \Windows\Run
  • \Winlogon\AlternateShells\AvailableShells
  • \Winlogon\AppSetup
  • \Winlogon\GpExtensions
  • \Winlogon\Shell
  • \Winlogon\Taskman
  • \Winlogon\Userinit
  • \Winlogon\VmApplet
field:"TargetObject" kind:match

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
DetailseqDWORD (0x00000001)excludes:Details field:"Details" value:"DWORD (0x00000001)"
DetailseqDWORD (0x00000009)excludes:Details field:"Details" value:"DWORD (0x00000009)"
DetailseqDWORD (0x000003c0)excludes:Details field:"Details" value:"DWORD (0x000003c0)"
TargetObjectmatch\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\MaxNoGPOListChangesIntervalexcludes:TargetObject field:"TargetObject" value:"\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\MaxNoGPOListChangesInterval"
TargetObjectmatch\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\PreviousPolicyAreasexcludes:TargetObject field:"TargetObject" value:"\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}\PreviousPolicyAreas"
ImageeqC:\Windows\system32\svchost.exeexcludes:Image field:"Image" value:"C:\Windows\system32\svchost.exe"
TargetObjectends_with\DisableExceptionChainValidationexcludes:TargetObject field:"TargetObject" value:"\DisableExceptionChainValidation"
TargetObjectends_with\MitigationOptionsexcludes:TargetObject field:"TargetObject" value:"\MitigationOptions"
TargetObjectmatch\Image File Execution Options\excludes:TargetObject field:"TargetObject" value:"\Image File Execution Options\"
ImageeqC:\Windows\System32\RuntimeBroker.exeexcludes:Image field:"Image" value:"C:\Windows\System32\RuntimeBroker.exe"
TargetObjectmatch\runtimebroker.exe\Microsoft.Windows.ShellExperienceHostexcludes:TargetObject field:"TargetObject" value:"\runtimebroker.exe\Microsoft.Windows.ShellExperienceHost"
Detailseq(Empty)excludes:Details field:"Details" value:"(Empty)"
Detailsis_null(no value, null check)excludes:Details
ImageeqC:\Windows\System32\poqexec.exeexcludes:Image field:"Image" value:"C:\Windows\System32\poqexec.exe"
DetailseqC:\Windows\system32\userinit.exe,excludes:Details field:"Details" value:"C:\Windows\system32\userinit.exe,"
Detailseqexplorer.exeexcludes:Details field:"Details" value:"explorer.exe"
Imagestarts_withC:\Program Files (x86)\Avira\Antivirus\avguard.exeexcludes:Image field:"Image" value:"C:\Program Files (x86)\Avira\Antivirus\avguard.exe"
Imagestarts_withC:\Program Files\Avira\Antivirus\avguard.exeexcludes:Image field:"Image" value:"C:\Program Files\Avira\Antivirus\avguard.exe"
TargetObjectends_with\shell\UseAsDefaultexcludes:TargetObject field:"TargetObject" value:"\shell\UseAsDefault"
TargetObjectends_with\userinit\UseAsDefaultexcludes:TargetObject field:"TargetObject" value:"\userinit\UseAsDefault"
TargetObjectmatchSOFTWARE\WOW6432Node\Avira\Antivirus\Overwrite_Keys\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\excludes:TargetObject field:"TargetObject" value:"SOFTWARE\WOW6432Node\Avira\Antivirus\Overwrite_Keys\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\"
Imagestarts_withC:\Program Files\Common Files\Microsoft Shared\ClickToRun\excludes:Image field:"Image" value:"C:\Program Files\Common Files\Microsoft Shared\ClickToRun\"
Imagestarts_withC:\Program Files\Common Files\Microsoft Shared\ClickToRun\Updates\excludes:Image field:"Image" value:"C:\Program Files\Common Files\Microsoft Shared\ClickToRun\Updates\"
Imageends_with\OfficeClickToRun.exeexcludes:Image field:"Image" value:"\OfficeClickToRun.exe"
Detailsends_with\AppData\Local\Microsoft\OneDrive\Update\OneDriveSetup.exe"excludes:Details
Detailsstarts_withC:\Windows\system32\cmd.exe /q /c del /q "C:\Users\excludes:Details
Imageends_with\AppData\Local\Microsoft\OneDrive\StandaloneUpdater\OneDriveSetup.exeexcludes:Image field:"Image" value:"\AppData\Local\Microsoft\OneDrive\StandaloneUpdater\OneDriveSetup.exe"
TargetObjectends_with\Microsoft\Windows\CurrentVersion\RunOnce\Delete Cached Update Binaryexcludes:TargetObject field:"TargetObject" value:"\Microsoft\Windows\CurrentVersion\RunOnce\Delete Cached Update Binary"
Imageends_with\MicrosoftEdgeUpdate.exeexcludes:Image field:"Image" value:"\MicrosoftEdgeUpdate.exe"
Imagestarts_withC:\Program Files (x86)\Microsoft\Temp\excludes:Image field:"Image" value:"C:\Program Files (x86)\Microsoft\Temp\"
Imageends_with\ngen.exeexcludes:Image field:"Image" value:"\ngen.exe"
Imagestarts_withC:\Windows\Microsoft.NET\Frameworkexcludes:Image field:"Image" value:"C:\Windows\Microsoft.NET\Framework"
ImageeqC:\Program Files (x86)\Microsoft Office\root\integration\integrator.exeexcludes:Image field:"Image" value:"C:\Program Files (x86)\Microsoft Office\root\integration\integrator.exe"
ImageeqC:\Program Files\Microsoft Office\root\integration\integrator.exeexcludes:Image field:"Image" value:"C:\Program Files\Microsoft Office\root\integration\integrator.exe"
TargetObjectmatch\ClickToRunStore\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\excludes:TargetObject field:"TargetObject" value:"\ClickToRunStore\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
TargetObjectmatch\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Windows NT\CurrentVersion\excludes:TargetObject field:"TargetObject" value:"\ClickToRun\REGISTRY\MACHINE\Software\Microsoft\Windows NT\CurrentVersion\"

Disable Windows Defender Functionalities Via Registry Keys

#
Status
test
Severity
high
Author
AlertIQ, Ján Trenčanský, frack113, Nasreddine Bencherchali, Swachchhanda Shrawan Poudel
Source
github.com/SigmaHQ/sigma

Detects when attackers or tools disable Windows Defender functionalities via the Windows registry

Known False Positives

  • Administrator actions via the Windows Defender interface
  • Third party Antivirus

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Telemetry Coverage

Rule Body

title: Disable Windows Defender Functionalities Via Registry Keys
id: 0eb46774-f1ab-4a74-8238-1155855f2263
related:
    - id: a64e4198-c1c8-46a5-bc9c-324c86455fd4
      type: obsolete
    - id: fd115e64-97c7-491f-951c-fc8da7e042fa
      type: obsolete
status: test
description: Detects when attackers or tools disable Windows Defender functionalities via the Windows registry
references:
    - https://thedfirreport.com/2021/10/18/icedid-to-xinglocker-ransomware-in-24-hours/
    - https://gist.github.com/anadr/7465a9fde63d41341136949f14c21105
    - https://admx.help/?Category=Windows_7_2008R2&Policy=Microsoft.Policies.WindowsDefender::SpyNetReporting
    - https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/ransomware-hive-conti-avoslocker
    - https://www.tenforums.com/tutorials/32236-enable-disable-microsoft-defender-pua-protection-windows-10-a.html
    - https://www.tenforums.com/tutorials/105533-enable-disable-windows-defender-exploit-protection-settings.html
    - https://www.tenforums.com/tutorials/123792-turn-off-tamper-protection-microsoft-defender-antivirus.html
    - https://securelist.com/key-group-ransomware-samples-and-telegram-schemes/114025/
author: AlertIQ, Ján Trenčanský, frack113, Nasreddine Bencherchali, Swachchhanda Shrawan Poudel
date: 2022-08-01
modified: 2024-10-07
tags:
    - attack.defense-impairment
    - attack.t1685
logsource:
    product: windows
    category: registry_set
detection:
    selection_main:
        TargetObject|contains:
            - '\SOFTWARE\Microsoft\Windows Defender\'
            - '\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\'
            - '\SOFTWARE\Policies\Microsoft\Windows Defender\'
    selection_dword_1:
        TargetObject|endswith:
            - '\DisableAntiSpyware'
            - '\DisableAntiVirus'
            - '\DisableBehaviorMonitoring'
            - '\DisableBlockAtFirstSeen'
            - '\DisableEnhancedNotifications'
            - '\DisableIntrusionPreventionSystem'
            - '\DisableIOAVProtection'
            - '\DisableOnAccessProtection'
            - '\DisableRealtimeMonitoring'
            - '\DisableScanOnRealtimeEnable'
            - '\DisableScriptScanning'
        Details: 'DWORD (0x00000001)'
    selection_dword_0:
        TargetObject|endswith:
            - '\DisallowExploitProtectionOverride'
            - '\Features\TamperProtection'
            - '\MpEngine\MpEnablePus'
            - '\PUAProtection'
            - '\Signature Update\ForceUpdateFromMU'
            - '\SpyNet\SpynetReporting'
            - '\SpyNet\SubmitSamplesConsent'
            - '\Windows Defender Exploit Guard\Controlled Folder Access\EnableControlledFolderAccess'
        Details: 'DWORD (0x00000000)'
    filter_optional_symantec:
        Image|startswith: 'C:\Program Files\Symantec\Symantec Endpoint Protection\'
        Image|endswith: '\sepWscSvc64.exe'
    condition: selection_main and 1 of selection_dword_* and not 1 of filter_optional_*
falsepositives:
    - Administrator actions via the Windows Defender interface
    - Third party Antivirus
level: high
regression_tests_path: regression_data/rules/windows/registry/registry_set/registry_set_windows_defender_tamper/info.yml

Stages and Predicates

Stage 0: condition

selection_main and 1 of selection_dword_* and not 1 of filter_optional_*

Stage 1: selection_main

selection_main:
    TargetObject|contains:
        - '\SOFTWARE\Microsoft\Windows Defender\'
        - '\SOFTWARE\Policies\Microsoft\Windows Defender Security Center\'
        - '\SOFTWARE\Policies\Microsoft\Windows Defender\'

Stage 2: selection_dword_1

selection_dword_1:
    TargetObject|endswith:
        - '\DisableAntiSpyware'
        - '\DisableAntiVirus'
        - '\DisableBehaviorMonitoring'
        - '\DisableBlockAtFirstSeen'
        - '\DisableEnhancedNotifications'
        - '\DisableIntrusionPreventionSystem'
        - '\DisableIOAVProtection'
        - '\DisableOnAccessProtection'
        - '\DisableRealtimeMonitoring'
        - '\DisableScanOnRealtimeEnable'
        - '\DisableScriptScanning'
    Details: 'DWORD (0x00000001)'

Stage 3: selection_dword_0

selection_dword_0:
    TargetObject|endswith:
        - '\DisallowExploitProtectionOverride'
        - '\Features\TamperProtection'
        - '\MpEngine\MpEnablePus'
        - '\PUAProtection'
        - '\Signature Update\ForceUpdateFromMU'
        - '\SpyNet\SpynetReporting'
        - '\SpyNet\SubmitSamplesConsent'
        - '\Windows Defender Exploit Guard\Controlled Folder Access\EnableControlledFolderAccess'
    Details: 'DWORD (0x00000000)'

Stage 4: not filter_optional_symantec

filter_optional_symantec:
    Image|startswith: 'C:\Program Files\Symantec\Symantec Endpoint Protection\'
    Image|endswith: '\sepWscSvc64.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Detailseq
  • DWORD (0x00000000) corpus 36 (sigma 36)
  • DWORD (0x00000001) corpus 36 (sigma 36)
field:"Details" kind:eq
TargetObjectends_with
  • \DisableAntiSpyware
  • \DisableAntiVirus
  • \DisableBehaviorMonitoring
  • \DisableBlockAtFirstSeen
  • \DisableEnhancedNotifications
  • \DisableIOAVProtection
  • \DisableIntrusionPreventionSystem
  • \DisableOnAccessProtection
  • \DisableRealtimeMonitoring
  • \DisableScanOnRealtimeEnable
  • \DisableScriptScanning
  • \DisallowExploitProtectionOverride
  • \Features\TamperProtection
  • \MpEngine\MpEnablePus
  • \PUAProtection
  • \Signature Update\ForceUpdateFromMU
  • \SpyNet\SpynetReporting
  • \SpyNet\SubmitSamplesConsent
  • \Windows Defender Exploit Guard\Controlled Folder Access\EnableControlledFolderAccess
field:"TargetObject" kind:ends_with
TargetObjectmatch
  • \SOFTWARE\Microsoft\Windows Defender\
  • \SOFTWARE\Policies\Microsoft\Windows Defender Security Center\
  • \SOFTWARE\Policies\Microsoft\Windows Defender\
field:"TargetObject" kind:match

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with\sepWscSvc64.exeexcludes:Image field:"Image" value:"\sepWscSvc64.exe"
Imagestarts_withC:\Program Files\Symantec\Symantec Endpoint Protection\excludes:Image field:"Image" value:"C:\Program Files\Symantec\Symantec Endpoint Protection\"

DMP/HDMP File Creation

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

Detects the creation of a file with the ".dmp"/".hdmp" extension. Often created by software during a crash. Memory dumps can sometimes contain sensitive information such as credentials. It's best to determine the source of the crash.

Known False Positives

  • Likely during crashes of software

MITRE ATT&CK Coverage

TacticTechniques
StealthNo specific technique

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 11: FileCreate

Rule Body

title: DMP/HDMP File Creation
id: 3a525307-d100-48ae-b3b9-0964699d7f97
status: test
description: Detects the creation of a file with the ".dmp"/".hdmp" extension. Often created by software during a crash. Memory dumps can sometimes contain sensitive information such as credentials. It's best to determine the source of the crash.
references:
    - https://learn.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-09-07
tags:
    - detection.threat-hunting
    - attack.stealth
logsource:
    category: file_event
    product: windows
detection:
    selection:
        TargetFilename|endswith:
            - '.dmp'
            - '.dump'
            - '.hdmp'
    condition: selection
falsepositives:
    - Likely during crashes of software
level: low

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetFilename|endswith:
        - '.dmp'
        - '.dump'
        - '.hdmp'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetFilenameends_with
  • .dmp corpus 5 (sigma 5)
  • .dump corpus 2 (sigma 2)
  • .hdmp corpus 2 (sigma 2)
field:"TargetFilename" kind:ends_with

DNS Query To MEGA Hosting Website - DNS Client

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

Detects DNS queries for subdomains related to MEGA sharing website

Known False Positives

  • Legitimate DNS queries and usage of Mega

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: DNS Query To MEGA Hosting Website - DNS Client
id: 66474410-b883-415f-9f8d-75345a0a66a6
related:
    - id: 613c03ba-0779-4a53-8a1f-47f914a4ded3
      type: similar
status: test
description: Detects DNS queries for subdomains related to MEGA sharing website
references:
    - https://research.nccgroup.com/2021/05/27/detecting-rclone-an-effective-tool-for-exfiltration/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-01-16
tags:
    - attack.exfiltration
    - attack.t1567.002
logsource:
    product: windows
    service: dns-client
    definition: 'Requirements: Microsoft-Windows-DNS Client Events/Operational Event Log must be enabled/collected in order to receive the events.'
detection:
    selection:
        EventID: 3008
        QueryName|contains: 'userstorage.mega.co.nz'
    condition: selection
falsepositives:
    - Legitimate DNS queries and usage of Mega
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    EventID: 3008
    QueryName|contains: 'userstorage.mega.co.nz'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
QueryNamematch
  • userstorage.mega.co.nz corpus 2 (sigma 2)
field:"QueryName" kind:match value:"userstorage.mega.co.nz"

Equation Group C2 Communication

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

Detects communication to C2 servers mentioned in the operational notes of the ShadowBroker leak of EquationGroup C2 tools

MITRE ATT&CK Coverage

TacticTechniques
Exfiltration

Rule Body

title: Equation Group C2 Communication
id: 881834a4-6659-4773-821e-1c151789d873
status: test
description: Detects communication to C2 servers mentioned in the operational notes of the ShadowBroker leak of EquationGroup C2 tools
references:
    - https://steemit.com/shadowbrokers/@theshadowbrokers/lost-in-translation
    - https://medium.com/@msuiche/the-nsa-compromised-swift-network-50ec3000b195
author: Florian Roth (Nextron Systems)
date: 2017-04-15
modified: 2021-11-27
tags:
    - attack.exfiltration
    - attack.command-and-control
    - attack.g0020
    - attack.t1041
    - detection.emerging-threats
logsource:
    category: firewall
detection:
    selection:
        - dst_ip:
              - '69.42.98.86'
              - '89.185.234.145'
        - src_ip:
              - '69.42.98.86'
              - '89.185.234.145'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    - dst_ip:
          - '69.42.98.86'
          - '89.185.234.145'
    - src_ip:
          - '69.42.98.86'
          - '89.185.234.145'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
dst_ipeq
  • 69.42.98.86
  • 89.185.234.145
field:"dest_ip" kind:eq
src_ipeq
  • 69.42.98.86
  • 89.185.234.145
field:"src_ip" kind:eq

Group Managed Service Accounts password dump - GoldenGMSA

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

Detects scenarios where an attacker attempts to dump Group Managed Services account (GMSA) passwords stored on writable domain controllers.

Known False Positives

  • None

MITRE ATT&CK Coverage

TacticTechniques
Credential Access

Telemetry Coverage

Rule Body

title: Group Managed Service Accounts password dump - GoldenGMSA
description: Detects scenarios where an attacker attempts to dump Group Managed Services account (GMSA) passwords stored on writable domain controllers.
correlation: correlate TargetLogonId from ID 4624 with SubjectLogonId from ID 4662 to identify the source of the dump.
requirements: extended rights auditing enabled
references:
- https://www.semperis.com/blog/golden-gmsa-attack/
- https://twitter.com/cnotin/status/1498952017263353858?t=PX9bWqa2SZLOZnpXbOScUg&s=09
tags:
- attack.credential_access
- attack.t1003
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 4662
    ObjectServer: DS
    ObjectType: msKds-ProvRootKey
  filter:
    SubjectUserSid: 'S-1-5-18'
  condition: selection and not filter
falsepositives:
- None
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
  EventID: 4662
  ObjectServer: DS
  ObjectType: msKds-ProvRootKey

Stage 2: not filter

filter:
  SubjectUserSid: 'S-1-5-18'

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
SubjectUserSideqS-1-5-18excludes:SubjectUserSid field:"SubjectUserSid" value:"S-1-5-18"

HackTool - SysmonEnte Execution

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

Detects the use of SysmonEnte, a tool to attack the integrity of Sysmon

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 10: ProcessAccess

Rule Body

title: HackTool - SysmonEnte Execution
id: d29ada0f-af45-4f27-8f32-f7b77c3dbc4e
status: test
description: Detects the use of SysmonEnte, a tool to attack the integrity of Sysmon
references:
    - https://codewhitesec.blogspot.com/2022/09/attacks-on-sysmon-revisited-sysmonente.html
    - https://github.com/codewhitesec/SysmonEnte/
    - https://github.com/codewhitesec/SysmonEnte/blob/fe267690fcc799fbda15398243615a30451d9099/screens/1.png
author: Florian Roth (Nextron Systems)
date: 2022-09-07
modified: 2026-06-29
tags:
    - attack.defense-impairment
    - attack.t1685.001
logsource:
    category: process_access
    product: windows
detection:
    selection_sysmon:
        TargetImage|contains:
            - ':\Windows\Sysmon.exe'
            - ':\Windows\Sysmon64.exe'
            - ':\Windows\Sysmon64a.exe'
        GrantedAccess: '0x1400'
    selection_calltrace:
        CallTrace: 'Ente'
    filter_main_generic:
        SourceImage|contains:
            - ':\Program Files (x86)\'
            - ':\Program Files\'
            - ':\Windows\System32\'
            - ':\Windows\SysWOW64\'
    filter_main_msdefender:
        SourceImage|contains: ':\ProgramData\Microsoft\Windows Defender\Platform\'
        SourceImage|endswith: '\MsMpEng.exe'
    condition: ( selection_sysmon and not 1 of filter_main_* ) or selection_calltrace
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

( selection_sysmon and not 1 of filter_main_* ) or selection_calltrace

Stage 1: selection_sysmon

selection_sysmon:
    TargetImage|contains:
        - ':\Windows\Sysmon.exe'
        - ':\Windows\Sysmon64.exe'
        - ':\Windows\Sysmon64a.exe'
    GrantedAccess: '0x1400'

Stage 2: not filter_main_*

filter_main_generic:
    SourceImage|contains:
        - ':\Program Files (x86)\'
        - ':\Program Files\'
        - ':\Windows\System32\'
        - ':\Windows\SysWOW64\'
filter_main_msdefender:
    SourceImage|contains: ':\ProgramData\Microsoft\Windows Defender\Platform\'
    SourceImage|endswith: '\MsMpEng.exe'

Stage 3: selection_calltrace

selection_calltrace:
    CallTrace: 'Ente'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CallTraceeq
  • Ente
field:"CallTrace" kind:eq value:"Ente"
GrantedAccesseq
  • 0x1400
field:"GrantedAccess" kind:eq value:"0x1400"
TargetImagematch
  • :\Windows\Sysmon.exe
  • :\Windows\Sysmon64.exe
  • :\Windows\Sysmon64a.exe
field:"TargetImage" kind:match

Exclusions

The rule actively suppresses these predicates.

IE ZoneMap Setting Downgraded To MyComputer Zone For HTTP Protocols Via CLI

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

Detects changes to Internet Explorer's (IE / Windows Internet properties) ZoneMap configuration of the "HTTP" and "HTTPS" protocols to point to the "My Computer" zone. This allows downloaded files from the Internet to be granted the same level of trust as files stored locally.

MITRE ATT&CK Coverage

TacticTechniques
ExecutionNo specific technique
StealthNo specific technique

Telemetry Coverage

Rule Body

title: IE ZoneMap Setting Downgraded To MyComputer Zone For HTTP Protocols Via CLI
id: 10344bb3-7f65-46c2-b915-2d00d47be5b0
related:
    - id: 3fd4c8d7-8362-4557-a8e6-83b29cc0d724
      type: similar
status: test
description: |
    Detects changes to Internet Explorer's (IE / Windows Internet properties) ZoneMap configuration of the "HTTP" and "HTTPS" protocols to point to the "My Computer" zone. This allows downloaded files from the Internet to be granted the same level of trust as files stored locally.
references:
    - https://twitter.com/M_haggis/status/1699056847154725107
    - https://twitter.com/JAMESWT_MHT/status/1699042827261391247
    - https://learn.microsoft.com/en-us/troubleshoot/developer/browsers/security-privacy/ie-security-zones-registry-entries
    - https://www.virustotal.com/gui/file/339ff720c74dc44265b917b6d3e3ba0411d61f3cd3c328e9a2bae81592c8a6e5/content
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-09-05
tags:
    - attack.execution
    - attack.stealth
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        CommandLine|contains|all:
            - '\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\ProtocolDefaults'
            - 'http'
            - ' 0'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    CommandLine|contains|all:
        - '\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\ProtocolDefaults'
        - 'http'
        - ' 0'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • 0 corpus 3 (sigma 3)
  • \Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\ProtocolDefaults
  • http corpus 45 (sigma 34, elastic 10, splunk 1)
field:"CommandLine" kind:match

LSASS Memory Access by Tool With Dump Keyword In Name

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

Detects LSASS process access requests from a source process with the "dump" keyword in its image name.

Known False Positives

  • Rare programs that contain the word dump in their name and access lsass

MITRE ATT&CK Coverage

TacticTechniques
Credential Access

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 10: ProcessAccess

Rule Body

title: LSASS Memory Access by Tool With Dump Keyword In Name
id: 9bd012ee-0dff-44d7-84a0-aa698cfd87a3
status: test
description: Detects LSASS process access requests from a source process with the "dump" keyword in its image name.
references:
    - https://twitter.com/_xpn_/status/1491557187168178176
    - https://www.ired.team/offensive-security/credential-access-and-credential-dumping/dump-credentials-from-lsass-process-without-mimikatz
author: Florian Roth (Nextron Systems)
date: 2022-02-10
modified: 2023-11-29
tags:
    - attack.credential-access
    - attack.t1003.001
    - attack.s0002
logsource:
    category: process_access
    product: windows
detection:
    selection:
        TargetImage|endswith: '\lsass.exe'
        SourceImage|contains: 'dump'
        GrantedAccess|endswith:
            - '10'
            - '30'
            - '50'
            - '70'
            - '90'
            - 'B0'
            - 'D0'
            - 'F0'
            - '18'
            - '38'
            - '58'
            - '78'
            - '98'
            - 'B8'
            - 'D8'
            - 'F8'
            - '1A'
            - '3A'
            - '5A'
            - '7A'
            - '9A'
            - 'BA'
            - 'DA'
            - 'FA'
            - '0x14C2'  # https://github.com/b4rtik/ATPMiniDump/blob/76304f93b390af3bb66e4f451ca16562a479bdc9/ATPMiniDump/ATPMiniDump.c
            - 'FF'
    condition: selection
falsepositives:
    - Rare programs that contain the word dump in their name and access lsass
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetImage|endswith: '\lsass.exe'
    SourceImage|contains: 'dump'
    GrantedAccess|endswith:
        - '10'
        - '30'
        - '50'
        - '70'
        - '90'
        - 'B0'
        - 'D0'
        - 'F0'
        - '18'
        - '38'
        - '58'
        - '78'
        - '98'
        - 'B8'
        - 'D8'
        - 'F8'
        - '1A'
        - '3A'
        - '5A'
        - '7A'
        - '9A'
        - 'BA'
        - 'DA'
        - 'FA'
        - '0x14C2'
        - 'FF'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
GrantedAccessends_with
  • 0x14C2 corpus 4 (sigma 4)
  • 10 corpus 4 (sigma 4)
  • 18 corpus 4 (sigma 4)
  • 1A corpus 4 (sigma 4)
  • 30 corpus 4 (sigma 4)
  • 38 corpus 4 (sigma 4)
  • 3A corpus 4 (sigma 4)
  • 50 corpus 4 (sigma 4)
  • 58 corpus 4 (sigma 4)
  • 5A corpus 4 (sigma 4)
  • 70 corpus 4 (sigma 4)
  • 78 corpus 4 (sigma 4)
  • 7A corpus 4 (sigma 4)
  • 90 corpus 4 (sigma 4)
  • 98 corpus 4 (sigma 4)
  • 9A corpus 4 (sigma 4)
  • B0 corpus 4 (sigma 4)
  • B8 corpus 4 (sigma 4)
  • BA corpus 4 (sigma 4)
  • D0 corpus 4 (sigma 4)
  • D8 corpus 4 (sigma 4)
  • DA corpus 4 (sigma 4)
  • F0 corpus 4 (sigma 4)
  • F8 corpus 4 (sigma 4)
  • FA corpus 4 (sigma 4)
  • FF corpus 3 (sigma 3)
field:"GrantedAccess" kind:ends_with
SourceImagematch
  • dump
field:"SourceImage" kind:match value:"dump"
TargetImageends_with
  • \lsass.exe corpus 17 (sigma 16, splunk 1)
field:"TargetImage" kind:ends_with value:"\lsass.exe"

Microsoft Malware Protection Engine Crash

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

This rule detects a suspicious crash of the Microsoft Malware Protection Engine

Known False Positives

  • MsMpEng might crash if the "C:\" partition is full

MITRE ATT&CK Coverage

TacticTechniques
Stealth
Defense Impairment

Telemetry Coverage

Rule Body

title: Microsoft Malware Protection Engine Crash
id: 545a5da6-f103-4919-a519-e9aec1026ee4
related:
    - id: 6c82cf5c-090d-4d57-9188-533577631108
      type: similar
status: test
description: This rule detects a suspicious crash of the Microsoft Malware Protection Engine
references:
    - https://bugs.chromium.org/p/project-zero/issues/detail?id=1252&desc=5
    - https://technet.microsoft.com/en-us/library/security/4022344
author: Florian Roth (Nextron Systems)
date: 2017-05-09
modified: 2023-04-14
tags:
    - attack.stealth
    - attack.defense-impairment
    - attack.t1211
    - attack.t1685
logsource:
    product: windows
    service: application
    # warning: The 'data' field used in the detection section is the container for the event data as a whole. You may have to adapt the rule for your backend accordingly
detection:
    selection:
        Provider_Name: 'Application Error'
        EventID: 1000
        Data|contains|all:
            - 'MsMpEng.exe'
            - 'mpengine.dll'
    condition: selection
falsepositives:
    - MsMpEng might crash if the "C:\" partition is full
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Provider_Name: 'Application Error'
    EventID: 1000
    Data|contains|all:
        - 'MsMpEng.exe'
        - 'mpengine.dll'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Datamatch
  • MsMpEng.exe corpus 2 (sigma 2)
  • mpengine.dll corpus 2 (sigma 2)
field:"Data" kind:match
Provider_Nameeq
  • Application Error corpus 5 (sigma 5)
field:"Provider_Name" kind:eq value:"Application Error"

New Process Created Via Taskmgr.EXE

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

Detects the creation of a process via the Windows task manager. This might be an attempt to bypass UAC

Known False Positives

  • Administrative activity

MITRE ATT&CK Coverage

TacticTechniques
Stealth

Telemetry Coverage

Rule Body

title: New Process Created Via Taskmgr.EXE
id: 3d7679bd-0c00-440c-97b0-3f204273e6c7
status: test
description: Detects the creation of a process via the Windows task manager. This might be an attempt to bypass UAC
references:
    - https://twitter.com/ReneFreingruber/status/1172244989335810049
author: Florian Roth (Nextron Systems)
date: 2018-03-13
modified: 2024-01-18
tags:
    - attack.stealth
    - attack.t1036
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        ParentImage|endswith: '\taskmgr.exe'
    filter_main_generic:
        Image|endswith:
            - ':\Windows\System32\mmc.exe'
            - ':\Windows\System32\resmon.exe'
            - ':\Windows\System32\Taskmgr.exe'
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Administrative activity
level: low

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    ParentImage|endswith: '\taskmgr.exe'

Stage 2: not filter_main_generic

filter_main_generic:
    Image|endswith:
        - ':\Windows\System32\mmc.exe'
        - ':\Windows\System32\resmon.exe'
        - ':\Windows\System32\Taskmgr.exe'

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with:\Windows\System32\Taskmgr.exeexcludes:Image field:"Image" value:":\Windows\System32\Taskmgr.exe"
Imageends_with:\Windows\System32\mmc.exeexcludes:Image field:"Image" value:":\Windows\System32\mmc.exe"
Imageends_with:\Windows\System32\resmon.exeexcludes:Image field:"Image" value:":\Windows\System32\resmon.exe"

Ngrok Usage with Remote Desktop Service

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

Detects cases in which ngrok, a reverse proxy tool, forwards events to the local RDP port, which could be a sign of malicious behaviour

MITRE ATT&CK Coverage

TacticTechniques
Command & Control

Telemetry Coverage

Rule Body

title: Ngrok Usage with Remote Desktop Service
id: 64d51a51-32a6-49f0-9f3d-17e34d640272
status: test
description: Detects cases in which ngrok, a reverse proxy tool, forwards events to the local RDP port, which could be a sign of malicious behaviour
references:
    - https://twitter.com/tekdefense/status/1519711183162556416?s=12&t=OTsHCBkQOTNs1k3USz65Zg
    - https://ngrok.com/
author: Florian Roth (Nextron Systems)
date: 2022-04-29
tags:
    - attack.command-and-control
    - attack.t1090
logsource:
    product: windows
    service: terminalservices-localsessionmanager
detection:
    selection:
        EventID: 21
        Address|contains: '16777216'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    EventID: 21
    Address|contains: '16777216'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Addressmatch
  • 16777216
field:"Address" kind:match value:"16777216"

OMIGOD SCX RunAsProvider ExecuteShellCommand

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

Rule to detect the use of the SCX RunAsProvider Invoke_ExecuteShellCommand to execute any UNIX/Linux command using the /bin/sh shell. SCXcore, started as the Microsoft Operations Manager UNIX/Linux Agent, is now used in a host of products including Microsoft Operations Manager, Microsoft Azure, and Microsoft Operations Management Suite.

Known False Positives

  • Legitimate use of SCX RunAsProvider Invoke_ExecuteShellCommand.

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: OMIGOD SCX RunAsProvider ExecuteShellCommand
id: 21541900-27a9-4454-9c4c-3f0a4240344a
status: test
description: |
    Rule to detect the use of the SCX RunAsProvider Invoke_ExecuteShellCommand to execute any UNIX/Linux command using the /bin/sh shell.
    SCXcore, started as the Microsoft Operations Manager UNIX/Linux Agent, is now used in a host of products including
    Microsoft Operations Manager, Microsoft Azure, and Microsoft Operations Management Suite.
references:
    - https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
    - https://github.com/Azure/Azure-Sentinel/pull/3059
author: Roberto Rodriguez (Cyb3rWard0g), OTR (Open Threat Research), MSTIC
date: 2021-10-15
modified: 2022-10-05
tags:
    - attack.privilege-escalation
    - attack.initial-access
    - attack.execution
    - attack.t1068
    - attack.t1190
    - attack.t1203
logsource:
    product: linux
    category: process_creation
detection:
    selection:
        User: root
        LogonId: 0
        CurrentDirectory: '/var/opt/microsoft/scx/tmp'
        CommandLine|contains: '/bin/sh'
    condition: selection
falsepositives:
    - Legitimate use of SCX RunAsProvider Invoke_ExecuteShellCommand.
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    User: root
    LogonId: 0
    CurrentDirectory: '/var/opt/microsoft/scx/tmp'
    CommandLine|contains: '/bin/sh'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /bin/sh corpus 12 (sigma 12)
field:"CommandLine" kind:match value:"/bin/sh"
CurrentDirectoryeq
  • /var/opt/microsoft/scx/tmp corpus 2 (sigma 2)
field:"CurrentDirectory" kind:eq value:"/var/opt/microsoft/scx/tmp"
LogonIdeq
  • 0 corpus 2 (sigma 2)
field:"LogonId" kind:eq value:"0"
Usereq
  • root corpus 6 (sigma 3, splunk 3)
field:"user" kind:eq value:"root"

Potential In-Memory Execution Using Reflection.Assembly

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

Detects usage of "Reflection.Assembly" load functions to dynamically load assemblies in memory

Known False Positives

  • Legitimate use of the library

MITRE ATT&CK Coverage

TacticTechniques
Stealth

Telemetry Coverage

Rule Body

title: Potential In-Memory Execution Using Reflection.Assembly
id: ddcd88cb-7f62-4ce5-86f9-1704190feb0a
status: test
description: Detects usage of "Reflection.Assembly" load functions to dynamically load assemblies in memory
references:
    - https://speakerdeck.com/heirhabarov/hunting-for-powershell-abuse?slide=50
author: frack113
date: 2022-12-25
tags:
    - attack.stealth
    - attack.t1620
logsource:
    product: windows
    category: ps_script
    definition: Script Block Logging must be enable
detection:
    selection:
        ScriptBlockText|contains: '[Reflection.Assembly]::load'
    condition: selection
falsepositives:
    - Legitimate use of the library
level: medium
regression_tests_path: regression_data/rules/windows/powershell/powershell_script/posh_ps_dotnet_assembly_from_file/info.yml

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ScriptBlockText|contains: '[Reflection.Assembly]::load'

Indicators

These rows show field, operator, and value matches.

Potential Persistence Via Security Descriptors - ScriptBlock

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

Detects usage of certain functions and keywords that are used to manipulate security descriptors in order to potentially set a backdoor. As seen used in the DAMP project.

MITRE ATT&CK Coverage

TacticTechniques
PersistenceNo specific technique
Privilege EscalationNo specific technique
Defense ImpairmentNo specific technique

Telemetry Coverage

Rule Body

title: Potential Persistence Via Security Descriptors - ScriptBlock
id: 2f77047c-e6e9-4c11-b088-a3de399524cd
status: test
description: Detects usage of certain functions and keywords that are used to manipulate security descriptors in order to potentially set a backdoor. As seen used in the DAMP project.
references:
    - https://github.com/HarmJ0y/DAMP
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-01-05
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.defense-impairment
logsource:
    product: windows
    category: ps_script
    definition: 'Requirements: Script Block Logging must be enabled'
detection:
    selection:
        ScriptBlockText|contains|all:
            - 'win32_Trustee'
            - 'win32_Ace'
            - '.AccessMask'
            - '.AceType'
            - '.SetSecurityDescriptor'
        ScriptBlockText|contains:
            - '\Lsa\JD'
            - '\Lsa\Skew1'
            - '\Lsa\Data'
            - '\Lsa\GBG'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ScriptBlockText|contains|all:
        - 'win32_Trustee'
        - 'win32_Ace'
        - '.AccessMask'
        - '.AceType'
        - '.SetSecurityDescriptor'
    ScriptBlockText|contains:
        - '\Lsa\JD'
        - '\Lsa\Skew1'
        - '\Lsa\Data'
        - '\Lsa\GBG'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ScriptBlockTextmatch
  • .AccessMask
  • .AceType
  • .SetSecurityDescriptor
  • \Lsa\Data
  • \Lsa\GBG
  • \Lsa\JD
  • \Lsa\Skew1
  • win32_Ace
  • win32_Trustee
field:"ScriptBlockText" kind:match

Potential RemoteFXvGPUDisablement.EXE Abuse - PowerShell Module

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

Detects PowerShell module creation where the module Contents are set to "function Get-VMRemoteFXPhysicalVideoAdapter". This could be a sign of potential abuse of the "RemoteFXvGPUDisablement.exe" binary which is known to be vulnerable to module load-order hijacking.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Potential RemoteFXvGPUDisablement.EXE Abuse - PowerShell Module
id: 38a7625e-b2cb-485d-b83d-aff137d859f4
related:
    - id: a6fc3c46-23b8-4996-9ea2-573f4c4d88c5 # ProcCreation
      type: similar
    - id: f65e22f9-819e-4f96-9c7b-498364ae7a25 # PS Classic
      type: similar
    - id: cacef8fc-9d3d-41f7-956d-455c6e881bc5 # PS ScriptBlock
      type: similar
status: test
description: Detects PowerShell module creation where the module Contents are set to "function Get-VMRemoteFXPhysicalVideoAdapter". This could be a sign of potential abuse of the "RemoteFXvGPUDisablement.exe" binary which is known to be vulnerable to module load-order hijacking.
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1218/T1218.md
    - https://github.com/redcanaryco/AtomicTestHarnesses/blob/7e1e4da116801e3d6fcc6bedb207064577e40572/TestHarnesses/T1218_SignedBinaryProxyExecution/InvokeRemoteFXvGPUDisablementCommand.ps1
author: Nasreddine Bencherchali (Nextron Systems), frack113
date: 2021-07-13
modified: 2023-05-09
tags:
    - attack.stealth
    - attack.t1218
logsource:
    product: windows
    category: ps_module
    definition: 0ad03ef1-f21b-4a79-8ce8-e6900c54b65b
detection:
    selection:
        Payload|contains: 'ModuleContents=function Get-VMRemoteFXPhysicalVideoAdapter {'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Payload|contains: 'ModuleContents=function Get-VMRemoteFXPhysicalVideoAdapter {'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Payloadmatch
  • ModuleContents=function Get-VMRemoteFXPhysicalVideoAdapter {
field:"Payload" kind:match value:"ModuleContents=function Get-VMRemoteFXPhysicalVideoAdapter {"

Risk of Tenant Takeover

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

Detect potential tenant takeover risks by monitoring if a new tenant admin has been invited followed by rapid deletion of other Tenant Admins.

Known False Positives

  • Legitimate admin activity, e.g. when a new admin is invited to replace an existing one.

MITRE ATT&CK Coverage

Rule Body

title: Risk of Tenant Takeover
id: 711501ce-716e-11f0-8b6e-723487b9527c
status: experimental
description: |
    Detect potential tenant takeover risks by monitoring if a new tenant admin has been invited followed by rapid deletion of other Tenant Admins.
author: Okta
date: 2025-07-11
modified: 2025-08-04
logsource:
    product: auth0
detection:
    selection:
        data.type: sapi
        data.description:
            - "Delete tenant member"
            - "Create tenant invitations for a given client"
        data.details.request.body.roles{}: owner
    condition: selection
explanation: >
    The query monitors events issued when a new admin is invited, i.e., "Create tenant invitations for a given client", as owner
    followed by rapid deletion of other admins, i.e. "Delete tenant member".
    In the Splunk query below the observed window is set to 1h - adjust according to your needs.
    This query also implements other indicators to limit false positives.
    1. Used the invited admin a personal account instead of a corporate?
    2. How many admins have been deleted (set to more than 2)?
    3. Has deletion happened rapidly (set to 10 mins)?
    3. Was a just invited admin, the one deleting all other admins?
splunk: |
    index=auth0 "data.tenant_name"="{your-tenant-name}"
    AND "data.description"="Delete tenant member" OR ("data.description"="Create tenant invitations for a given client" AND "data.details.request.body.roles{}"="owner")
    | eval original_time = _time
    ```Set the timespan to consider - adjust to fit your environment```
    | bucket _time span=1h
    | eval event_type = case(
        'data.description'="Delete tenant member", "delete",
        'data.description'="Create tenant invitations for a given client", "create"
        )
    ```Collect user_ids for invited users and users who is started deleting existing admins```
    |rename data.details.request.auth.user.email as deleting_user
    |rename data.details.request.body.owners{} as invited_user
    |eval correlated_id = case(
        event_type="delete", deleting_user,
        event_type="create", invited_user
        )
    ```Calculated additional indicators```
    |stats count(eval(event_type="delete")) as delete_event_count,
            min(original_time) as window_start_time,
            max(original_time) as window_end_time,
            values(eval(if(event_type="delete", correlated_id, null()))) as all_deleting_users,
            values(eval(if(event_type="create", correlated_id, null()))) as all_invited_users
            by _time, data.tenant_name, data.client_id
    ```Check if there are more then 2 admin accounts that have been deleted - adjust to fit your environment```
    | eval has_more_than_X_deletes = if(delete_event_count > 1, "true", "false")
    ```Check if inviting and deletion of admins happened rapidly, e.g. 10 mins - adjust to fit your environment```
    | eval window_duration_seconds = window_end_time - window_start_time
    | eval window_duration_mins = window_duration_seconds/60
    | eval all_events_within_X_min = if(window_duration_mins <= 10, "true", "false")
    ```Check if the invited admin has a personal email, alternatively, check if non-corporate email is used - adjust to fit your environment```
    | eval has_personal_invited_email = if(mvcount(mvfilter(match(all_invited_users, "@gmail.com|@yahoo.com|@hotmail.com|@outlook.com|@aol.com|@icloud.com|@live.com"))) > 0, "true", "false")
    ``` Alternatively, check if non-corporate email is used```
    ```| eval has_noncorporate_invited_email = if(mvcount(mvfilter(match(all_invited_users, "@[your-corporate-domain]"))) < mvcount(all_invited_users), "true", "false")```
    ```Check an admin that conducts mass deletion of existing admins is the one who was just invited```
    | eval deleting_among_invited = if(isnotnull(mvfind(all_invited_users, all_deleting_users)), "true", "false")
    ``` Now, when all criteria are collected, we can do the final filtering, alternatively, enable reporting```
    | where has_more_than_X_deletes="true"
        AND all_events_within_X_min="true"
        AND has_personal_invited_email="true"
        ``` AND has_noncorporate_invited_email = "true" ```
        AND deleting_among_invited="false"
comments:
    - The Splunk query above shall be tuned to reflect a valid tenant name.
    - When Auth0 Teams is used all admin related logs are removed from the tenant audit logs.
    - The events of inviting an admin into the Team and assigning this user to a tenant (and deleting events) are recorded in the Team Activity dashboard.
    - However, log streaming and search are not supported for Teams as of time of writing.
tenant_logs: |
    type:"sapi" AND (description:"Delete tenant member" OR description:"Create tenant invitations for a given client")
prevention:
    - Enforce SSO for admins via Teams.
falsepositives:
    - Legitimate admin activity, e.g. when a new admin is invited to replace an existing one.
level: medium
tags:
    - attack.persistence
    - attack.t1098
    - attack.t1136

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    data.type: sapi
    data.description:
        - "Delete tenant member"
        - "Create tenant invitations for a given client"
    data.details.request.body.roles{}: owner

Indicators

These rows show field, operator, and value matches.

Suspicious Redirection to Local Admin Share

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

Detects a suspicious output redirection to the local admins share, this technique is often found in malicious scripts or hacktool stagers

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Suspicious Redirection to Local Admin Share
id: ab9e3b40-0c85-4ba1-aede-455d226fd124
status: test
description: Detects a suspicious output redirection to the local admins share, this technique is often found in malicious scripts or hacktool stagers
references:
    - https://www.microsoft.com/security/blog/2022/01/15/destructive-malware-targeting-ukrainian-organizations/
    - http://blog.talosintelligence.com/2022/09/lazarus-three-rats.html
author: Florian Roth (Nextron Systems)
date: 2022-01-16
modified: 2023-12-28
tags:
    - attack.exfiltration
    - attack.t1048
logsource:
    category: process_creation
    product: windows
detection:
    selection_redirect:
        CommandLine|contains: '>'
    selection_share:
        CommandLine|contains:
            - '\\\\127.0.0.1\\admin$\\'
            - '\\\\localhost\\admin$\\'
    condition: all of selection_*
falsepositives:
    - Unknown
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_susp_redirect_local_admin_share/info.yml

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_redirect

selection_redirect:
    CommandLine|contains: '>'

Stage 2: selection_share

selection_share:
    CommandLine|contains:
        - '\\\\127.0.0.1\\admin$\\'
        - '\\\\localhost\\admin$\\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • > corpus 6 (sigma 6)
  • \\\\127.0.0.1\\admin$\\
  • \\\\localhost\\admin$\\
field:"CommandLine" kind:match

Trusted Path Bypass via Windows Directory Spoofing

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

Detects DLLs loading from a spoofed Windows directory path with an extra space (e.g "C:\Windows \System32") which can bypass Windows trusted path verification. This technique tricks Windows into treating the path as trusted, allowing malicious DLLs to load with high integrity privileges bypassing UAC.

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 7: Image loaded

Rule Body

title: Trusted Path Bypass via Windows Directory Spoofing
id: 0cbe38c0-270c-41d9-ab79-6e5a9a669290
related:
    - id: 4ac47ed3-44c2-4b1f-9d51-bf46e8914126
      type: similar
status: experimental
description: |
    Detects DLLs loading from a spoofed Windows directory path with an extra space (e.g "C:\Windows \System32") which can bypass Windows trusted path verification.
    This technique tricks Windows into treating the path as trusted, allowing malicious DLLs to load with high integrity privileges bypassing UAC.
references:
    - https://x.com/Wietze/status/1933495426952421843
author: Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2025-06-17
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.execution
    - attack.stealth
    - attack.t1574.007
    - attack.t1548.002
logsource:
    category: image_load
    product: windows
detection:
    selection:
        ImageLoaded|contains:
            - ':\Windows \System32\'  # Note the space between "Windows" and "System32"
            - ':\Windows \SysWOW64\'  # Note the space between "Windows" and "SysWOW64"
    condition: selection
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ImageLoaded|contains:
        - ':\Windows \System32\'
        - ':\Windows \SysWOW64\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ImageLoadedmatch
  • :\Windows \SysWOW64\
  • :\Windows \System32\
field:"ImageLoaded" kind:match

Unmount Share Via Net.EXE

#
Status
test
Severity
low
Author
oscd.community, @redcanary, Zach Stanford @svch0st
Source
github.com/SigmaHQ/sigma

Detects when when a mounted share is removed. Adversaries may remove share connections that are no longer useful in order to clean up traces of their operation

Known False Positives

  • Administrators or Power users may remove their shares via cmd line

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Unmount Share Via Net.EXE
id: cb7c4a03-2871-43c0-9bbb-18bbdb079896
status: test
description: Detects when when a mounted share is removed. Adversaries may remove share connections that are no longer useful in order to clean up traces of their operation
references:
    - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1070.005/T1070.005.md
author: oscd.community, @redcanary, Zach Stanford @svch0st
date: 2020-10-08
modified: 2023-02-21
tags:
    - attack.stealth
    - attack.t1070.005
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith:
              - '\net.exe'
              - '\net1.exe'
        - OriginalFileName:
              - 'net.exe'
              - 'net1.exe'
    selection_cli:
        CommandLine|contains|all:
            - 'share'
            - '/delete'
    condition: all of selection*
falsepositives:
    - Administrators or Power users may remove their shares via cmd line
level: low

Stages and Predicates

Stage 0: condition

all of selection*

Stage 1: selection_img

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

Stage 2: selection_cli

selection_cli:
    CommandLine|contains|all:
        - 'share'
        - '/delete'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /delete corpus 8 (sigma 6, splunk 2)
  • share corpus 2 (sigma 2)
field:"CommandLine" kind:match
Imageends_with
  • \net.exe corpus 49 (sigma 49)
  • \net1.exe corpus 47 (sigma 47)
field:"Image" kind:ends_with
OriginalFileNameeq
  • net.exe corpus 25 (sigma 19, elastic 4, splunk 2)
  • net1.exe corpus 39 (sigma 19, splunk 19, elastic 1)
field:"OriginalFileName" kind:eq

Visual Studio NodejsTools PressAnyKey Arbitrary Binary Execution

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

Detects child processes of Microsoft.NodejsTools.PressAnyKey.exe that can be used to execute any other binary

Known False Positives

  • Legitimate use by developers as part of NodeJS development with Visual Studio Tools

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Visual Studio NodejsTools PressAnyKey Arbitrary Binary Execution
id: a20391f8-76fb-437b-abc0-dba2df1952c6
related:
    - id: 65c3ca2c-525f-4ced-968e-246a713d164f
      type: similar
status: test
description: Detects child processes of Microsoft.NodejsTools.PressAnyKey.exe that can be used to execute any other binary
references:
    - https://twitter.com/mrd0x/status/1463526834918854661
    - https://gist.github.com/nasbench/a989ce64cefa8081bd50cf6ad8c491b5
author: Florian Roth (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
date: 2022-01-11
modified: 2023-04-11
tags:
    - attack.execution
    - attack.stealth
    - attack.t1218
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        ParentImage|endswith: '\Microsoft.NodejsTools.PressAnyKey.exe'
    condition: selection
falsepositives:
    - Legitimate use by developers as part of NodeJS development with Visual Studio Tools
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ParentImage|endswith: '\Microsoft.NodejsTools.PressAnyKey.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ParentImageends_with
  • \Microsoft.NodejsTools.PressAnyKey.exe
field:"ParentImage" kind:ends_with value:"\Microsoft.NodejsTools.PressAnyKey.exe"

Webserver IIS module installed (command)

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

Detects scenarios where an attacker attempts to deploy an IIS module.

Known False Positives

  • New modules deployed on IIS Web servers, but also Exchange and ADCS servers

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Webserver IIS module installed (command)
description: Detects scenarios where an attacker attempts to deploy an IIS module.
references:
- https://securelist.com/owowa-credential-stealer-and-remote-access/105219/
- https://docs.microsoft.com/fr-fr/iis/get-started/introduction-to-iis/iis-modules-overview
- https://www.microsoft.com/security/blog/2021/11/08/threat-actor-dev-0322-exploiting-zoho-manageengine-adselfservice-plus/
- https://www.microsoft.com/security/blog/2022/07/26/malicious-iis-extensions-quietly-open-persistent-backdoors-into-servers/
- https://www.welivesecurity.com/2021/08/06/anatomy-native-iis-malware/
- https://i.blackhat.com/USA21/Wednesday-Handouts/us-21-Anatomy-Of-Native-Iis-Malware-wp.pdf
- https://securelist.com/the-sessionmanager-iis-backdoor/106868/
- https://www.mdsec.co.uk/2020/02/iis-raid-backdooring-iis-using-native-modules/
- https://github.com/0x09AL/IIS-Raid
- https://github.com/gtworek/PSBits/blob/master/Misc/Install-PSBackdoor.ps1
- https://www.microsoft.com/en-us/security/blog/2022/12/12/iis-modules-the-evolution-of-web-shells-and-how-to-detect-them/
- https://www.splunk.com/en_us/blog/security/fantastic-iis-modules-and-how-to-find-them.html
- https://www.trendmicro.com/en_us/research/25/b/chinese-speaking-group-manipulates-seo-with-badiis.html
- https://blog.talosintelligence.com/dragon-rank-seo-poisoning/
tags:
- attack.persistence
- attack.t1505.004
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  category: process_creation
detection: # C:\Windows\System32\inetsrv\appcmd.exe install module /name:MyNativeModule /image:c:\mymodule.dll
  selection:
    NewProcessName|endswith: '\appcmd.exe'
    CommandLine|contains:
      - install
      - add
    CommandLine|contains: module
  condition: selection
falsepositives:
- New modules deployed on IIS Web servers, but also Exchange and ADCS servers
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
  NewProcessName|endswith: '\appcmd.exe'
  CommandLine|contains:
    - install
    - add
  CommandLine|contains: module

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • module corpus 2 (sigma 2)
field:"CommandLine" kind:match value:"module"
NewProcessNameends_with
  • \appcmd.exe corpus 6 (sigma 6)
field:"Image" kind:ends_with value:"\appcmd.exe"

Back to all Sigma rules