Detection rules › Sigma
Sigma rules: 23
A Member Was Added to a Security-Enabled Global Group
#Detects activity when a member is added to a security-enabled global group
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4728: A member was added to a security-enabled global group. |
Rule Body
title: A Member Was Added to a Security-Enabled Global Group
id: c43c26be-2e87-46c7-8661-284588c5a53e
related:
- id: 9cf01b6c-e723-4841-a868-6d7f8245ca6e
type: obsolete
status: stable
description: Detects activity when a member is added to a security-enabled global group
references:
- https://www.cisecurity.org/controls/cis-controls-list/
- https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf
- https://nvlpubs.nist.gov/nistpubs/CSWP/NIST.CSWP.04162018.pdf
- https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=4728
- https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=632
author: Alexandr Yampolskyi, SOC Prime
date: 2023-04-26
tags:
- attack.privilege-escalation
- attack.persistence
- attack.t1098
logsource:
product: windows
service: security
detection:
selection:
EventID:
- 4728 # A member was added to a security-enabled global group
- 632 # Security Enabled Global Group Member Added
condition: selection
falsepositives:
- Unknown
level: low
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID:
- 4728
- 632
Add Debugger Entry To Hangs Key For Persistence
#Detects when an attacker adds a new "Debugger" value to the "Hangs" key in order to achieve persistence which will get invoked when an application crashes
Known False Positives
- This value is not set by default but could be rarly used by administrators
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | No specific technique |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 13: RegistryEvent (Value Set) |
Rule Body
title: Add Debugger Entry To Hangs Key For Persistence
id: 833ef470-fa01-4631-a79b-6f291c9ac498
status: test
description: Detects when an attacker adds a new "Debugger" value to the "Hangs" key in order to achieve persistence which will get invoked when an application crashes
references:
- https://persistence-info.github.io/Data/wer_debugger.html
- https://www.hexacorn.com/blog/2019/09/20/beyond-good-ol-run-key-part-116/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-21
modified: 2023-08-17
tags:
- attack.persistence
logsource:
category: registry_set
product: windows
detection:
selection:
TargetObject|contains: '\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Hangs\Debugger'
condition: selection
falsepositives:
- This value is not set by default but could be rarly used by administrators
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetObject|contains: '\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Hangs\Debugger'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetObject | match |
| field:"TargetObject" kind:match value:"\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Hangs\Debugger" |
Atbroker Registry Change
#Detects creation/modification of Assistive Technology applications and persistence with usage of 'at'
Known False Positives
- Creation of non-default, legitimate at usage
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation | |
| Stealth |
Telemetry Coverage
Rule Body
title: Atbroker Registry Change
id: 9577edbb-851f-4243-8c91-1d5b50c1a39b
status: test
description: Detects creation/modification of Assistive Technology applications and persistence with usage of 'at'
references:
- http://www.hexacorn.com/blog/2016/07/22/beyond-good-ol-run-key-part-42/
- https://lolbas-project.github.io/lolbas/Binaries/Atbroker/
author: Mateusz Wydra, oscd.community
date: 2020-10-13
modified: 2023-01-19
tags:
- attack.privilege-escalation
- attack.stealth
- attack.t1218
- attack.persistence
- attack.t1547
logsource:
category: registry_event
product: windows
detection:
selection:
TargetObject|contains:
- 'Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs'
- 'Software\Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration'
filter_atbroker:
Image: 'C:\Windows\system32\atbroker.exe'
TargetObject|contains: '\Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration'
Details: '(Empty)'
filter_uninstallers:
Image|startswith: 'C:\Windows\Installer\MSI'
TargetObject|contains: 'Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs'
condition: selection and not 1 of filter_*
falsepositives:
- Creation of non-default, legitimate at usage
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_*Stage 1: selection
selection:
TargetObject|contains:
- 'Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs'
- 'Software\Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration'
Stage 2: not filter_*
filter_atbroker:
Image: 'C:\Windows\system32\atbroker.exe'
TargetObject|contains: '\Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration'
Details: '(Empty)'
filter_uninstallers:
Image|startswith: 'C:\Windows\Installer\MSI'
TargetObject|contains: 'Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetObject | match |
| field:"TargetObject" kind:match |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Details | eq | (Empty) | excludes:Details field:"Details" value:"(Empty)" |
Image | eq | C:\Windows\system32\atbroker.exe | excludes:Image field:"Image" value:"C:\Windows\system32\atbroker.exe" |
TargetObject | match | \Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration | excludes:TargetObject field:"TargetObject" value:"\Microsoft\Windows NT\CurrentVersion\Accessibility\Configuration" |
Image | starts_with | C:\Windows\Installer\MSI | excludes:Image field:"Image" value:"C:\Windows\Installer\MSI" |
TargetObject | match | Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs | excludes:TargetObject field:"TargetObject" value:"Software\Microsoft\Windows NT\CurrentVersion\Accessibility\ATs" |
Azure Subscription Permission Elevation Via AuditLogs
#Detects when a user has been elevated to manage all Azure Subscriptions. This change should be investigated immediately if it isn't planned. This setting could allow an attacker access to Azure subscriptions in your environment.
Known False Positives
- If this was approved by System Administrator.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Persistence | |
| Privilege Escalation | |
| Stealth |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Azure | Assigns the caller to user access admin |
Rules Detecting the Same Action
These rules filter on the same operation.
- Azure Active Directory Hybrid Health AD FS New Server (Sigma)
- Azure Active Directory Hybrid Health AD FS Service Delete (Sigma)
- Detect Custom Script or Run Command deployment by risky user (Kusto)
- Microsoft Entra ID Hybrid Health AD FS New Server (Kusto)
- Microsoft Entra ID Hybrid Health AD FS Service Delete (Kusto)
- Microsoft Entra ID Hybrid Health AD FS Suspicious Application (Kusto)
- NRT Microsoft Entra ID Hybrid Health AD FS New Server (Kusto)
Rule Body
title: Azure Subscription Permission Elevation Via AuditLogs
id: ca9bf243-465e-494a-9e54-bf9fc239057d
status: test
description: |
Detects when a user has been elevated to manage all Azure Subscriptions.
This change should be investigated immediately if it isn't planned.
This setting could allow an attacker access to Azure subscriptions in your environment.
references:
- https://learn.microsoft.com/en-us/entra/architecture/security-operations-privileged-accounts#assignment-and-elevation
author: Austin Songer @austinsonger
date: 2021-11-26
modified: 2022-12-25
tags:
- attack.privilege-escalation
- attack.persistence
- attack.initial-access
- attack.stealth
- attack.t1078
logsource:
product: azure
service: auditlogs
detection:
selection:
Category: 'Administrative'
OperationName: 'Assigns the caller to user access admin'
condition: selection
falsepositives:
- If this was approved by System Administrator.
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Category: 'Administrative'
OperationName: 'Assigns the caller to user access admin'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Category | eq |
| field:"Category" kind:eq value:"Administrative" |
OperationName | eq |
| field:"OperationName" kind:eq value:"Assigns the caller to user access admin" |
Blue Mockingbird - Registry
#Attempts to detect system changes made by Blue Mockingbird
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Persistence | |
| Defense Impairment |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 13: RegistryEvent (Value Set) |
Rule Body
title: Blue Mockingbird - Registry
id: 92b0b372-a939-44ed-a11b-5136cf680e27
related:
- id: c3198a27-23a0-4c2c-af19-e5328d49680e
type: derived
status: test
description: Attempts to detect system changes made by Blue Mockingbird
references:
- https://redcanary.com/blog/blue-mockingbird-cryptominer/
author: Trent Liffick (@tliffick)
date: 2020-05-14
modified: 2023-08-17
tags:
- attack.execution
- attack.persistence
- attack.defense-impairment
- attack.t1112
- attack.t1047
- detection.emerging-threats
logsource:
product: windows
category: registry_set
detection:
selection:
TargetObject|endswith: '\CurrentControlSet\Services\wercplsupport\Parameters\ServiceDll'
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetObject|endswith: '\CurrentControlSet\Services\wercplsupport\Parameters\ServiceDll'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetObject | ends_with |
| field:"TargetObject" kind:ends_with value:"\CurrentControlSet\Services\wercplsupport\Parameters\ServiceDll" |
Creation Of Pod In System Namespace
#Detects deployments of pods within the kube-system namespace, which could be intended to imitate system pods. System pods, created by controllers such as Deployments or DaemonSets have random suffixes in their names. Attackers can use this fact and name their backdoor pods as if they were created by these controllers to avoid detection. Deployment of such a backdoor container e.g. named kube-proxy-bv61v, could be attempted in the kube-system namespace alongside the other administrative containers.
Known False Positives
- System components such as daemon-set-controller and kube-scheduler also create pods in the kube-system namespace
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Kubernetes | create-pods: create pods |
Rules Detecting the Same Action
These rules filter on the same operation.
- Azure AKS Attempted User Exec into Pod (Elastic)
- Container With A hostPath Mount Created (Sigma)
- Direct Interactive Kubernetes API Request by Unusual Utilities (Elastic)
- Exec into Pod (Panther)
- GCP Break-glass Container Workload Deployed (Sigma)
- GCP K8s Pod Attached To Node Host Network (Panther)
- GCP K8S Pod Create Or Modify Host Path Volume Mount (Panther)
- GCP K8s Pod Using Host PID Namespace (Panther)
Rule Body
title: Creation Of Pod In System Namespace
id: a80d927d-ac6e-443f-a867-e8d6e3897318
status: test
description: |
Detects deployments of pods within the kube-system namespace, which could be intended to imitate system pods.
System pods, created by controllers such as Deployments or DaemonSets have random suffixes in their names.
Attackers can use this fact and name their backdoor pods as if they were created by these controllers to avoid detection.
Deployment of such a backdoor container e.g. named kube-proxy-bv61v, could be attempted in the kube-system namespace alongside the other administrative containers.
references:
- https://microsoft.github.io/Threat-Matrix-for-Kubernetes/techniques/Pod%20or%20container%20name%20similarily/
author: Leo Tsaousis (@laripping)
date: 2024-03-26
tags:
- attack.stealth
- attack.t1036.005
logsource:
category: application
product: kubernetes
service: audit
detection:
selection:
verb: 'create'
objectRef.resource: 'pods'
objectRef.namespace: kube-system
condition: selection
falsepositives:
- System components such as daemon-set-controller and kube-scheduler also create pods in the kube-system namespace
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
verb: 'create'
objectRef.resource: 'pods'
objectRef.namespace: kube-system
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
objectRef.namespace | eq |
| field:"objectRef.namespace" kind:eq value:"kube-system" |
objectRef.resource | eq |
| field:"objectRef.resource" kind:eq value:"pods" |
verb | eq |
| field:"verb" kind:eq value:"create" |
HackTool - CrackMapExec Execution Patterns
#Detects various execution patterns of the CrackMapExec pentesting framework
MITRE ATT&CK Coverage
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: HackTool - CrackMapExec Execution Patterns
id: 058f4380-962d-40a5-afce-50207d36d7e2
status: stable
description: Detects various execution patterns of the CrackMapExec pentesting framework
references:
- https://github.com/byt3bl33d3r/CrackMapExec
author: Thomas Patzke
date: 2020-05-22
modified: 2023-11-06
tags:
- attack.privilege-escalation
- attack.persistence
- attack.execution
- attack.t1047
- attack.t1053
- attack.t1059.003
- attack.t1059.001
- attack.s0106
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains:
# cme/protocols/smb/wmiexec.py (generalized execute_remote and execute_fileless)
- 'cmd.exe /Q /c * 1> \\\\*\\*\\* 2>&1'
# cme/protocols/smb/atexec.py:109 (fileless output via share)
- 'cmd.exe /C * > \\\\*\\*\\* 2>&1'
# cme/protocols/smb/atexec.py:111 (fileless output via share)
- 'cmd.exe /C * > *\\Temp\\* 2>&1'
# https://github.com/byt3bl33d3r/CrackMapExec/blob/d8c50c8cbaf36c29329078662473f75e440978d2/cme/helpers/powershell.py#L136 (PowerShell execution with obfuscation)
- 'powershell.exe -exec bypass -noni -nop -w 1 -C "'
# https://github.com/byt3bl33d3r/CrackMapExec/blob/d8c50c8cbaf36c29329078662473f75e440978d2/cme/helpers/powershell.py#L160 (PowerShell execution without obfuscation)
- 'powershell.exe -noni -nop -w 1 -enc '
condition: selection
falsepositives:
- Unknown
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_hktl_crackmapexec_execution_patterns/info.yml
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
CommandLine|contains:
- 'cmd.exe /Q /c * 1> \\\\*\\*\\* 2>&1'
- 'cmd.exe /C * > \\\\*\\*\\* 2>&1'
- 'cmd.exe /C * > *\\Temp\\* 2>&1'
- 'powershell.exe -exec bypass -noni -nop -w 1 -C "'
- 'powershell.exe -noni -nop -w 1 -enc '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Insensitive Subfolder Search Via Findstr.EXE
#Detects execution of findstr with the "s" and "i" flags for a "subfolder" and "insensitive" search respectively. Attackers sometimes leverage this built-in utility to search the system for interesting files or filter through results of commands.
Known False Positives
- Administrative or software activity
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth | |
| Credential Access | |
| Command & Control |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Insensitive Subfolder Search Via Findstr.EXE
id: 04936b66-3915-43ad-a8e5-809eadfd1141
related:
- id: bf6c39fc-e203-45b9-9538-05397c1b4f3f
type: obsolete
status: test
description: |
Detects execution of findstr with the "s" and "i" flags for a "subfolder" and "insensitive" search respectively. Attackers sometimes leverage this built-in utility to search the system for interesting files or filter through results of commands.
references:
- https://lolbas-project.github.io/lolbas/Binaries/Findstr/
- https://oddvar.moe/2018/04/11/putting-data-in-alternate-data-streams-and-how-to-execute-it-part-2/
- https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f
author: Furkan CALISKAN, @caliskanfurkan_, @oscd_initiative, Nasreddine Bencherchali (Nextron Systems)
date: 2020-10-05
modified: 2024-03-05
tags:
- attack.credential-access
- attack.command-and-control
- attack.stealth
- attack.t1218
- attack.t1564.004
- attack.t1552.001
- attack.t1105
logsource:
category: process_creation
product: windows
detection:
selection_findstr:
- CommandLine|contains: findstr
- Image|endswith: 'findstr.exe'
- OriginalFileName: 'FINDSTR.EXE'
selection_cli_search_subfolder:
CommandLine|contains|windash: ' -s '
selection_cli_search_insensitive:
CommandLine|contains|windash: ' -i '
condition: selection_findstr and all of selection_cli_search_*
falsepositives:
- Administrative or software activity
level: low
Stages and Predicates
Stage 0: condition
selection_findstr and all of selection_cli_search_*Stage 1: selection_findstr
selection_findstr:
- CommandLine|contains: findstr
- Image|endswith: 'findstr.exe'
- OriginalFileName: 'FINDSTR.EXE'
Stage 2: selection_cli_search_subfolder
selection_cli_search_subfolder:
CommandLine|contains|windash: ' -s '
Stage 3: selection_cli_search_insensitive
selection_cli_search_insensitive:
CommandLine|contains|windash: ' -i '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with value:"findstr.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"FINDSTR.EXE" |
macOS ESF Deletion In Sensitive Directories
#Detect unlink (delete) operations in sensitive directories such as LaunchAgents/Daemons or system configs.
Known False Positives
- legitimate maintenance or upgrades
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Rule Body
title: macOS ESF Deletion In Sensitive Directories
id: 52b5612d-3c9e-4a4a-9b7a-1b6f94b6a0aa
status: experimental
description: Detect unlink (delete) operations in sensitive directories such as LaunchAgents/Daemons
or system configs.
author: Eric Brown - Nebulock, Inc.
date: 2025-10-29
logsource:
product: macos
service: endpointsecurity
level: medium
detection:
selection_evt:
esf.event_type: 19
event.action: unlink
selection_path:
TargetFilename|startswith:
- /Library/LaunchDaemons/
- /Library/LaunchAgents/
- /System/Library/LaunchDaemons/
- /etc/
condition: selection_evt and selection_path
falsepositives:
- legitimate maintenance or upgrades
modified: 2025/01/15
Stages and Predicates
Stage 0: condition
selection_evt and selection_pathStage 1: selection_evt
selection_evt:
esf.event_type: 19
event.action: unlink
Stage 2: selection_path
selection_path:
TargetFilename|startswith:
- /Library/LaunchDaemons/
- /Library/LaunchAgents/
- /System/Library/LaunchDaemons/
- /etc/
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetFilename | starts_with |
| field:"TargetFilename" kind:starts_with |
esf.event_type | eq |
| field:"esf.event_type" kind:eq value:"19" |
event.action | eq |
| field:"EventType" kind:eq value:"unlink" |
New member added to a "OCS/Lync/Skype for Business" administration group (low risk)
#Detects scenarios where a new member is added to a sensitive administration group related to OCS/Lync/Skype for Business in order to scan topology, infiltrate servers and move laterally.
Known False Positives
- OCS/Lync/Skype administrator updating server configuration or topology
- OCS/Lync/Skype upgrade or migration
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence |
Telemetry Coverage
Rule Body
title: New member added to a "OCS/Lync/Skype for Business" administration group (low risk)
description: Detects scenarios where a new member is added to a sensitive administration group related to OCS/Lync/Skype for Business in order to scan topology, infiltrate servers and move laterally.
references:
- https://docs.microsoft.com/en-us/previous-versions/office/lync-server-2013/lync-server-2013-planning-for-role-based-access-control
- https://docs.microsoft.com/en-us/skypeforbusiness/schema-reference/active-directory-schema-extensions-classes-and-attributes/changes-made-by-forest-preparation
- https://blog.insideo365.com/2012/11/a-lync-administrator-access-refresher/
tags:
- attack.persistence
- attack.t1098
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: security
detection:
selection:
EventID:
- 4728 # security global group member added
- 4756 # universal group member added
- 4732 # local and domain local group member added
TargetUserName:
- CSHelpDesk
- CSLocationAdministrator
- CSPersistentChatAdministrator
- CSResponseGroupAdministrator
- CSResponseGroupManager
- CSViewOnlyAdministrator
- CSVoiceAdministrator
- RTCComponentUniversalServices
- RTCProxyUniversalServices
- RTCSBAUniversalServices
- RTCUniversalConfigReplicator
- RTCUniversalGlobalReadOnlyGroup
- RTCUniversalReadOnlyAdmins
- RTCUniversalServerReadOnlyGroup
- RTCUniversalUserAdmins
- RTCUniversalUserReadOnlyGroup
condition: selection
falsepositives:
- OCS/Lync/Skype administrator updating server configuration or topology
- OCS/Lync/Skype upgrade or migration
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID:
- 4728
- 4756
- 4732
TargetUserName:
- CSHelpDesk
- CSLocationAdministrator
- CSPersistentChatAdministrator
- CSResponseGroupAdministrator
- CSResponseGroupManager
- CSViewOnlyAdministrator
- CSVoiceAdministrator
- RTCComponentUniversalServices
- RTCProxyUniversalServices
- RTCSBAUniversalServices
- RTCUniversalConfigReplicator
- RTCUniversalGlobalReadOnlyGroup
- RTCUniversalReadOnlyAdmins
- RTCUniversalServerReadOnlyGroup
- RTCUniversalUserAdmins
- RTCUniversalUserReadOnlyGroup
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetUserName | eq |
| field:"TargetUserName" kind:eq |
New Service Creation Using PowerShell
#Detects the creation of a new service using powershell.
Known False Positives
- Legitimate administrator or user creates a service for legitimate reasons.
- Software installation
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: New Service Creation Using PowerShell
id: c02e96b7-c63a-4c47-bd83-4a9f74afcfb2
related:
- id: 85ff530b-261d-48c6-a441-facaa2e81e48 # Using Sc.EXE
type: similar
status: test
description: Detects the creation of a new service using powershell.
references:
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1543.003/T1543.003.md
author: Timur Zinniatullin, Daniil Yugoslavskiy, oscd.community
date: 2023-02-20
tags:
- attack.persistence
- attack.privilege-escalation
- attack.t1543.003
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains|all:
- 'New-Service'
- '-BinaryPathName'
condition: selection
falsepositives:
- Legitimate administrator or user creates a service for legitimate reasons.
- Software installation
level: low
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
CommandLine|contains|all:
- 'New-Service'
- '-BinaryPathName'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Potential Persistence Via Outlook LoadMacroProviderOnBoot Setting
#Detects the modification of Outlook setting "LoadMacroProviderOnBoot" which if enabled allows the automatic loading of any configured VBA project/module
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation | |
| Command & Control |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 13: RegistryEvent (Value Set) |
Rule Body
title: Potential Persistence Via Outlook LoadMacroProviderOnBoot Setting
id: 396ae3eb-4174-4b9b-880e-dc0364d78a19
status: test
description: Detects the modification of Outlook setting "LoadMacroProviderOnBoot" which if enabled allows the automatic loading of any configured VBA project/module
references:
- https://speakerdeck.com/heirhabarov/hunting-for-persistence-via-microsoft-exchange-server-or-outlook?slide=53
- https://www.linkedin.com/pulse/outlook-backdoor-using-vba-samir-b-/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2021-04-05
modified: 2023-08-17
tags:
- attack.privilege-escalation
- attack.persistence
- attack.command-and-control
- attack.t1137
- attack.t1008
- attack.t1546
logsource:
category: registry_set
product: windows
detection:
selection:
TargetObject|endswith: '\Outlook\LoadMacroProviderOnBoot'
Details|contains: '0x00000001'
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetObject|endswith: '\Outlook\LoadMacroProviderOnBoot'
Details|contains: '0x00000001'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Details | match |
| field:"Details" kind:match value:"0x00000001" |
TargetObject | ends_with |
| field:"TargetObject" kind:ends_with value:"\Outlook\LoadMacroProviderOnBoot" |
Potential Regsvr32 Commandline Flag Anomaly
#Detects a potential command line flag anomaly related to "regsvr32" in which the "/i" flag is used without the "/n" which should be uncommon.
Known False Positives
- Administrator typo might cause some false positives
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Potential Regsvr32 Commandline Flag Anomaly
id: b236190c-1c61-41e9-84b3-3fe03f6d76b0
status: test
description: Detects a potential command line flag anomaly related to "regsvr32" in which the "/i" flag is used without the "/n" which should be uncommon.
references:
- https://twitter.com/sbousseaden/status/1282441816986484737?s=12
author: Florian Roth (Nextron Systems)
date: 2019-07-13
modified: 2024-03-13
tags:
- attack.stealth
- attack.t1218.010
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: '\regsvr32.exe'
CommandLine|contains|windash: ' -i:'
filter_main_flag:
CommandLine|contains|windash: ' -n '
condition: selection and not 1 of filter_main_*
falsepositives:
- Administrator typo might cause some false positives
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
Image|endswith: '\regsvr32.exe'
CommandLine|contains|windash: ' -i:'
Stage 2: not filter_main_flag
filter_main_flag:
CommandLine|contains|windash: ' -n '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match value:" -i:" |
Image | ends_with |
| field:"Image" kind:ends_with value:"\regsvr32.exe" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
CommandLine | match | -n | excludes:CommandLine field:"CommandLine" value:" -n " |
CommandLine | match | /n | excludes:CommandLine field:"CommandLine" value:" /n " |
CommandLine | match | –n | excludes:CommandLine field:"CommandLine" value:" –n " |
CommandLine | match | —n | excludes:CommandLine field:"CommandLine" value:" —n " |
CommandLine | match | ―n | excludes:CommandLine field:"CommandLine" value:" ―n " |
Risk of signup fraud - rapid creation of fake accounts with disposable email domains
#Detect potential signup fraud by monitoring the use of disposable emails.
Known False Positives
- Legitimate users using disposable email addresses for privacy reasons.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence |
Rule Body
title: Risk of signup fraud - rapid creation of fake accounts with disposable email domains
id: e92605d8-716d-11f0-b2ae-723487b9527c
name: selected_events
status: experimental
description: |
Detect potential signup fraud by monitoring the use of disposable emails.
author: Okta
date: 2025-07-11
modified: 2025-09-17
logsource:
product: auth0
references:
- https://blog.castle.io/fraudulent-email-domain-tracker-july-2025/
detection:
selection:
data.type: ss
data.user_name|endswith: # examples of email domains, see reference (the custle blog)
- "@mailinator.com"
- "@yopmail.com"
- "@10minutetempemail.com"
- "@guerrillamail.com"
- "@temp-mail.org"
- "@disposable.com"
- "@mailnesia.com"
- "@sharklasers.com"
- "@getnada.com"
condition: selection
explanation: >
The query monitors successful signups events when a disposable email has been used.
The Splunk query considers a number of signups within specified time chunks (e.g. 1h)
and alerts when the number of users with disposable emails exceeds a threshold.
splunk: |
index=auth0 data.tenant_name="{your-tenant-name}"
data.type = ss
| fields data.user_name, data.user_id, data.type
| bin _time span=1h
| search data.user_name IN ("*@mailinator.com", "*@yopmail.com", "*@10minutemail.com",
"*@guerrillamail.com", "*@temp-mail.org", "*@disposable.com", "*@mailnesia.com",
"*@sharklasers.com", "*@getnada.com", "*@mohmal.com")
| stats dc(data.user_name) as user_count values(data.user_name) as user_names
values(data.user_id) as user_ids by _time, data.type
| where user_count > {thresholds_disposable_emails}
comments:
- The Splunk query above shall be tuned to reflect a valid tenant name.
- The value for thresholds_disposable_emails should be set based on the customer's environment and expected behavior.
- To learn normality, it is recommended to run the query (excluding "where" clauses) for a period of time
and calculate the thresholds based on the observed data.
- The query can be adjusted to account for a longer public blocklist, e.g. available on github, using a lookup table.
- It also can be extended with a list of fraudulent email domains provided by the reference above (the catle blog).
tenant_logs: |
type:"fs" OR type:"ss" OR type:"signup_pwd_leak"
prevention:
- Use pre-registration actions to block any registration with disposable emails.
- Force email OTP validation built-in feature of a Database connection on signup.
- Enforce email link based validation on signup and deny access to unverified accounts
terminating sessions and revoking tokens.
- Block or delete the created fraudulent accounts.
- Instead of blocking users, consider to use additional risk signals to increase assurance in
further activities from these users.
- Enable breached password protection and bot detection to detect and block suspicious activities.
- For high-risk applications, consider to enforce identity proofing or closely monitoring activities from such accounts.
falsepositives:
- Legitimate users using disposable email addresses for privacy reasons.
level: medium
tags:
- attack.resource-development
- attack.t1136
---
title: Surge in signup events from disposable domains
id: 7b4433e7-2857-4cfc-bfe0-29dc74feb63f
correlation:
type: value_count
rules:
- selected_events # Referenced here
group-by:
- data.ip
timespan: 1h
condition:
gte: 0
field: data.user_name
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
data.type: ss
data.user_name|endswith:
- "@mailinator.com"
- "@yopmail.com"
- "@10minutetempemail.com"
- "@guerrillamail.com"
- "@temp-mail.org"
- "@disposable.com"
- "@mailnesia.com"
- "@sharklasers.com"
- "@getnada.com"
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
data.type | eq |
| field:"data.type" kind:eq value:"ss" |
data.user_name | ends_with |
| field:"data.user_name" kind:ends_with |
Roles Activation Doesn't Require MFA
#Identifies when a privilege role can be activated without performing mfa.
Known False Positives
- Investigate if user is performing MFA at sign-in.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Persistence | |
| Privilege Escalation | |
| Stealth |
Rule Body
title: Roles Activation Doesn't Require MFA
id: 94a66f46-5b64-46ce-80b2-75dcbe627cc0
status: test
description: Identifies when a privilege role can be activated without performing mfa.
references:
- https://learn.microsoft.com/en-us/entra/id-governance/privileged-identity-management/pim-how-to-configure-security-alerts#roles-dont-require-multi-factor-authentication-for-activation
author: Mark Morowczynski '@markmorow', Gloria Lee, '@gleeiamglo'
date: 2023-09-14
tags:
- attack.initial-access
- attack.stealth
- attack.t1078
- attack.persistence
- attack.privilege-escalation
logsource:
product: azure
service: pim
detection:
selection:
riskEventType: 'noMfaOnRoleActivationAlertIncident'
condition: selection
falsepositives:
- Investigate if user is performing MFA at sign-in.
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
riskEventType: 'noMfaOnRoleActivationAlertIncident'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
riskEventType | eq |
| field:"azure_ad::risk_event_types" kind:eq value:"noMfaOnRoleActivationAlertIncident" |
Suspicious Kerberos Ticket Request via CLI
#Detects suspicious Kerberos ticket requests via command line using System.IdentityModel.Tokens.KerberosRequestorSecurityToken class. Threat actors may use command line interfaces to request Kerberos tickets for service accounts in order to perform offline password cracking attacks commonly known as Kerberoasting or other Kerberos ticket abuse techniques like silver ticket attacks.
Known False Positives
- Legitimate command line usage by administrators or security tools.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Suspicious Kerberos Ticket Request via CLI
id: caa9a802-8bd8-4b9e-a5cd-4d6221670219
related:
- id: a861d835-af37-4930-bcd6-5b178bfb54df
type: similar
status: experimental
description: |
Detects suspicious Kerberos ticket requests via command line using System.IdentityModel.Tokens.KerberosRequestorSecurityToken class.
Threat actors may use command line interfaces to request Kerberos tickets for service accounts in order to
perform offline password cracking attacks commonly known as Kerberoasting or other Kerberos ticket abuse
techniques like silver ticket attacks.
references:
- https://www.huntress.com/blog/gootloader-threat-detection-woff2-obfuscation
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1558.003/T1558.003.md#atomic-test-4---request-a-single-ticket-via-powershell
- https://learn.microsoft.com/en-us/dotnet/api/system.identitymodel.tokens.kerberosrequestorsecuritytoken?view=netframework-4.8.1
author: Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2025-11-18
tags:
- attack.credential-access
- attack.t1558.003
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- OriginalFileName:
- 'powershell.exe'
- 'pwsh.dll'
selection_cli:
CommandLine|contains|all:
- 'System.IdentityModel.Tokens.KerberosRequestorSecurityToken'
- '.GetRequest()'
condition: all of selection_*
falsepositives:
- Legitimate command line usage by administrators or security tools.
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_img
selection_img:
- Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- OriginalFileName:
- 'powershell.exe'
- 'pwsh.dll'
Stage 2: selection_cli
selection_cli:
CommandLine|contains|all:
- 'System.IdentityModel.Tokens.KerberosRequestorSecurityToken'
- '.GetRequest()'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq |
Suspicious OpenSSH Daemon Error
#Detects suspicious SSH / SSHD error messages that indicate a fatal or suspicious error that could be caused by exploiting attempts
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Rule Body
title: Suspicious OpenSSH Daemon Error
id: e76b413a-83d0-4b94-8e4c-85db4a5b8bdc
status: test
description: Detects suspicious SSH / SSHD error messages that indicate a fatal or suspicious error that could be caused by exploiting attempts
references:
- https://github.com/openssh/openssh-portable/blob/c483a5c0fb8e8b8915fad85c5f6113386a4341ca/ssherr.c
- https://github.com/ossec/ossec-hids/blob/1ecffb1b884607cb12e619f9ab3c04f530801083/etc/rules/sshd_rules.xml
author: Florian Roth (Nextron Systems)
date: 2017-06-30
modified: 2021-11-27
tags:
- attack.initial-access
- attack.t1190
logsource:
product: linux
service: sshd
detection:
keywords:
- 'unexpected internal error'
- 'unknown or unsupported key type'
- 'invalid certificate signing key'
- 'invalid elliptic curve value'
- 'incorrect signature'
- 'error in libcrypto'
- 'unexpected bytes remain after decoding'
- 'fatal: buffer_get_string: bad string'
- 'Local: crc32 compensation attack'
- 'bad client public DH value'
- 'Corrupted MAC on input'
condition: keywords
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
keywordsStage 1: keywords
keywords:
- 'unexpected internal error'
- 'unknown or unsupported key type'
- 'invalid certificate signing key'
- 'invalid elliptic curve value'
- 'incorrect signature'
- 'error in libcrypto'
- 'unexpected bytes remain after decoding'
- 'fatal: buffer_get_string: bad string'
- 'Local: crc32 compensation attack'
- 'bad client public DH value'
- 'Corrupted MAC on input'
Suspicious Rundll32 Activity Invoking Sys File
#Detects suspicious process related to rundll32 based on command line that includes a *.sys file as seen being used by UNC2452
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Suspicious Rundll32 Activity Invoking Sys File
id: 731231b9-0b5d-4219-94dd-abb6959aa7ea
status: test
description: Detects suspicious process related to rundll32 based on command line that includes a *.sys file as seen being used by UNC2452
references:
- https://www.microsoft.com/security/blog/2021/03/04/goldmax-goldfinder-sibot-analyzing-nobelium-malware/
author: Florian Roth (Nextron Systems)
date: 2021-03-05
modified: 2022-10-09
tags:
- attack.stealth
- attack.t1218.011
logsource:
category: process_creation
product: windows
detection:
selection1:
CommandLine|contains: 'rundll32.exe'
selection2:
CommandLine|contains:
- '.sys,'
- '.sys '
condition: all of selection*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
all of selection*Stage 1: selection1
selection1:
CommandLine|contains: 'rundll32.exe'
Stage 2: selection2
selection2:
CommandLine|contains:
- '.sys,'
- '.sys '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Suspicious Service DACL Modification Via Set-Service Cmdlet
#Detects suspicious DACL modifications via the "Set-Service" cmdlet using the "SecurityDescriptorSddl" flag (Only available with PowerShell 7) that can be used to hide services or make them unstopable
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Suspicious Service DACL Modification Via Set-Service Cmdlet
id: a95b9b42-1308-4735-a1af-abb1c5e6f5ac
related:
- id: 99cf1e02-00fb-4c0d-8375-563f978dfd37
type: derived
status: test
description: Detects suspicious DACL modifications via the "Set-Service" cmdlet using the "SecurityDescriptorSddl" flag (Only available with PowerShell 7) that can be used to hide services or make them unstopable
references:
- https://www.sans.org/blog/red-team-tactics-hiding-windows-services/
- https://learn.microsoft.com/pt-br/windows/win32/secauthz/sid-strings
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-10-18
tags:
- attack.privilege-escalation
- attack.persistence
- attack.t1543.003
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith: '\pwsh.exe'
- OriginalFileName: 'pwsh.dll'
selection_sddl_flag:
CommandLine|contains:
- '-SecurityDescriptorSddl '
- '-sd '
selection_set_service:
CommandLine|contains|all:
- 'Set-Service '
- 'D;;'
CommandLine|contains:
- ';;;IU'
- ';;;SU'
- ';;;BA'
- ';;;SY'
- ';;;WD'
condition: all of selection_*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_img
selection_img:
- Image|endswith: '\pwsh.exe'
- OriginalFileName: 'pwsh.dll'
Stage 2: selection_sddl_flag
selection_sddl_flag:
CommandLine|contains:
- '-SecurityDescriptorSddl '
- '-sd '
Stage 3: selection_set_service
selection_set_service:
CommandLine|contains|all:
- 'Set-Service '
- 'D;;'
CommandLine|contains:
- ';;;IU'
- ';;;SU'
- ';;;BA'
- ';;;SY'
- ';;;WD'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with value:"\pwsh.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"pwsh.dll" |
Visual Basic Command Line Compiler Usage
#Detects successful code compilation via Visual Basic Command Line Compiler that utilizes Windows Resource to Object Converter.
Known False Positives
- Utilization of this tool should not be seen in enterprise environment
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Visual Basic Command Line Compiler Usage
id: 7b10f171-7f04-47c7-9fa2-5be43c76e535
status: test
description: Detects successful code compilation via Visual Basic Command Line Compiler that utilizes Windows Resource to Object Converter.
references:
- https://lolbas-project.github.io/lolbas/Binaries/Vbc/
author: 'Ensar Şamil, @sblmsrsn, @oscd_initiative'
date: 2020-10-07
modified: 2021-11-27
tags:
- attack.stealth
- attack.t1027.004
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith: '\vbc.exe'
Image|endswith: '\cvtres.exe'
condition: selection
falsepositives:
- Utilization of this tool should not be seen in enterprise environment
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
ParentImage|endswith: '\vbc.exe'
Image|endswith: '\cvtres.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with value:"\cvtres.exe" |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\vbc.exe" |
Windows Defender Exclusions Added - Registry
#Detects the Setting of Windows Defender Exclusions
Known False Positives
- Administrator actions
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Defense Impairment |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 13: RegistryEvent (Value Set) |
Rule Body
title: Windows Defender Exclusions Added - Registry
id: a982fc9c-6333-4ffb-a51d-addb04e8b529
related:
- id: 1321dc4e-a1fe-481d-a016-52c45f0c8b4f
type: derived
status: test
description: Detects the Setting of Windows Defender Exclusions
references:
- https://twitter.com/_nullbind/status/1204923340810543109
author: Christian Burkard (Nextron Systems)
date: 2021-07-06
modified: 2023-08-17
tags:
- attack.defense-impairment
- attack.t1685
logsource:
product: windows
category: registry_set
detection:
selection2:
TargetObject|contains: '\Microsoft\Windows Defender\Exclusions'
condition: selection2
falsepositives:
- Administrator actions
level: medium
Stages and Predicates
Stage 0: condition
selection2Stage 1: selection2
selection2:
TargetObject|contains: '\Microsoft\Windows Defender\Exclusions'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetObject | match |
| field:"TargetObject" kind:match value:"\Microsoft\Windows Defender\Exclusions" |
Windows native Pktmon sniffer abuse
#Detects scenarios where an attacker use the Windows sniffer Pktmon in order to capture sensitive information or credentials.
Known False Positives
- Administrator network troubleshooting
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
| Security-Auditing | Event ID 4688: A new process has been created. |
Rule Body
title: Windows native Pktmon sniffer abuse
description: Detects scenarios where an attacker use the Windows sniffer Pktmon in order to capture sensitive information or credentials.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0006-Credential%20Access/T1040-Traffic%20sniffing
- https://dev.to/qainsights/windows-network-sniffer-pktmon-2576
- https://docs.microsoft.com/en-us/windows-server/networking/technologies/pktmon/pktmon
tags:
- attack.credential_access
- attack.t1040 # Network Sniffing
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: process_creation
detection:
selection:
NewProcessName|endswith: '\PktMon.exe'
CommandLine|contains|all: # full command : 'pktmon filter add -p 80'
- pktmon
- filter
- add
condition: selection
falsepositives:
- Administrator network troubleshooting
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
NewProcessName|endswith: '\PktMon.exe'
CommandLine|contains|all:
- pktmon
- filter
- add
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
NewProcessName | ends_with |
| field:"Image" kind:ends_with value:"\PktMon.exe" |
Winrs Local Command Execution
#Detects the execution of Winrs.exe where it is used to execute commands locally. Commands executed this way are launched under Winrshost.exe and can represent proxy execution used for defense evasion or lateral movement.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth | |
| Lateral Movement |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Winrs Local Command Execution
id: bcfece3d-56fe-4545-9931-3b8e92927db1
status: experimental
description: |
Detects the execution of Winrs.exe where it is used to execute commands locally.
Commands executed this way are launched under Winrshost.exe and can represent proxy execution used for defense evasion or lateral movement.
references:
- https://cardinalops.com/blog/living-off-winrm-abusing-complexity-in-remote-management/
- https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/winrs
author: Liran Ravich, Nasreddine Bencherchali
date: 2025-10-22
tags:
- attack.lateral-movement
- attack.stealth
- attack.t1021.006
- attack.t1218
logsource:
category: process_creation
product: windows
detection:
selection_img:
# Note: Example of command to simulate (winrm needs to be enabled): "c:\Windows\System32\winrs.exe" calc.exe
- Image|endswith: '\winrs.exe'
- OriginalFileName: 'winrs.exe'
selection_local_ip:
CommandLine|contains|windash:
- '/r:localhost'
- '/r:127.0.0.1'
- '/r:[::1]'
- '/remote:localhost'
- '/remote:127.0.0.1'
- '/remote:[::1]'
filter_main_remote:
CommandLine|contains|windash:
- "/r:"
- "/remote:"
condition: all of selection_* or (selection_img and not 1 of filter_main_*)
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
all of selection_* or (selection_img and not 1 of filter_main_*)Stage 1: selection_img
selection_img:
- Image|endswith: '\winrs.exe'
- OriginalFileName: 'winrs.exe'
Stage 2: selection_local_ip
selection_local_ip:
CommandLine|contains|windash:
- '/r:localhost'
- '/r:127.0.0.1'
- '/r:[::1]'
- '/remote:localhost'
- '/remote:127.0.0.1'
- '/remote:[::1]'
Stage 3: selection_img
selection_img:
- Image|endswith: '\winrs.exe'
- OriginalFileName: 'winrs.exe'
Stage 4: not filter_main_remote
filter_main_remote:
CommandLine|contains|windash:
- "/r:"
- "/remote:"
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | ends_with |
| field:"Image" kind:ends_with value:"\winrs.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"winrs.exe" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
CommandLine | match | /r: | excludes:CommandLine field:"CommandLine" value:"/r:" |
CommandLine | match | /remote: | excludes:CommandLine field:"CommandLine" value:"/remote:" |
WMI module loaded by suspicious process
#Detects scenarios where an attacker attempts to load WMI modules from a suspicious process (like PowerShell).
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 7: Image loaded |
Rule Body
title: WMI module loaded by suspicious process
description: Detects scenarios where an attacker attempts to load WMI modules from a suspicious process (like PowerShell).
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0002-Execution/T1047-Windows%20Management%20Instrumentation
- https://threathunterplaybook.com/notebooks/windows/02_execution/WIN-190811201010.html
- https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16
- https://medium.com/threatpunter/detecting-adversary-tradecraft-with-image-load-event-logging-and-eql-8de93338c16
- https://posts.specterops.io/real-time-sysmon-processing-via-ksql-and-helk-part-3-basic-use-case-8fbf383cb54f
- https://github.com/OTRF/ThreatHunter-Playbook/blob/master/signatures/sigma/sysmon_wmi_module_load.yml
- https://www.darkoperator.com/blog/2017/10/14/basics-of-tracking-wmi-activity
tags:
- attack.execution
- attack.t1047
author: shortly adapted from Roberto Rodriguez rule
status: experimental
logsource:
product: windows
service: image_loaded
detection:
selection:
EventID: 7 # image loaded
ImageLoaded|endswith:
- '\wmiclnt.dll'
- '\WmiApRpl.dll'
- '\wmiprov.dll'
- '\wmiutils.dll'
- '\wbemcomn.dll'
- '\WMINet_Utils.dll'
- '\wbemsvc.dll'
- '\fastprox.dll'
- '\wmi*'
filter:
Image|endswith:
- '\wmiprvse.exe'
- '\wmiapsrv.exe'
- '\svchost.exe'
condition: selection and not filter
falsepositives:
- None
level: high
Stages and Predicates
Stage 0: condition
selection and not filterStage 1: selection
selection:
EventID: 7
ImageLoaded|endswith:
- '\wmiclnt.dll'
- '\WmiApRpl.dll'
- '\wmiprov.dll'
- '\wmiutils.dll'
- '\wbemcomn.dll'
- '\WMINet_Utils.dll'
- '\wbemsvc.dll'
- '\fastprox.dll'
- '\wmi*'
Stage 2: not filter
filter:
Image|endswith:
- '\wmiprvse.exe'
- '\wmiapsrv.exe'
- '\svchost.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ImageLoaded | ends_with |
| field:"ImageLoaded" kind:ends_with |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Image | ends_with | \svchost.exe | excludes:Image field:"Image" value:"\svchost.exe" |
Image | ends_with | \wmiapsrv.exe | excludes:Image field:"Image" value:"\wmiapsrv.exe" |
Image | ends_with | \wmiprvse.exe | excludes:Image field:"Image" value:"\wmiprvse.exe" |