Detection rules › Sigma

Sigma rules: 0f

Access To .Reg/.Hive Files By Uncommon Applications

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

Detects file access requests to files ending with either the ".hive"/".reg" extension, usually associated with Windows Registry backups.

Known False Positives

  • Third party software installed in the user context might generate a lot of FPs. Heavy baselining and tuning might be required.

MITRE ATT&CK Coverage

TacticTechniques
Persistence
Defense Impairment

Rule Body

title: Access To .Reg/.Hive Files By Uncommon Applications
id: 337a31c6-46c4-46be-886a-260d7aa78cac
status: test
description: Detects file access requests to files ending with either the ".hive"/".reg" extension, usually associated with Windows Registry backups.
references:
    - https://github.com/tccontre/Reg-Restore-Persistence-Mole
author: frack113
date: 2023-09-15
modified: 2024-07-29
tags:
    - attack.defense-impairment
    - attack.t1112
    - attack.persistence
    - detection.threat-hunting
logsource:
    category: file_access
    product: windows
    definition: 'Requirements: Microsoft-Windows-Kernel-File ETW provider'
detection:
    selection:
        FileName|endswith:
            - '.hive'
            - '.reg'
    filter_main_generic:
        Image|startswith:
            - 'C:\Program Files (x86)\'
            - 'C:\Program Files\'
            - 'C:\Windows\System32\'
            - 'C:\Windows\SysWOW64\'
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Third party software installed in the user context might generate a lot of FPs. Heavy baselining and tuning might be required.
level: low

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    FileName|endswith:
        - '.hive'
        - '.reg'

Stage 2: not filter_main_generic

filter_main_generic:
    Image|startswith:
        - 'C:\Program Files (x86)\'
        - 'C:\Program Files\'
        - 'C:\Windows\System32\'
        - 'C:\Windows\SysWOW64\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
FileNameends_with
  • .hive
  • .reg
field:"file_name" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imagestarts_withC:\Program Files (x86)\excludes:Image field:"Image" value:"C:\Program Files (x86)\"
Imagestarts_withC:\Program Files\excludes:Image field:"Image" value:"C:\Program Files\"
Imagestarts_withC:\Windows\SysWOW64\excludes:Image field:"Image" value:"C:\Windows\SysWOW64\"
Imagestarts_withC:\Windows\System32\excludes:Image field:"Image" value:"C:\Windows\System32\"

Add Potential Suspicious New Download Source To Winget

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

Detects usage of winget to add new potentially suspicious download sources

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Add Potential Suspicious New Download Source To Winget
id: c15a46a0-07d4-4c87-b4b6-89207835a83b
related:
    - id: 05ebafc8-7aa2-4bcd-a269-2aec93f9e842
      type: similar
    - id: 81a0ecb5-0a41-4ba1-b2ba-c944eb92bfa2
      type: similar
status: test
description: Detects usage of winget to add new potentially suspicious download sources
references:
    - https://learn.microsoft.com/en-us/windows/package-manager/winget/source
    - https://github.com/nasbench/Misc-Research/tree/b9596e8109dcdb16ec353f316678927e507a5b8d/LOLBINs/Winget
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-04-17
modified: 2023-12-04
tags:
    - attack.execution
    - attack.t1059
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\winget.exe'
        - OriginalFileName: 'winget.exe'
    selection_cli:
        CommandLine|contains|all:
            - 'source '
            - 'add '
    selection_source_direct_ip:
        # This is a best effort. A better way to handle this is to limit it via whitelist. Check Group Policy for more details
        CommandLine|re: '://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
    condition: all of selection_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

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

Stage 2: selection_cli

selection_cli:
    CommandLine|contains|all:
        - 'source '
        - 'add '

Stage 3: selection_source_direct_ip

selection_source_direct_ip:
    CommandLine|re: '://\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • add corpus 12 (sigma 12)
  • source corpus 3 (sigma 3)
field:"CommandLine" kind:match
CommandLineregex_match
  • ://\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3} corpus 2 (sigma 2)
field:"CommandLine" kind:regex_match value:"://\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}"
Imageends_with
  • \winget.exe corpus 5 (sigma 5)
field:"Image" kind:ends_with value:"\winget.exe"
OriginalFileNameeq
  • winget.exe corpus 4 (sigma 4)
field:"OriginalFileName" kind:eq value:"winget.exe"

Antivirus - Web Shell Detection Signature

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

Detects a highly relevant Antivirus alert that reports a web shell. It's highly recommended to tune this rule to the specific strings used by your anti virus solution by downloading a big WebShell repository from e.g. github and checking the matches. This event must not be ignored just because the AV has blocked the malware but investigate, how it came there in the first place.

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

Rule Body

title: Antivirus - Web Shell Detection Signature
id: fdf135a2-9241-4f96-a114-bb404948f736
status: test
description: |
    Detects a highly relevant Antivirus alert that reports a web shell.
    It's highly recommended to tune this rule to the specific strings used by your anti virus solution by downloading a big WebShell repository from e.g. github and checking the matches.
    This event must not be ignored just because the AV has blocked the malware but investigate, how it came there in the first place.
references:
    - https://www.nextron-systems.com/?s=antivirus
    - https://github.com/tennc/webshell
    - https://www.virustotal.com/gui/file/bd1d52289203866645e556e2766a21d2275877fbafa056a76fe0cf884b7f8819/detection
    - https://www.virustotal.com/gui/file/308487ed28a3d9abc1fec7ebc812d4b5c07ab025037535421f64c60d3887a3e8/detection
    - https://www.virustotal.com/gui/file/7d3cb8a8ff28f82b07f382789247329ad2d7782a72dde9867941f13266310c80/detection
    - https://www.virustotal.com/gui/file/e841675a4b82250c75273ebf0861245f80c6a1c3d5803c2d995d9d3b18d5c4b5/detection
    - https://www.virustotal.com/gui/file/a80042c61a0372eaa0c2c1e831adf0d13ef09feaf71d1d20b216156269045801/detection
    - https://www.virustotal.com/gui/file/b219f7d3c26f8bad7e175934cd5eda4ddb5e3983503e94ff07d39c0666821b7e/detection
    - https://www.virustotal.com/gui/file/b8702acf32fd651af9f809ed42d15135f842788cd98d81a8e1b154ee2a2b76a2/detection
    - https://www.virustotal.com/gui/file/13ae8bfbc02254b389ab052aba5e1ba169b16a399d9bc4cb7414c4a73cd7dc78/detection
author: Florian Roth (Nextron Systems), Arnim Rupp
date: 2018-09-09
modified: 2026-06-29
tags:
    - attack.persistence
    - attack.t1505.003
logsource:
    category: antivirus
detection:
    selection:
        - Signature|startswith:
              - 'ASP.'
              - 'IIS/BackDoor'
              - 'JAVA/Backdoor'
              - 'JSP.'
              - 'Perl.'
              - 'PHP.'
              - 'Troj/ASP'
              - 'Troj/JSP'
              - 'Troj/PHP'
              - 'VBS/Uxor' # looking for 'VBS/' would also find downloader's and droppers meant for desktops
        - Signature|contains:
              - 'ASP_' # looking for 'VBS_' would also find downloader's and droppers meant for desktops
              - 'ASP:'
              - 'ASP.Agent'
              - 'ASP/'
              # - 'ASP/Agent'
              - 'Aspdoor'
              - 'ASPXSpy'
              - 'Backdoor.ASP'
              - 'Backdoor.Java'
              - 'Backdoor.JSP'
              - 'Backdoor.PHP'
              - 'Backdoor.VBS'
              - 'Backdoor/ASP'
              - 'Backdoor/Java'
              - 'Backdoor/JSP'
              - 'Backdoor/PHP'
              - 'Backdoor/VBS'
              - 'C99shell'
              - 'Chopper'
              - 'filebrowser'
              - 'JSP_'
              - 'JSP:'
              - 'JSP.Agent'
              - 'JSP/'
              # - 'JSP/Agent'
              - 'Perl:'
              - 'Perl/'
              - 'PHP_'
              - 'PHP:'
              - 'PHP.Agent'
              - 'PHP/'
              # - 'PHP/Agent'
              - 'PHPShell'
              - 'PShlSpy'
              - 'SinoChoper'
              - 'Trojan.ASP'
              - 'Trojan.JSP'
              - 'Trojan.PHP'
              - 'Trojan.VBS'
              - 'VBS.Agent'
              - 'VBS/Agent'
              - 'Webshell'
    condition: selection
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    - Signature|startswith:
          - 'ASP.'
          - 'IIS/BackDoor'
          - 'JAVA/Backdoor'
          - 'JSP.'
          - 'Perl.'
          - 'PHP.'
          - 'Troj/ASP'
          - 'Troj/JSP'
          - 'Troj/PHP'
          - 'VBS/Uxor'
    - Signature|contains:
          - 'ASP_'
          - 'ASP:'
          - 'ASP.Agent'
          - 'ASP/'
          - 'Aspdoor'
          - 'ASPXSpy'
          - 'Backdoor.ASP'
          - 'Backdoor.Java'
          - 'Backdoor.JSP'
          - 'Backdoor.PHP'
          - 'Backdoor.VBS'
          - 'Backdoor/ASP'
          - 'Backdoor/Java'
          - 'Backdoor/JSP'
          - 'Backdoor/PHP'
          - 'Backdoor/VBS'
          - 'C99shell'
          - 'Chopper'
          - 'filebrowser'
          - 'JSP_'
          - 'JSP:'
          - 'JSP.Agent'
          - 'JSP/'
          - 'Perl:'
          - 'Perl/'
          - 'PHP_'
          - 'PHP:'
          - 'PHP.Agent'
          - 'PHP/'
          - 'PHPShell'
          - 'PShlSpy'
          - 'SinoChoper'
          - 'Trojan.ASP'
          - 'Trojan.JSP'
          - 'Trojan.PHP'
          - 'Trojan.VBS'
          - 'VBS.Agent'
          - 'VBS/Agent'
          - 'Webshell'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Signaturematch
  • ASP.Agent
  • ASP/
  • ASP:
  • ASPXSpy
  • ASP_
  • Aspdoor
  • Backdoor.ASP
  • Backdoor.JSP
  • Backdoor.Java
  • Backdoor.PHP
  • Backdoor.VBS
  • Backdoor/ASP
  • Backdoor/JSP
  • Backdoor/Java
  • Backdoor/PHP
  • Backdoor/VBS
  • C99shell
  • Chopper
  • JSP.Agent
  • JSP/
  • JSP:
  • JSP_
  • PHP.Agent
  • PHP/
  • PHP:
  • PHPShell
  • PHP_
  • PShlSpy corpus 3 (sigma 3)
  • Perl/
  • Perl:
  • SinoChoper
  • Trojan.ASP
  • Trojan.JSP
  • Trojan.PHP
  • Trojan.VBS
  • VBS.Agent
  • VBS/Agent
  • Webshell
  • filebrowser
field:"Signature" kind:match
Signaturestarts_with
  • ASP.
  • IIS/BackDoor
  • JAVA/Backdoor
  • JSP.
  • PHP.
  • Perl.
  • Troj/ASP
  • Troj/JSP
  • Troj/PHP
  • VBS/Uxor
field:"Signature" kind:starts_with

AWS Identity Center Identity Provider Change

#
Status
test
Severity
high
Author
Michael McIntyre @wtfender
Source
github.com/SigmaHQ/sigma

Detects a change in the AWS Identity Center (FKA AWS SSO) identity provider. A change in identity provider allows an attacker to establish persistent access or escalate privileges via user impersonation.

Known False Positives

  • Authorized changes to the AWS account's identity provider

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: AWS Identity Center Identity Provider Change
id: d3adb3ef-b7e7-4003-9092-1924c797db35
status: test
description: |
    Detects a change in the AWS Identity Center (FKA AWS SSO) identity provider.
    A change in identity provider allows an attacker to establish persistent access or escalate privileges via user impersonation.
references:
    - https://docs.aws.amazon.com/singlesignon/latest/userguide/app-enablement.html
    - https://docs.aws.amazon.com/singlesignon/latest/userguide/sso-info-in-cloudtrail.html
    - https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiamidentitycentersuccessortoawssinglesign-on.html
author: Michael McIntyre @wtfender
date: 2023-09-27
tags:
    - attack.persistence
    - attack.credential-access
    - attack.defense-impairment
    - attack.t1556
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventSource:
            - 'sso-directory.amazonaws.com'
            - 'sso.amazonaws.com'
        eventName:
            - 'AssociateDirectory'
            - 'DisableExternalIdPConfigurationForDirectory'
            - 'DisassociateDirectory'
            - 'EnableExternalIdPConfigurationForDirectory'
    condition: selection
falsepositives:
    - Authorized changes to the AWS account's identity provider
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    eventSource:
        - 'sso-directory.amazonaws.com'
        - 'sso.amazonaws.com'
    eventName:
        - 'AssociateDirectory'
        - 'DisableExternalIdPConfigurationForDirectory'
        - 'DisassociateDirectory'
        - 'EnableExternalIdPConfigurationForDirectory'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
eventNameeq
  • AssociateDirectory
  • DisableExternalIdPConfigurationForDirectory
  • DisassociateDirectory
  • EnableExternalIdPConfigurationForDirectory
field:"aws::eventName" kind:eq
eventSourceeq
  • sso-directory.amazonaws.com
  • sso.amazonaws.com
field:"aws::eventSource" kind:eq

Azure Application Deleted

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

Identifies when a application is deleted in Azure.

Known False Positives

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

MITRE ATT&CK Coverage

TacticTechniques
Impact

Telemetry Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Azure Application Deleted
id: 410d2a41-1e6d-452f-85e5-abdd8257a823
status: test
description: Identifies when a application is deleted in Azure.
references:
    - https://learn.microsoft.com/en-us/entra/identity/monitoring-health/reference-audit-activities#application-proxy
    - https://learn.microsoft.com/en-us/entra/identity/monitoring-health/reference-audit-activities#core-directory
    - https://techcommunity.microsoft.com/blog/microsoft-entra-blog/keeping-track-of-object-deletions-in-microsoft-entra-id/4053415
author: Austin Songer @austinsonger
date: 2021-09-03
modified: 2026-04-30
tags:
    - attack.impact
    - attack.t1489
logsource:
    product: azure
    service: auditlogs
detection:
    selection:
        operationName:
            - 'Delete application'
            - 'Hard Delete application'
            - 'Delete administrative unit'
    condition: selection
falsepositives:
    - Application being deleted may be performed by a system administrator.
    - Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
    - Application deleted from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    operationName:
        - 'Delete application'
        - 'Hard Delete application'
        - 'Delete administrative unit'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
operationNameeq
  • Delete administrative unit
  • Delete application
  • Hard Delete application
field:"operationName" kind:eq

Computer account modifying Active Directory permissions

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

Detects scenarios where an attacker compromise a server with high privileges to perform permissions changes. Note that a dedicated rule for Exchange exists.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Computer account modifying Active Directory permissions
description: Detects scenarios where an attacker compromise a server with high privileges to perform permissions changes. Note that a dedicated rule for Exchange exists.
requirements: auditing SACL "Modify permissions" must be placed on the AD root container using the Active Directory console (https://www.manageengine.com/products/active-directory-audit/active-directory-auditing-configuration-guide-configure-object-level-auditing-manually.html).
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0005-Defense%20Evasion/T1222.001-File%20and%20Directory%20Permissions%20Modification
tags:
- attack.defense_evasion
- attack.t1222.001
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 5136
    AttributeLDAPDisplayName: ntSecurityDescriptor
    OperationType: '%%14674' # Value added
    SubjectUserName|endswith: '$'
    #SubjectUserSid|startswith: 'S-1-5-21-' # SYSTEM account 'S-5-18' would trigger a false positive
  condition: selection
falsepositives:
- Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
  EventID: 5136
  AttributeLDAPDisplayName: ntSecurityDescriptor
  OperationType: '%%14674'
  SubjectUserName|endswith: '$'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
AttributeLDAPDisplayNameeq
  • ntSecurityDescriptor corpus 7 (sigma 6, elastic 1)
field:"AttributeLDAPDisplayName" kind:eq value:"ntSecurityDescriptor"
OperationTypeeq
  • %%14674 corpus 16 (sigma 9, splunk 4, elastic 3)
field:"OperationType" kind:eq value:"%%14674"
SubjectUserNameends_with
  • $ corpus 5 (sigma 4, splunk 1)
field:"SubjectUserName" kind:ends_with value:"$"

Curl Web Request With Potential Custom User-Agent

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

Detects execution of "curl.exe" with a potential custom "User-Agent". Attackers can leverage this to download or exfiltrate data via "curl" to a domain that only accept specific "User-Agent" strings

MITRE ATT&CK Coverage

TacticTechniques
ExecutionNo specific technique

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Curl Web Request With Potential Custom User-Agent
id: 85de1f22-d189-44e4-8239-dc276b45379b
status: test
description: Detects execution of "curl.exe" with a potential custom "User-Agent". Attackers can leverage this to download or exfiltrate data via "curl" to a domain that only accept specific "User-Agent" strings
references:
    - https://labs.withsecure.com/publications/fin7-target-veeam-servers
    - https://github.com/WithSecureLabs/iocs/blob/344203de742bb7e68bd56618f66d34be95a9f9fc/FIN7VEEAM/iocs.csv
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-07-27
modified: 2025-12-11
tags:
    - attack.execution
logsource:
    category: process_creation
    product: windows
detection:
    # Example: This command line would trigger the rule
    # curl.exe -H "User-Agent: EvilAgent" http://malicious.example.com
    selection_img:
        - Image|endswith: '\curl.exe'
        - OriginalFileName: 'curl.exe'
    selection_header_flag_1:
        CommandLine|re: '\s-H\s' # Must be Regex as the flag needs to be case sensitive
    selection_header_flag_2:
        CommandLine|contains: '--header'
    selection_user_agent:
        CommandLine|contains: 'User-Agent:'
    condition: selection_img and 1 of selection_header_* and selection_user_agent
falsepositives:
    - Unknown
level: medium
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_curl_custom_user_agent/info.yml

Stages and Predicates

Stage 0: condition

selection_img and 1 of selection_header_* and selection_user_agent

Stage 1: selection_img

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

Stage 2: selection_header_flag_1

selection_header_flag_1:
    CommandLine|re: '\s-H\s'

Stage 3: selection_header_flag_2

selection_header_flag_2:
    CommandLine|contains: '--header'

Stage 4: selection_user_agent

selection_user_agent:
    CommandLine|contains: 'User-Agent:'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • --header
  • User-Agent:
field:"CommandLine" kind:match
CommandLineregex_match
  • \s-H\s
field:"CommandLine" kind:regex_match value:"\s-H\s"
Imageends_with
  • \curl.exe corpus 31 (sigma 31)
field:"Image" kind:ends_with value:"\curl.exe"
OriginalFileNameeq
  • curl.exe corpus 22 (sigma 13, elastic 6, splunk 3)
field:"OriginalFileName" kind:eq value:"curl.exe"

Execution via stordiag.exe

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

Detects the use of stordiag.exe to execute schtasks.exe systeminfo.exe and fltmc.exe

Known False Positives

  • Legitimate usage of stordiag.exe.

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Execution via stordiag.exe
id: 961e0abb-1b1e-4c84-a453-aafe56ad0d34
status: test
description: Detects the use of stordiag.exe to execute schtasks.exe systeminfo.exe and fltmc.exe
references:
    - https://strontic.github.io/xcyclopedia/library/stordiag.exe-1F08FC87C373673944F6A7E8B18CD845.html
    - https://twitter.com/eral4m/status/1451112385041911809
author: Austin Songer (@austinsonger)
date: 2021-10-21
modified: 2022-12-25
tags:
    - attack.stealth
    - attack.t1218
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        ParentImage|endswith: '\stordiag.exe'
        Image|endswith:
            - '\schtasks.exe'
            - '\systeminfo.exe'
            - '\fltmc.exe'
    filter:
        ParentImage|startswith: # as first is "Copy c:\windows\system32\stordiag.exe to a folder"
            - 'c:\windows\system32\'
            - 'c:\windows\syswow64\'
    condition: selection and not filter
falsepositives:
    - Legitimate usage of stordiag.exe.
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
    ParentImage|endswith: '\stordiag.exe'
    Image|endswith:
        - '\schtasks.exe'
        - '\systeminfo.exe'
        - '\fltmc.exe'

Stage 2: not filter

filter:
    ParentImage|startswith:
        - 'c:\windows\system32\'
        - 'c:\windows\syswow64\'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \fltmc.exe corpus 3 (sigma 3)
  • \schtasks.exe corpus 55 (sigma 55)
  • \systeminfo.exe corpus 11 (sigma 11)
field:"Image" kind:ends_with
ParentImageends_with
  • \stordiag.exe
field:"ParentImage" kind:ends_with value:"\stordiag.exe"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ParentImagestarts_withc:\windows\system32\excludes:ParentImage field:"ParentImage" value:"c:\windows\system32\"
ParentImagestarts_withc:\windows\syswow64\excludes:ParentImage field:"ParentImage" value:"c:\windows\syswow64\"

Exploitation Activity of CVE-2025-59287 - WSUS Suspicious Child Process

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

Detects the creation of command-line interpreters (cmd.exe, powershell.exe) as child processes of Windows Server Update Services (WSUS) related process wsusservice.exe. This behavior is a key indicator of exploitation for the critical remote code execution vulnerability such as CVE-2025-59287, where attackers spawn shells to conduct reconnaissance and further post-exploitation activities.

Known False Positives

  • If this activity is expected, consider filtering based on specific command lines, user context (e.g., `nt authority\network service`), or parent process command lines to reduce noise.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Exploitation Activity of CVE-2025-59287 - WSUS Suspicious Child Process
id: 43259cc4-1b80-4931-bd98-baea01afc196
status: experimental
description: |
    Detects the creation of command-line interpreters (cmd.exe, powershell.exe) as child processes of Windows Server Update Services (WSUS) related process wsusservice.exe.
    This behavior is a key indicator of exploitation for the critical remote code execution vulnerability such as CVE-2025-59287, where attackers spawn shells to conduct reconnaissance and further post-exploitation activities.
references:
    - https://unit42.paloaltonetworks.com/microsoft-cve-2025-59287/
    - https://www.huntress.com/blog/exploitation-of-windows-server-update-services-remote-code-execution-vulnerability
    - https://hawktrace.com/blog/CVE-2025-59287-UNAUTH
author: Huntress Labs, Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2025-10-31
tags:
    - attack.execution
    - attack.initial-access
    - attack.t1190
    - attack.t1203
    - cve.2025-59287
    - detection.emerging-threats
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent_wsusservice:
        ParentImage|endswith: '\wsusservice.exe'
    selection_parent_w3wp_wsuspool:
        ParentImage|endswith: '\w3wp.exe'
        ParentCommandLine|contains: 'WsusPool'
    selection_child:
        Image|endswith:
            - '\cmd.exe'
            - '\powershell.exe'
            - '\pwsh.exe'
            - '\powershell_ise.exe'
    condition: 1 of selection_parent_* and selection_child
falsepositives:
    - If this activity is expected, consider filtering based on specific command lines, user context (e.g., `nt authority\network service`), or parent process command lines to reduce noise.
level: high

Stages and Predicates

Stage 0: condition

1 of selection_parent_* and selection_child

Stage 1: selection_parent_wsusservice

selection_parent_wsusservice:
    ParentImage|endswith: '\wsusservice.exe'

Stage 2: selection_parent_w3wp_wsuspool

selection_parent_w3wp_wsuspool:
    ParentImage|endswith: '\w3wp.exe'
    ParentCommandLine|contains: 'WsusPool'

Stage 3: selection_child

selection_child:
    Image|endswith:
        - '\cmd.exe'
        - '\powershell.exe'
        - '\pwsh.exe'
        - '\powershell_ise.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \cmd.exe corpus 132 (sigma 130, splunk 2)
  • \powershell.exe corpus 181 (sigma 180, splunk 1)
  • \powershell_ise.exe corpus 41 (sigma 41)
  • \pwsh.exe corpus 166 (sigma 166)
field:"Image" kind:ends_with
ParentCommandLinematch
  • WsusPool
field:"ParentCommandLine" kind:match value:"WsusPool"
ParentImageends_with
  • \w3wp.exe corpus 12 (sigma 12)
  • \wsusservice.exe
field:"ParentImage" kind:ends_with

Fortinet CVE-2021-22123 Exploitation

#
Status
test
Severity
critical
Author
Bhabesh Raj, Florian Roth
Source
github.com/SigmaHQ/sigma

Detects CVE-2021-22123 exploitation attempt against Fortinet WAFs

MITRE ATT&CK Coverage

TacticTechniques
Initial Access

Rule Body

title: Fortinet CVE-2021-22123 Exploitation
id: f425637f-891c-4191-a6c4-3bb1b70513b4
status: test
description: Detects CVE-2021-22123 exploitation attempt against Fortinet WAFs
references:
    - https://www.rapid7.com/blog/post/2021/08/17/fortinet-fortiweb-os-command-injection
author: Bhabesh Raj, Florian Roth
date: 2021-08-19
modified: 2023-01-02
tags:
    - attack.initial-access
    - attack.t1190
    - cve.2021-22123
    - detection.emerging-threats
logsource:
    category: webserver
detection:
    selection:
        cs-uri-query|contains: '/api/v2.0/user/remoteserver.saml'
        cs-method: POST
    filter1:
        cs-referer|contains: '/root/user/remote-user/saml-user/'
    filter2:
        cs-referer: null
    condition: selection and not filter1 and not filter2
falsepositives:
    - Unknown
level: critical

Stages and Predicates

Stage 0: condition

selection and not filter1 and not filter2

Stage 1: selection

selection:
    cs-uri-query|contains: '/api/v2.0/user/remoteserver.saml'
    cs-method: POST

Stage 2: not filter1

filter1:
    cs-referer|contains: '/root/user/remote-user/saml-user/'

Stage 3: not filter2

filter2:
    cs-referer: null

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
cs-referermatch/root/user/remote-user/saml-user/excludes:cs-referer field:"cs-referer" value:"/root/user/remote-user/saml-user/"
cs-refereris_null(no value, null check)excludes:cs-referer

Get Federation Token

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

Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) for a user. Ex: aws sts get-federation-token --name TrailName --policy PolicyName

MITRE ATT&CK Coverage

Rules Detecting the Same Action

These rules filter on the same operation.

Rule Body

title: Get Federation Token
id: f96305fe-e0ab-4d0f-acb3-bc8ee4f0e098
status: experimental
description: |
    Returns a set of temporary security credentials (consisting of an access key ID, a secret access key, and a security token) for a user.
    Ex: aws sts get-federation-token --name TrailName --policy PolicyName
references:
    - https://www.crowdstrike.com/blog/how-adversaries-persist-with-aws-user-federation/
    - https://reinforce.awsevents.com/content/dam/reinforce/2024/slides/TDR432_New-tactics-and-techniques-for-proactive-threat-detection.pdf
    - https://fwdcloudsec.org/assets/presentations/2024/europe/sebastian-walla-cloud-conscious-tactics-techniques-and-procedures-an-overview.pdf
    - https://securitylabs.datadoghq.com/articles/tales-from-the-cloud-trenches-unwanted-visitor/
    - https://hackingthe.cloud/aws/post_exploitation/create_a_console_session_from_iam_credentials/
    - https://hackingthe.cloud/aws/post_exploitation/survive_access_key_deletion_with_sts_getfederationtoken/
    - https://traildiscover.cloud/#STS-GetFederationToken
author: Zach Mathis (@yamatosecurity)
date: 2025-04-23
modified: 2025-04-23
tags:
    - attack.credential-access
    - attack.t1078.004 # Valid Accounts: Cloud Accounts
logsource:
    product: aws
    service: cloudtrail
detection:
    selection:
        eventName: 'GetFederationToken'
    filter:
        errorCode: 'AccessDenied'
    condition: selection and not filter
falsepositives:
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
    eventName: 'GetFederationToken'

Stage 2: not filter

filter:
    errorCode: 'AccessDenied'

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
errorCodeeqAccessDeniedexcludes:errorCode field:"errorCode" value:"AccessDenied"

Github New Secret Created

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

Detects when a user creates action secret for the organization, environment, codespaces or repository.

Known False Positives

  • This detection cloud be noisy depending on the environment. It is recommended to keep a check on the new secrets when created and validate the "actor".

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Github New Secret Created
id: f9405037-bc97-4eb7-baba-167dad399b83
status: test
description: Detects when a user creates action secret for the organization, environment, codespaces or repository.
author: Muhammad Faisal (@faisalusuf)
date: 2023-01-20
references:
    - https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization#audit-log-actions
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.initial-access
    - attack.stealth
    - attack.t1078.004
logsource:
    product: github
    service: audit
    definition: 'Requirements: The audit log streaming feature must be enabled to be able to receive such logs. You can enable following the documentation here: https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise#setting-up-audit-log-streaming'
detection:
    selection:
        action:
            - 'codespaces.create_an_org_secret'
            - 'environment.create_actions_secret'
            - 'org.create_actions_secret'
            - 'repo.create_actions_secret'
    condition: selection
falsepositives:
    - This detection cloud be noisy depending on the environment. It is recommended to keep a check on the new secrets when created and validate the "actor".
level: low

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    action:
        - 'codespaces.create_an_org_secret'
        - 'environment.create_actions_secret'
        - 'org.create_actions_secret'
        - 'repo.create_actions_secret'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
actioneq
  • codespaces.create_an_org_secret
  • environment.create_actions_secret
  • org.create_actions_secret
  • repo.create_actions_secret
field:"action" kind:eq

Linux Recon Indicators

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

Detects events with patterns found in commands used for reconnaissance on linux systems

Known False Positives

  • Legitimate administration activities

MITRE ATT&CK Coverage

Telemetry Coverage

PlatformRecord / event type
LinuxEvent ID 1: Process Create

Rule Body

title: Linux Recon Indicators
id: 0cf7a157-8879-41a2-8f55-388dd23746b7
status: test
description: Detects events with patterns found in commands used for reconnaissance on linux systems
references:
    - https://github.com/sleventyeleven/linuxprivchecker/blob/0d701080bbf92efd464e97d71a70f97c6f2cd658/linuxprivchecker.py
author: Florian Roth (Nextron Systems)
date: 2022-06-20
tags:
    - attack.reconnaissance
    - attack.t1592.004
    - attack.credential-access
    - attack.t1552.001
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - ' -name .htpasswd'
            - ' -perm -4000 '
    condition: selection
falsepositives:
    - Legitimate administration activities
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    CommandLine|contains:
        - ' -name .htpasswd'
        - ' -perm -4000 '

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • -name .htpasswd
  • -perm -4000
field:"CommandLine" kind:match

Monero Crypto Coin Mining Pool Lookup

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

Detects suspicious DNS queries to Monero mining pools

Known False Positives

  • Legitimate crypto coin mining

MITRE ATT&CK Coverage

Rule Body

title: Monero Crypto Coin Mining Pool Lookup
id: b593fd50-7335-4682-a36c-4edcb68e4641
status: stable
description: Detects suspicious DNS queries to Monero mining pools
references:
    - https://www.nextron-systems.com/2021/10/24/monero-mining-pool-fqdns/
author: Florian Roth (Nextron Systems)
date: 2021-10-24
tags:
    - attack.impact
    - attack.t1496
    - attack.exfiltration
    - attack.t1567
logsource:
    category: dns
detection:
    selection:
        query|contains:
            - 'pool.minexmr.com'
            - 'fr.minexmr.com'
            - 'de.minexmr.com'
            - 'sg.minexmr.com'
            - 'ca.minexmr.com'
            - 'us-west.minexmr.com'
            - 'pool.supportxmr.com'
            - 'mine.c3pool.com'
            - 'xmr-eu1.nanopool.org'
            - 'xmr-eu2.nanopool.org'
            - 'xmr-us-east1.nanopool.org'
            - 'xmr-us-west1.nanopool.org'
            - 'xmr-asia1.nanopool.org'
            - 'xmr-jp1.nanopool.org'
            - 'xmr-au1.nanopool.org'
            - 'xmr.2miners.com'
            - 'xmr.hashcity.org'
            - 'xmr.f2pool.com'
            - 'xmrpool.eu'
            - 'pool.hashvault.pro'
    condition: selection
falsepositives:
    - Legitimate crypto coin mining
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    query|contains:
        - 'pool.minexmr.com'
        - 'fr.minexmr.com'
        - 'de.minexmr.com'
        - 'sg.minexmr.com'
        - 'ca.minexmr.com'
        - 'us-west.minexmr.com'
        - 'pool.supportxmr.com'
        - 'mine.c3pool.com'
        - 'xmr-eu1.nanopool.org'
        - 'xmr-eu2.nanopool.org'
        - 'xmr-us-east1.nanopool.org'
        - 'xmr-us-west1.nanopool.org'
        - 'xmr-asia1.nanopool.org'
        - 'xmr-jp1.nanopool.org'
        - 'xmr-au1.nanopool.org'
        - 'xmr.2miners.com'
        - 'xmr.hashcity.org'
        - 'xmr.f2pool.com'
        - 'xmrpool.eu'
        - 'pool.hashvault.pro'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
querymatch
  • ca.minexmr.com
  • de.minexmr.com
  • fr.minexmr.com
  • mine.c3pool.com
  • pool.hashvault.pro
  • pool.minexmr.com
  • pool.supportxmr.com
  • sg.minexmr.com
  • us-west.minexmr.com
  • xmr-asia1.nanopool.org
  • xmr-au1.nanopool.org
  • xmr-eu1.nanopool.org
  • xmr-eu2.nanopool.org
  • xmr-jp1.nanopool.org
  • xmr-us-east1.nanopool.org
  • xmr-us-west1.nanopool.org
  • xmr.2miners.com
  • xmr.f2pool.com
  • xmr.hashcity.org
  • xmrpool.eu
field:"query" kind:match

MSSQL Disable Audit Settings

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

Detects when an attacker calls the "ALTER SERVER AUDIT" or "DROP SERVER AUDIT" transaction in order to delete or disable audit logs on the server

Known False Positives

  • This event should only fire when an administrator is modifying the audit policy. Which should be a rare occurrence once it's set up

MITRE ATT&CK Coverage

TacticTechniques
Defense ImpairmentNo specific technique

Telemetry Coverage

ProviderRecord / event type
MSSQLSERVEREvent ID 33205

Rule Body

title: MSSQL Disable Audit Settings
id: 350dfb37-3706-4cdc-9e2e-5e24bc3a46df
status: test
description: Detects when an attacker calls the "ALTER SERVER AUDIT" or "DROP SERVER AUDIT" transaction in order to delete or disable audit logs on the server
references:
    - https://www.netspi.com/blog/technical/network-penetration-testing/sql-server-persistence-part-1-startup-stored-procedures/
    - https://learn.microsoft.com/en-us/sql/t-sql/statements/drop-server-audit-transact-sql?view=sql-server-ver16
    - https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-server-audit-transact-sql?view=sql-server-ver16
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-13
modified: 2024-06-26
tags:
    - attack.defense-impairment
logsource:
    product: windows
    service: application
    definition: 'Requirements: MSSQL audit policy must be enabled in order to receive this event in the application log'
    # 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|contains: 'MSSQL' # Note: We use contains to account for other third party providers - See https://github.com/SigmaHQ/sigma/issues/4876
        EventID: 33205
        Data|contains:
            - 'statement:ALTER SERVER AUDIT'
            - 'statement:DROP SERVER AUDIT'
    condition: selection
falsepositives:
    - This event should only fire when an administrator is modifying the audit policy. Which should be a rare occurrence once it's set up
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    Provider_Name|contains: 'MSSQL'
    EventID: 33205
    Data|contains:
        - 'statement:ALTER SERVER AUDIT'
        - 'statement:DROP SERVER AUDIT'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Datamatch
  • statement:ALTER SERVER AUDIT
  • statement:DROP SERVER AUDIT
field:"Data" kind:match
Provider_Namematch
  • MSSQL corpus 7 (sigma 7)
field:"Provider_Name" kind:match value:"MSSQL"

Obfuscated IP Via CLI

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

Detects usage of an encoded/obfuscated version of an IP address (hex, octal, etc.) via command line

MITRE ATT&CK Coverage

TacticTechniques
DiscoveryNo specific technique

Telemetry Coverage

Rule Body

title: Obfuscated IP Via CLI
id: 56d19cb4-6414-4769-9644-1ed35ffbb148
status: test
description: Detects usage of an encoded/obfuscated version of an IP address (hex, octal, etc.) via command line
references:
    - https://h.43z.one/ipconverter/
    - https://twitter.com/Yasser_Elsnbary/status/1553804135354564608
author: Nasreddine Bencherchali (Nextron Systems), X__Junior (Nextron Systems)
date: 2022-08-03
modified: 2026-03-16
tags:
    - attack.discovery
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        Image|endswith:
            - '\ping.exe'
            - '\arp.exe'
    selection_ip_1:
        CommandLine|contains:
            - ' 0x'
            - '//0x'
            - '.0x'
            - '.00x'
    selection_ip_2:
        CommandLine|contains|all:
            - 'http://%'
            - '%2e'
    selection_ip_3:
        # http://81.4.31754
        - CommandLine|re: 'https?://[0-9]{1,3}\.[0-9]{1,3}\.0[0-9]{3,4}'
        # http://81.293898
        - CommandLine|re: 'https?://[0-9]{1,3}\.0[0-9]{3,7}'
        # http://1359248394
        - CommandLine|re: 'https?://0[0-9]{3,11}'
        # http://0121.04.0174.012
        - CommandLine|re: 'https?://(?:0[0-9]{1,11}\.){3}0[0-9]{1,11}'
        # http://012101076012
        - CommandLine|re: 'https?://0[0-9]{1,11}'
        # For octal format
        - CommandLine|re: ' [0-7]{7,13}'
    filter_main_valid_ip:
        CommandLine|re: 'https?://(?:(?:25[0-5]|(?:2[0-4]|1\d|[1-9])?\d)(?:\.|\b)){4}'
    condition: selection_img and 1 of selection_ip_* and not 1 of filter_main_*
falsepositives:
    - Unknown
level: medium

Stages and Predicates

Stage 0: condition

selection_img and 1 of selection_ip_* and not 1 of filter_main_*

Stage 1: selection_img

selection_img:
    Image|endswith:
        - '\ping.exe'
        - '\arp.exe'

Stage 2: selection_ip_1

selection_ip_1:
    CommandLine|contains:
        - ' 0x'
        - '//0x'
        - '.0x'
        - '.00x'

Stage 3: selection_ip_2

selection_ip_2:
    CommandLine|contains|all:
        - 'http://%'
        - '%2e'

Stage 4: selection_ip_3

selection_ip_3:
    - CommandLine|re: 'https?://[0-9]{1,3}\.[0-9]{1,3}\.0[0-9]{3,4}'
    - CommandLine|re: 'https?://[0-9]{1,3}\.0[0-9]{3,7}'
    - CommandLine|re: 'https?://0[0-9]{3,11}'
    - CommandLine|re: 'https?://(?:0[0-9]{1,11}\.){3}0[0-9]{1,11}'
    - CommandLine|re: 'https?://0[0-9]{1,11}'
    - CommandLine|re: ' [0-7]{7,13}'

Stage 5: not filter_main_valid_ip

filter_main_valid_ip:
    CommandLine|re: 'https?://(?:(?:25[0-5]|(?:2[0-4]|1\d|[1-9])?\d)(?:\.|\b)){4}'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • 0x corpus 2 (sigma 2)
  • %2e corpus 2 (sigma 2)
  • .00x corpus 2 (sigma 2)
  • .0x corpus 2 (sigma 2)
  • //0x corpus 2 (sigma 2)
  • http://% corpus 2 (sigma 2)
field:"CommandLine" kind:match
CommandLineregex_match
  • [0-7]{7,13} corpus 2 (sigma 2)
  • https?://(?:0[0-9]{1,11}.){3}0[0-9]{1,11} corpus 2 (sigma 2)
  • https?://0[0-9]{1,11} corpus 2 (sigma 2)
  • https?://0[0-9]{3,11} corpus 2 (sigma 2)
  • https?://[0-9]{1,3}.0[0-9]{3,7} corpus 2 (sigma 2)
  • https?://[0-9]{1,3}.[0-9]{1,3}.0[0-9]{3,4} corpus 2 (sigma 2)
field:"CommandLine" kind:regex_match
Imageends_with
  • \arp.exe corpus 3 (sigma 3)
  • \ping.exe corpus 6 (sigma 6)
field:"Image" kind:ends_with

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
CommandLineregex_matchhttps?://(?:(?:25[0-5]|(?:2[0-4]|1\d|[1-9])?\d)(?:.|\b)){4}excludes:CommandLine field:"CommandLine" value:"https?://(?:(?:25[0-5]|(?:2[0-4]|1\d|[1-9])?\d)(?:.|\b)){4}"

Possible Impacket SecretDump Remote Activity - Zeek

#
Status
test
Severity
high
Author
Samir Bousseaden, @neu5ron
Source
github.com/SigmaHQ/sigma

Detect AD credential dumping using impacket secretdump HKTL. Based on the SIGMA rules/windows/builtin/win_impacket_secretdump.yml

MITRE ATT&CK Coverage

Rule Body

title: Possible Impacket SecretDump Remote Activity - Zeek
id: 92dae1ed-1c9d-4eff-a567-33acbd95b00e
status: test
description: 'Detect AD credential dumping using impacket secretdump HKTL. Based on the SIGMA rules/windows/builtin/win_impacket_secretdump.yml'
references:
    - https://web.archive.org/web/20230329153811/https://blog.menasec.net/2019/02/threat-huting-10-impacketsecretdump.html
author: 'Samir Bousseaden, @neu5ron'
date: 2020-03-19
modified: 2021-11-27
tags:
    - attack.credential-access
    - attack.t1003.002
    - attack.t1003.004
    - attack.t1003.003
logsource:
    product: zeek
    service: smb_files
detection:
    selection:
        path|contains|all:
            - '\'
            - 'ADMIN$'
        name|contains: 'SYSTEM32\'
        name|endswith: '.tmp'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    path|contains|all:
        - '\'
        - 'ADMIN$'
    name|contains: 'SYSTEM32\'
    name|endswith: '.tmp'

Indicators

These rows show field, operator, and value matches.

Potential Exploitation of CrushFTP RCE Vulnerability (CVE-2025-54309)

#
Status
experimental
Severity
high
Author
Nisarg Suthar
Source
github.com/SigmaHQ/sigma

Detects suspicious child processes created by CrushFTP. It could be an indication of exploitation of a RCE vulnerability such as CVE-2025-54309.

Known False Positives

  • Legitimate administrative command execution

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Potential Exploitation of CrushFTP RCE Vulnerability (CVE-2025-54309)
id: 0fdc7c7f-c690-4217-9ae3-31f5156eed72
status: experimental
description: Detects suspicious child processes created by CrushFTP. It could be an indication of exploitation of a RCE vulnerability such as CVE-2025-54309.
references:
    - https://reliaquest.com/blog/threat-spotlight-cve-2025-54309-crushftp-exploit/
    - https://pwn.guide/free/web/crushftp
    - https://firecompass.com/crushftp-vulnerability-cve-2025-54309-securing-file-transfer-services/
author: Nisarg Suthar
date: 2025-08-01
tags:
    - attack.privilege-escalation
    - attack.initial-access
    - attack.execution
    - attack.t1059.001
    - attack.t1059.003
    - attack.t1068
    - attack.t1190
    - cve.2025-54309
    - detection.emerging-threats
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent:
        ParentImage|endswith: '\crushftp.exe'
    selection_child_powershell:
        Image|endswith:
            - '\powershell.exe'
            - '\powershell_ise.exe'
            - '\pwsh.exe'
        CommandLine|contains|all:
            - 'IEX'
            - 'enc'
            - 'Hidden'
            - 'bypass'
    selection_child_cmd:
        Image|endswith: '\cmd.exe'
        CommandLine|contains:
            - '/c powershell'
            - 'whoami'
            - 'net.exe'
            - 'net1.exe'
    selection_child_others:
        Image|endswith:
            - '\bitsadmin.exe'
            - '\certutil.exe'
            - '\mshta.exe'
            - '\cscript.exe'
            - '\wscript.exe'
    condition: selection_parent and 1 of selection_child_*
falsepositives:
    - Legitimate administrative command execution
level: high

Stages and Predicates

Stage 0: condition

selection_parent and 1 of selection_child_*

Stage 1: selection_parent

selection_parent:
    ParentImage|endswith: '\crushftp.exe'

Stage 2: selection_child_powershell

selection_child_powershell:
    Image|endswith:
        - '\powershell.exe'
        - '\powershell_ise.exe'
        - '\pwsh.exe'
    CommandLine|contains|all:
        - 'IEX'
        - 'enc'
        - 'Hidden'
        - 'bypass'

Stage 3: selection_child_cmd

selection_child_cmd:
    Image|endswith: '\cmd.exe'
    CommandLine|contains:
        - '/c powershell'
        - 'whoami'
        - 'net.exe'
        - 'net1.exe'

Stage 4: selection_child_others

selection_child_others:
    Image|endswith:
        - '\bitsadmin.exe'
        - '\certutil.exe'
        - '\mshta.exe'
        - '\cscript.exe'
        - '\wscript.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /c powershell corpus 3 (sigma 3)
  • Hidden corpus 4 (sigma 4)
  • IEX corpus 6 (sigma 5, splunk 1)
  • bypass corpus 6 (sigma 6)
  • enc corpus 3 (sigma 3)
  • net.exe corpus 2 (sigma 2)
  • net1.exe corpus 2 (sigma 2)
  • whoami corpus 12 (sigma 9, splunk 2, elastic 1)
field:"CommandLine" kind:match
Imageends_with
  • \bitsadmin.exe corpus 29 (sigma 29)
  • \certutil.exe corpus 43 (sigma 43)
  • \cmd.exe corpus 132 (sigma 130, splunk 2)
  • \cscript.exe corpus 72 (sigma 72)
  • \mshta.exe corpus 67 (sigma 66, splunk 1)
  • \powershell.exe corpus 181 (sigma 180, splunk 1)
  • \powershell_ise.exe corpus 41 (sigma 41)
  • \pwsh.exe corpus 166 (sigma 166)
  • \wscript.exe corpus 74 (sigma 74)
field:"Image" kind:ends_with
ParentImageends_with
  • \crushftp.exe
field:"ParentImage" kind:ends_with value:"\crushftp.exe"

Potential Information Disclosure CVE-2023-43261 Exploitation - Web

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

Detects exploitation attempts of CVE-2023-43261 and information disclosure in Milesight UR5X, UR32L, UR32, UR35, UR41 before v35.3.0.7 that allows attackers to access sensitive router components in access logs.

MITRE ATT&CK Coverage

TacticTechniques
Initial Access

Rule Body

title: Potential Information Disclosure CVE-2023-43261 Exploitation - Web
id: a2bcca38-9f3a-4d5e-b603-0c587e8569d7
related:
    - id: f48f5368-355c-4a1b-8bf5-11c13d589eaa
      type: similar
status: test
description: |
    Detects exploitation attempts of CVE-2023-43261 and information disclosure in Milesight UR5X, UR32L, UR32, UR35, UR41 before v35.3.0.7 that allows attackers to access sensitive router components in access logs.
references:
    - https://thehackernews.com/2023/10/experts-warn-of-severe-flaws-affecting.html
    - https://medium.com/@win3zz/inside-the-router-how-i-accessed-industrial-routers-and-reported-the-flaws-29c34213dfdf
    - https://github.com/win3zz/CVE-2023-43261
    - https://vulncheck.com/blog/real-world-cve-2023-43261
author: Nasreddine Bencherchali (Nextron Systems), Thurein Oo
date: 2023-10-20
modified: 2023-10-30
tags:
    - attack.initial-access
    - attack.t1190
    - cve.2023-43621
    - detection.emerging-threats
logsource:
    category: webserver
    definition: 'Requirements: In order for this detection to trigger, access logs of the router must be collected.'
detection:
    selection:
        cs-method: 'GET'
        # Note: In theory the path can also be for other files. But since the logs can contains password and interesting information. Its most likely going to be targeted during a real attack
        cs-uri-stem|contains: '/lang/log/httpd.log' # Als covered .old
        sc-status: 200
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    cs-method: 'GET'
    cs-uri-stem|contains: '/lang/log/httpd.log'
    sc-status: 200

Indicators

These rows show field, operator, and value matches.

Potential Libvlc.DLL Sideloading

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

Detects potential DLL sideloading of "libvlc.dll", a DLL that is legitimately used by "VLC.exe"

Known False Positives

  • False positives are expected if VLC is installed in non-default locations

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 7: Image loaded

Rule Body

title: Potential Libvlc.DLL Sideloading
id: bf9808c4-d24f-44a2-8398-b65227d406b6
status: test
description: Detects potential DLL sideloading of "libvlc.dll", a DLL that is legitimately used by "VLC.exe"
references:
    - https://www.trendmicro.com/en_us/research/23/c/earth-preta-updated-stealthy-strategies.html
    - https://hijacklibs.net/entries/3rd_party/vlc/libvlc.html
author: X__Junior
date: 2023-04-17
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.execution
    - attack.stealth
    - attack.t1574.001
logsource:
    category: image_load
    product: windows
detection:
    selection:
        ImageLoaded|endswith: '\libvlc.dll'
    filter_main_vlc:
        ImageLoaded|startswith:
            - 'C:\Program Files (x86)\VideoLAN\VLC\'
            - 'C:\Program Files\VideoLAN\VLC\'
    condition: selection and not 1 of filter_main_*
falsepositives:
    - False positives are expected if VLC is installed in non-default locations
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

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

Stage 2: not filter_main_vlc

filter_main_vlc:
    ImageLoaded|startswith:
        - 'C:\Program Files (x86)\VideoLAN\VLC\'
        - 'C:\Program Files\VideoLAN\VLC\'

Indicators

These rows show field, operator, and value matches.

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
ImageLoadedstarts_withC:\Program Files (x86)\VideoLAN\VLC\excludes:ImageLoaded field:"ImageLoaded" value:"C:\Program Files (x86)\VideoLAN\VLC\"
ImageLoadedstarts_withC:\Program Files\VideoLAN\VLC\excludes:ImageLoaded field:"ImageLoaded" value:"C:\Program Files\VideoLAN\VLC\"

Potential Renamed Rundll32 Execution

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

Detects when 'DllRegisterServer' is called in the commandline and the image is not rundll32. This could mean that the 'rundll32' utility has been renamed in order to avoid detection

Known False Positives

  • Unlikely

MITRE ATT&CK Coverage

TacticTechniques
ExecutionNo specific technique

Telemetry Coverage

Rule Body

title: Potential Renamed Rundll32 Execution
id: 2569ed8c-1147-498a-9b8c-2ad3656b10ed
related:
    - id: 0ba1da6d-b6ce-4366-828c-18826c9de23e
      type: derived
status: test
description: Detects when 'DllRegisterServer' is called in the commandline and the image is not rundll32. This could mean that the 'rundll32' utility has been renamed in order to avoid detection
references:
    - https://twitter.com/swisscom_csirt/status/1331634525722521602?s=20
    - https://app.any.run/tasks/f74c5157-8508-4ac6-9805-d63fe7b0d399/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-22
modified: 2023-02-03
tags:
    - attack.execution
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        CommandLine|contains: 'DllRegisterServer'
    filter:
        Image|endswith: '\rundll32.exe'
    condition: selection and not filter
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
    CommandLine|contains: 'DllRegisterServer'

Stage 2: not filter

filter:
    Image|endswith: '\rundll32.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • DllRegisterServer corpus 3 (sigma 2, splunk 1)
field:"CommandLine" kind:match value:"DllRegisterServer"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
Imageends_with\rundll32.exeexcludes:Image field:"Image" value:"\rundll32.exe"

Removal Of Index Value to Hide Schedule Task - Registry

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

Detects when the "index" value of a scheduled task is removed or deleted from the registry. Which effectively hides it from any tooling such as "schtasks /query"

MITRE ATT&CK Coverage

TacticTechniques
Defense Impairment

Telemetry Coverage

Rule Body

title: Removal Of Index Value to Hide Schedule Task - Registry
id: 526cc8bc-1cdc-48ad-8b26-f19bff969cec
related:
    - id: acd74772-5f88-45c7-956b-6a7b36c294d2
      type: similar
    - id: 5b16df71-8615-4f7f-ac9b-6c43c0509e61
      type: similar
status: test
description: Detects when the "index" value of a scheduled task is removed or deleted from the registry. Which effectively hides it from any tooling such as "schtasks /query"
references:
    - https://blog.qualys.com/vulnerabilities-threat-research/2022/06/20/defending-against-scheduled-task-attacks-in-windows-environments
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-26
modified: 2025-10-25
tags:
    - attack.defense-impairment
    - attack.t1685
logsource:
    product: windows
    category: registry_delete
detection:
    selection:
        TargetObject|contains|all:
            - '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\'
            - 'Index'
    condition: selection
falsepositives:
    - Unknown
level: medium
regression_tests_path: regression_data/rules/windows/registry/registry_delete/registry_delete_schtasks_hide_task_via_index_value_removal/info.yml

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    TargetObject|contains|all:
        - '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\'
        - 'Index'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
TargetObjectmatch
  • Index corpus 2 (sigma 2)
  • \SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\ corpus 4 (sigma 4)
field:"TargetObject" kind:match

Suspicious Download From File-Sharing Website Via Bitsadmin

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

Detects usage of bitsadmin downloading a file from a suspicious domain

Known False Positives

  • Some legitimate apps use this, but limited.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Suspicious Download From File-Sharing Website Via Bitsadmin
id: 8518ed3d-f7c9-4601-a26c-f361a4256a0c
related:
    - id: 8b48ad89-10d8-4382-a546-50588c410f0d
      type: similar
    - id: d635249d-86b5-4dad-a8c7-d7272b788586
      type: similar
    - id: 52182dfb-afb7-41db-b4bc-5336cb29b464
      type: similar
    - id: ae02ed70-11aa-4a22-b397-c0d0e8f6ea99
      type: similar
    - id: e0f8ab85-0ac9-423b-a73a-81b3c7b1aa97
      type: similar
    - id: 7b434893-c57d-4f41-908d-6a17bf1ae98f
      type: similar
    - id: 42a5f1e7-9603-4f6d-97ae-3f37d130d794
      type: similar
    - id: 56454143-524f-49fb-b1c6-3fb8b1ad41fb
      type: similar
    - id: b6e04788-29e1-4557-bb14-77f761848ab8
      type: similar
    - id: a0d7e4d2-bede-4141-8896-bc6e237e977c
      type: similar
    - id: 297ae038-edc2-4b2e-bb3e-7c5fc94dd5c7
      type: similar
status: test
description: Detects usage of bitsadmin downloading a file from a suspicious domain
references:
    - https://blog.netspi.com/15-ways-to-download-a-file/#bitsadmin
    - https://isc.sans.edu/diary/22264
    - https://lolbas-project.github.io/lolbas/Binaries/Bitsadmin/
    - https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/ransomware-hive-conti-avoslocker
    - https://www.cisa.gov/uscert/ncas/alerts/aa22-321a
    - https://www.microsoft.com/en-us/security/blog/2024/01/17/new-ttps-observed-in-mint-sandstorm-campaign-targeting-high-profile-individuals-at-universities-and-research-orgs/
author: Florian Roth (Nextron Systems)
date: 2022-06-28
modified: 2026-03-29
tags:
    - attack.persistence
    - attack.execution
    - attack.stealth
    - attack.t1197
    - attack.s0190
    - attack.t1036.003
    - attack.command-and-control
    - attack.t1105
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith: '\bitsadmin.exe'
        - OriginalFileName: 'bitsadmin.exe'
    selection_flags:
        CommandLine|contains:
            - ' /transfer '
            - ' /create '
            - ' /addfile '
    selection_domain:
        CommandLine|contains:
            - '.githubusercontent.com'       # Includes both gists and github repositories / Michael Haag (idea)
            - '0x0.st'
            - 'anonfiles.com'
            - 'bashupload.com'
            - 'cdn.discordapp.com'
            - 'chunk.io'
            - 'ddns.net'
            - 'dl.dropboxusercontent.com'
            - 'ghostbin.co'
            - 'github.com' # bitsadmin /transfer n https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1047/bin/calc.dll %PUBLIC%\calc.dll
            - 'glitch.me'
            - 'gofile.io'
            - 'hastebin.com'
            - 'mediafire.com'
            - 'mega.nz'
            - 'onrender.com'
            - 'pages.dev'
            - 'paste.ee'
            - 'pastebin.com'
            - 'pastebin.pl'
            - 'pastetext.net'
            - 'privatlab.com'
            - 'privatlab.net'
            - 'send.exploit.in'
            - 'sendspace.com'
            - 'storage.googleapis.com'
            - 'storjshare.io'
            - 'supabase.co'
            - 'temp.sh'
            - 'transfer.sh'
            - 'trycloudflare.com'
            - 'ufile.io'
            - 'w3spaces.com'
            - 'workers.dev'
            - 'x0.at'
    condition: all of selection_*
falsepositives:
    - Some legitimate apps use this, but limited.
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_bitsadmin_download_file_sharing_domains/info.yml
simulation:
    - type: atomic-red-team
      name: Windows - BITSAdmin BITS Download
      technique: T1105
      atomic_guid: a1921cd3-9a2d-47d5-a891-f1d0f2a7a31b

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

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

Stage 2: selection_flags

selection_flags:
    CommandLine|contains:
        - ' /transfer '
        - ' /create '
        - ' /addfile '

Stage 3: selection_domain

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

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLinematch
  • /addfile corpus 5 (sigma 5)
  • /create corpus 15 (sigma 15)
  • /transfer corpus 5 (sigma 5)
  • .githubusercontent.com corpus 4 (sigma 4)
  • 0x0.st corpus 6 (sigma 6)
  • anonfiles.com corpus 5 (sigma 5)
  • bashupload.com corpus 6 (sigma 6)
  • cdn.discordapp.com corpus 5 (sigma 5)
  • chunk.io corpus 6 (sigma 6)
  • ddns.net corpus 5 (sigma 5)
  • dl.dropboxusercontent.com corpus 5 (sigma 5)
  • ghostbin.co corpus 5 (sigma 5)
  • github.com corpus 4 (sigma 4)
  • glitch.me corpus 5 (sigma 5)
  • gofile.io corpus 6 (sigma 5, elastic 1)
  • hastebin.com corpus 5 (sigma 5)
  • mediafire.com corpus 5 (sigma 5)
  • mega.nz corpus 5 (sigma 5)
  • onrender.com corpus 5 (sigma 5)
  • pages.dev corpus 5 (sigma 5)
  • paste.ee corpus 6 (sigma 5, elastic 1)
  • pastebin.com corpus 5 (sigma 5)
  • pastebin.pl corpus 5 (sigma 5)
  • pastetext.net corpus 5 (sigma 5)
  • privatlab.com corpus 5 (sigma 5)
  • privatlab.net corpus 5 (sigma 5)
  • send.exploit.in corpus 5 (sigma 5)
  • sendspace.com corpus 5 (sigma 5)
  • storage.googleapis.com corpus 5 (sigma 5)
  • storjshare.io corpus 5 (sigma 5)
  • supabase.co corpus 5 (sigma 5)
  • temp.sh corpus 6 (sigma 6)
  • transfer.sh corpus 7 (sigma 6, elastic 1)
  • trycloudflare.com corpus 5 (sigma 5)
  • ufile.io corpus 7 (sigma 6, elastic 1)
  • w3spaces.com corpus 5 (sigma 5)
  • workers.dev corpus 5 (sigma 5)
  • x0.at corpus 6 (sigma 6)
field:"CommandLine" kind:match
Imageends_with
  • \bitsadmin.exe corpus 29 (sigma 29)
field:"Image" kind:ends_with value:"\bitsadmin.exe"
OriginalFileNameeq
  • bitsadmin.exe corpus 19 (sigma 9, elastic 8, splunk 2)
field:"OriginalFileName" kind:eq value:"bitsadmin.exe"

Suspicious Parent Double Extension File Execution

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

Detect execution of suspicious double extension files in ParentCommandLine

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Suspicious Parent Double Extension File Execution
id: 5e6a80c8-2d45-4633-9ef4-fa2671a39c5c
related:
    - id: 1cdd9a09-06c9-4769-99ff-626e2b3991b8 # Image/CommandLine
      type: derived
status: test
description: Detect execution of suspicious double extension files in ParentCommandLine
references:
    - https://www.virustotal.com/gui/file/7872d8845a332dce517adae9c3389fde5313ff2fed38c2577f3b498da786db68/behavior
    - https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/bluebottle-banks-targeted-africa
author: frack113, Nasreddine Bencherchali (Nextron Systems)
date: 2023-01-06
modified: 2023-02-28
tags:
    - attack.stealth
    - attack.t1036.007
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        - ParentImage|endswith:
              - '.doc.lnk'
              - '.docx.lnk'
              - '.xls.lnk'
              - '.xlsx.lnk'
              - '.ppt.lnk'
              - '.pptx.lnk'
              - '.rtf.lnk'
              - '.pdf.lnk'
              - '.txt.lnk'
              - '.doc.js'
              - '.docx.js'
              - '.xls.js'
              - '.xlsx.js'
              - '.ppt.js'
              - '.pptx.js'
              - '.rtf.js'
              - '.pdf.js'
              - '.txt.js'
        - ParentCommandLine|contains:
              - '.doc.lnk'
              - '.docx.lnk'
              - '.xls.lnk'
              - '.xlsx.lnk'
              - '.ppt.lnk'
              - '.pptx.lnk'
              - '.rtf.lnk'
              - '.pdf.lnk'
              - '.txt.lnk'
              - '.doc.js'
              - '.docx.js'
              - '.xls.js'
              - '.xlsx.js'
              - '.ppt.js'
              - '.pptx.js'
              - '.rtf.js'
              - '.pdf.js'
              - '.txt.js'
    condition: selection
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    - ParentImage|endswith:
          - '.doc.lnk'
          - '.docx.lnk'
          - '.xls.lnk'
          - '.xlsx.lnk'
          - '.ppt.lnk'
          - '.pptx.lnk'
          - '.rtf.lnk'
          - '.pdf.lnk'
          - '.txt.lnk'
          - '.doc.js'
          - '.docx.js'
          - '.xls.js'
          - '.xlsx.js'
          - '.ppt.js'
          - '.pptx.js'
          - '.rtf.js'
          - '.pdf.js'
          - '.txt.js'
    - ParentCommandLine|contains:
          - '.doc.lnk'
          - '.docx.lnk'
          - '.xls.lnk'
          - '.xlsx.lnk'
          - '.ppt.lnk'
          - '.pptx.lnk'
          - '.rtf.lnk'
          - '.pdf.lnk'
          - '.txt.lnk'
          - '.doc.js'
          - '.docx.js'
          - '.xls.js'
          - '.xlsx.js'
          - '.ppt.js'
          - '.pptx.js'
          - '.rtf.js'
          - '.pdf.js'
          - '.txt.js'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
ParentCommandLinematch
  • .doc.js
  • .doc.lnk
  • .docx.js
  • .docx.lnk
  • .pdf.js
  • .pdf.lnk
  • .ppt.js
  • .ppt.lnk
  • .pptx.js
  • .pptx.lnk
  • .rtf.js
  • .rtf.lnk
  • .txt.js
  • .txt.lnk
  • .xls.js
  • .xls.lnk
  • .xlsx.js
  • .xlsx.lnk
field:"ParentCommandLine" kind:match
ParentImageends_with
  • .doc.js
  • .doc.lnk
  • .docx.js
  • .docx.lnk
  • .pdf.js
  • .pdf.lnk
  • .ppt.js
  • .ppt.lnk
  • .pptx.js
  • .pptx.lnk
  • .rtf.js
  • .rtf.lnk
  • .txt.js
  • .txt.lnk
  • .xls.js
  • .xls.lnk
  • .xlsx.js
  • .xlsx.lnk
field:"ParentImage" kind:ends_with

Suspicious PsExec Execution

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

detects execution of psexec or paexec with renamed service name, this rule helps to filter out the noise if psexec is used for legit purposes or if attacker uses a different psexec client other than sysinternal one

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Suspicious PsExec Execution
id: c462f537-a1e3-41a6-b5fc-b2c2cef9bf82
status: test
description: detects execution of psexec or paexec with renamed service name, this rule helps to filter out the noise if psexec is used for legit purposes or if attacker uses a different psexec client other than sysinternal one
references:
    - https://web.archive.org/web/20230329171218/https://blog.menasec.net/2019/02/threat-hunting-3-detecting-psexec.html
author: Samir Bousseaden
date: 2019-04-03
modified: 2022-08-11
tags:
    - attack.lateral-movement
    - attack.t1021.002
logsource:
    product: windows
    service: security
    definition: 'The advanced audit policy setting "Object Access > Audit Detailed File Share" must be configured for Success/Failure'
detection:
    selection1:
        EventID: 5145
        ShareName: '\\\\\*\\IPC$' # looking for the string \\*\IPC$
        RelativeTargetName|endswith:
            - '-stdin'
            - '-stdout'
            - '-stderr'
    filter:
        RelativeTargetName|startswith: 'PSEXESVC'
    condition: selection1 and not filter
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection1 and not filter

Stage 1: selection1

selection1:
    EventID: 5145
    ShareName: '\\\\\*\\IPC$'
    RelativeTargetName|endswith:
        - '-stdin'
        - '-stdout'
        - '-stderr'

Stage 2: not filter

filter:
    RelativeTargetName|startswith: 'PSEXESVC'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
RelativeTargetNameends_with
  • -stderr
  • -stdin
  • -stdout
field:"RelativeTargetName" kind:ends_with
ShareNameeq
  • \\\\\*\\IPC$ corpus 7 (sigma 7)
field:"ShareName" kind:eq value:"\\\\\*\\IPC$"

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
RelativeTargetNamestarts_withPSEXESVCexcludes:RelativeTargetName field:"RelativeTargetName" value:"PSEXESVC"

TAIDOOR RAT DLL Load

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

Detects specific process characteristics of Chinese TAIDOOR RAT malware load

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: TAIDOOR RAT DLL Load
id: d1aa3382-abab-446f-96ea-4de52908210b
status: test
description: Detects specific process characteristics of Chinese TAIDOOR RAT malware load
references:
    - https://us-cert.cisa.gov/ncas/analysis-reports/ar20-216a
author: Florian Roth (Nextron Systems)
date: 2020-07-30
modified: 2021-11-27
tags:
    - attack.privilege-escalation
    - attack.execution
    - attack.stealth
    - attack.t1055.001
    - detection.emerging-threats
logsource:
    category: process_creation
    product: windows
detection:
    selection1:
        CommandLine|contains:
            - 'dll,MyStart'
            - 'dll MyStart'
    selection2a:
        CommandLine|endswith: ' MyStart'
    selection2b:
        CommandLine|contains: 'rundll32.exe'
    condition: selection1 or ( selection2a and selection2b )
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

selection1 or ( selection2a and selection2b )

Stage 1: selection1

selection1:
    CommandLine|contains:
        - 'dll,MyStart'
        - 'dll MyStart'

Stage 2: selection2a

selection2a:
    CommandLine|endswith: ' MyStart'

Stage 3: selection2b

selection2b:
    CommandLine|contains: 'rundll32.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
CommandLineends_with
  • MyStart
field:"CommandLine" kind:ends_with value:" MyStart"
CommandLinematch
  • dll MyStart
  • dll,MyStart
  • rundll32.exe corpus 8 (sigma 8)
field:"CommandLine" kind:match

Use NTFS Short Name in Image

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

Detect use of the Windows 8.3 short name. Which could be used as a method to avoid Image based detection

Known False Positives

  • Software Installers

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Use NTFS Short Name in Image
id: 3ef5605c-9eb9-47b0-9a71-b727e6aa5c3b
related:
    - id: dd6b39d9-d9be-4a3b-8fe0-fe3c6a5c1795
      type: similar
status: test
description: Detect use of the Windows 8.3 short name. Which could be used as a method to avoid Image based detection
references:
    - https://www.acunetix.com/blog/articles/windows-short-8-3-filenames-web-security-problem/
    - https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc959352(v=technet.10)
    - https://twitter.com/jonasLyk/status/1555914501802921984
author: frack113, Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-06
modified: 2023-07-20
tags:
    - attack.stealth
    - attack.t1564.004
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|contains:
            - '~1.bat'
            - '~1.dll'
            - '~1.exe'
            - '~1.hta'
            - '~1.js'
            - '~1.msi'
            - '~1.ps1'
            - '~1.tmp'
            - '~1.vbe'
            - '~1.vbs'
            - '~2.bat'
            - '~2.dll'
            - '~2.exe'
            - '~2.hta'
            - '~2.js'
            - '~2.msi'
            - '~2.ps1'
            - '~2.tmp'
            - '~2.vbe'
            - '~2.vbs'
    filter_main_generic_parent:
        ParentImage: 'C:\Windows\explorer.exe'
    filter_optional_webex:
        ParentImage|endswith: '\WebEx\WebexHost.exe'
    filter_optional_thor:
        ParentImage|endswith: '\thor\thor64.exe'
    filter_optional_winzip:
        Image: 'C:\PROGRA~1\WinZip\WZPREL~1.EXE'
    filter_optional_vcred:
        Image|endswith: '\VCREDI~1.EXE'
    condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
    - Software Installers
level: medium

Stages and Predicates

Stage 0: condition

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

Stage 1: selection

selection:
    Image|contains:
        - '~1.bat'
        - '~1.dll'
        - '~1.exe'
        - '~1.hta'
        - '~1.js'
        - '~1.msi'
        - '~1.ps1'
        - '~1.tmp'
        - '~1.vbe'
        - '~1.vbs'
        - '~2.bat'
        - '~2.dll'
        - '~2.exe'
        - '~2.hta'
        - '~2.js'
        - '~2.msi'
        - '~2.ps1'
        - '~2.tmp'
        - '~2.vbe'
        - '~2.vbs'

Stage 2: not filter_main_generic_parent

filter_main_generic_parent:
    ParentImage: 'C:\Windows\explorer.exe'

Stage 3: not filter_optional_*

filter_optional_webex:
    ParentImage|endswith: '\WebEx\WebexHost.exe'
filter_optional_thor:
    ParentImage|endswith: '\thor\thor64.exe'
filter_optional_winzip:
    Image: 'C:\PROGRA~1\WinZip\WZPREL~1.EXE'
filter_optional_vcred:
    Image|endswith: '\VCREDI~1.EXE'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imagematch
  • ~1.bat
  • ~1.dll
  • ~1.exe
  • ~1.hta
  • ~1.js
  • ~1.msi
  • ~1.ps1
  • ~1.tmp
  • ~1.vbe
  • ~1.vbs
  • ~2.bat
  • ~2.dll
  • ~2.exe
  • ~2.hta
  • ~2.js
  • ~2.msi
  • ~2.ps1
  • ~2.tmp
  • ~2.vbe
  • ~2.vbs
field:"Image" kind:match

Exclusions

The rule actively suppresses these predicates.

Use of FSharp Interpreters

#
Status
test
Severity
medium
Author
Christopher Peacock @SecurePeacock, SCYTHE @scythe_io
Source
github.com/SigmaHQ/sigma

Detects the execution of FSharp Interpreters "FsiAnyCpu.exe" and "FSi.exe" Both can be used for AWL bypass and to execute F# code via scripts or inline.

Known False Positives

  • Legitimate use by a software developer.

MITRE ATT&CK Coverage

Telemetry Coverage

ProviderRecord / event type
SysmonEvent ID 1: Process creation

Rule Body

title: Use of FSharp Interpreters
id: b96b2031-7c17-4473-afe7-a30ce714db29
status: test
description: |
    Detects the execution of FSharp Interpreters "FsiAnyCpu.exe" and "FSi.exe"
    Both can be used for AWL bypass and to execute F# code via scripts or inline.
references:
    - https://learn.microsoft.com/en-us/windows/security/application-security/application-control/windows-defender-application-control/design/applications-that-can-bypass-wdac
    - https://bohops.com/2020/11/02/exploring-the-wdac-microsoft-recommended-block-rules-part-ii-wfc-fsi/
    - https://lolbas-project.github.io/lolbas/OtherMSBinaries/FsiAnyCpu/
    - https://lolbas-project.github.io/lolbas/OtherMSBinaries/Fsi/
author: Christopher Peacock @SecurePeacock, SCYTHE @scythe_io
date: 2022-06-02
modified: 2024-04-23
tags:
    - attack.execution
    - attack.t1059
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        - Image|endswith:
              - '\fsi.exe'
              - '\fsianycpu.exe'
        - OriginalFileName:
              - 'fsi.exe'
              - 'fsianycpu.exe'
    condition: selection
falsepositives:
    - Legitimate use by a software developer.
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    - Image|endswith:
          - '\fsi.exe'
          - '\fsianycpu.exe'
    - OriginalFileName:
          - 'fsi.exe'
          - 'fsianycpu.exe'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \fsi.exe
  • \fsianycpu.exe
field:"Image" kind:ends_with
OriginalFileNameeq
  • fsi.exe
  • fsianycpu.exe
field:"OriginalFileName" kind:eq

Webshell Remote Command Execution

#
Status
test
Severity
critical
Author
Ilyas Ochkov, Beyu Denis, oscd.community
Source
github.com/SigmaHQ/sigma

Detects possible command execution by web application/web shell

Known False Positives

  • Admin activity
  • Crazy web applications

MITRE ATT&CK Coverage

Telemetry Coverage

Rule Body

title: Webshell Remote Command Execution
id: c0d3734d-330f-4a03-aae2-65dacc6a8222
status: test
description: Detects possible command execution by web application/web shell
references:
    - Personal Experience of the Author
    - https://www.vaadata.com/blog/what-is-command-injection-exploitations-and-security-best-practices/
author: Ilyas Ochkov, Beyu Denis, oscd.community
date: 2019-10-12
modified: 2025-12-05
tags:
    - attack.persistence
    - attack.t1505.003
logsource:
    product: linux
    service: auditd
    definition: |
        Required auditd configuration:
        -a always,exit -F arch=b32 -S execve -F euid=33 -k detect_execve_www
        -a always,exit -F arch=b64 -S execve -F euid=33 -k detect_execve_www
        -a always,exit -F arch=b32 -S execveat -F euid=33 -k detect_execve_www
        -a always,exit -F arch=b64 -S execveat -F euid=33 -k detect_execve_www
        Change the number "33" to the ID of your WebServer user. Default: www-data:x:33:33
detection:
    selection:
        type: 'SYSCALL'
        SYSCALL:
            - 'execve'
            - 'execveat'
        euid: 33
    condition: selection
falsepositives:
    - Admin activity
    - Crazy web applications
level: critical

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    type: 'SYSCALL'
    SYSCALL:
        - 'execve'
        - 'execveat'
    euid: 33

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
SYSCALLeq
  • execve
  • execveat
field:"SYSCALL" kind:eq
euideq
  • 33
field:"euid" kind:eq value:"33"
typeeq
  • SYSCALL corpus 27 (splunk 15, sigma 12)
field:"type" kind:eq value:"SYSCALL"

Back to all Sigma rules