Detection rules › Sigma
Sigma rules: 3d
A Member Was Removed From a Security-Enabled Global Group
#Detects activity when a member is removed from a security-enabled global group
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4729: A member was removed from a security-enabled global group. |
Rule Body
title: A Member Was Removed From a Security-Enabled Global Group
id: 02c39d30-02b5-45d2-b435-8aebfe5a8629
related:
- id: 9cf01b6c-e723-4841-a868-6d7f8245ca6e
type: obsolete
status: stable
description: Detects activity when a member is removed from 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=4729
- https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=633
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:
- 633 # Security Enabled Global Group Member Removed
- 4729 # A member was removed from a security-enabled global group
condition: selection
falsepositives:
- Unknown
level: low
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID:
- 633
- 4729
Add DisallowRun Execution to Registry
#Detect set DisallowRun to 1 to prevent user running specific computer program
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Defense Impairment |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 13: RegistryEvent (Value Set) |
Rule Body
title: Add DisallowRun Execution to Registry
id: 275641a5-a492-45e2-a817-7c81e9d9d3e9
status: test
description: Detect set DisallowRun to 1 to prevent user running specific computer program
references:
- https://github.com/redcanaryco/atomic-red-team/blob/40b77d63808dd4f4eafb83949805636735a1fd15/atomics/T1112/T1112.md
author: frack113
date: 2022-08-19
modified: 2023-08-17
tags:
- attack.persistence
- attack.defense-impairment
- attack.t1112
logsource:
category: registry_set
product: windows
detection:
selection:
TargetObject|endswith: 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun'
Details: 'DWORD (0x00000001)'
condition: selection
falsepositives:
- Unknown
level: medium
simulation:
- type: atomic-red-team
name: DisallowRun Execution Of Certain Applications
technique: T1112
atomic_guid: 71db768a-5a9c-4047-b5e7-59e01f188e84
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetObject|endswith: 'Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun'
Details: 'DWORD (0x00000001)'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Details | eq |
| field:"Details" kind:eq value:"DWORD (0x00000001)" |
TargetObject | ends_with |
| field:"TargetObject" kind:ends_with value:"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun" |
AgentExecutor PowerShell Execution
#Detects execution of the AgentExecutor.exe binary. Which can be abused as a LOLBIN to execute powershell scripts with the ExecutionPolicy "Bypass" or any binary named "powershell.exe" located in the path provided by 6th positional argument
Known False Positives
- Legitimate use via Intune management. You exclude script paths and names to reduce FP rate
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: AgentExecutor PowerShell Execution
id: 7efd2c8d-8b18-45b7-947d-adfe9ed04f61
related:
- id: c0b40568-b1e9-4b03-8d6c-b096da6da9ab
type: similar
status: test
description: Detects execution of the AgentExecutor.exe binary. Which can be abused as a LOLBIN to execute powershell scripts with the ExecutionPolicy "Bypass" or any binary named "powershell.exe" located in the path provided by 6th positional argument
author: Nasreddine Bencherchali (Nextron Systems), memory-shards
references:
- https://twitter.com/lefterispan/status/1286259016436514816
- https://lolbas-project.github.io/lolbas/OtherMSBinaries/Agentexecutor/
- https://learn.microsoft.com/en-us/mem/intune/apps/intune-management-extension
- https://twitter.com/jseerden/status/1247985304667066373/photo/1
date: 2022-12-24
modified: 2024-08-07
tags:
- attack.stealth
- attack.t1218
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image: '\AgentExecutor.exe'
- OriginalFileName: 'AgentExecutor.exe'
selection_cli:
# Example:
# AgentExecutor.exe -powershell [scriptPath] [outputFilePath] [errorFilePath] [timeoutFilePath] [timeoutSeconds] [powershellPath] [enforceSignatureCheck] [runAs32BitOn64]
# Note:
# - If [timeoutSeconds] is NULL then it defaults to 60000
# - If [enforceSignatureCheck] is:
# - "NULL" or "1" then a PowerShell instance is spawned with the args: "-NoProfile -executionPolicy allsigned -file "
# - Else a PowerShell instance is spawned with the args: "-NoProfile -executionPolicy bypass -file "
# - [powershellPath] is always concatendated to "powershell.exe"
CommandLine|contains:
- ' -powershell' # Also covers the "-powershellDetection" flag
- ' -remediationScript'
filter_main_intune:
ParentImage|endswith: '\Microsoft.Management.Services.IntuneWindowsAgent.exe'
condition: all of selection_* and not 1 of filter_main_*
falsepositives:
- Legitimate use via Intune management. You exclude script paths and names to reduce FP rate
level: medium
Stages and Predicates
Stage 0: condition
all of selection_* and not 1 of filter_main_*Stage 1: selection_img
selection_img:
- Image: '\AgentExecutor.exe'
- OriginalFileName: 'AgentExecutor.exe'
Stage 2: selection_cli
selection_cli:
CommandLine|contains:
- ' -powershell'
- ' -remediationScript'
Stage 3: not filter_main_intune
filter_main_intune:
ParentImage|endswith: '\Microsoft.Management.Services.IntuneWindowsAgent.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | eq |
| field:"Image" kind:eq value:"\AgentExecutor.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"AgentExecutor.exe" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
ParentImage | ends_with | \Microsoft.Management.Services.IntuneWindowsAgent.exe | excludes:ParentImage field:"ParentImage" value:"\Microsoft.Management.Services.IntuneWindowsAgent.exe" |
Automated Collection Command PowerShell
#Once established within a system or network, an adversary may use automated techniques for collecting internal data.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Collection |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| PowerShell | Event ID 4104: Creating Scriptblock text (MessageNumber of MessageTotal). |
Rule Body
title: Automated Collection Command PowerShell
id: c1dda054-d638-4c16-afc8-53e007f3fbc5
status: test
description: Once established within a system or network, an adversary may use automated techniques for collecting internal data.
references:
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1119/T1119.md
author: frack113
date: 2021-07-28
modified: 2022-12-25
tags:
- attack.collection
- attack.t1119
logsource:
product: windows
category: ps_script
definition: 'Requirements: Script Block Logging must be enabled'
detection:
selection_ext:
ScriptBlockText|contains:
- '.doc'
- '.docx'
- '.xls'
- '.xlsx'
- '.ppt'
- '.pptx'
- '.rtf'
- '.pdf'
- '.txt'
selection_cmd:
ScriptBlockText|contains|all:
- 'Get-ChildItem'
- ' -Recurse '
- ' -Include '
condition: all of selection*
falsepositives:
- Unknown
level: medium
regression_tests_path: regression_data/rules/windows/powershell/powershell_script/posh_ps_automated_collection/info.yml
Stages and Predicates
Stage 0: condition
all of selection*Stage 1: selection_ext
selection_ext:
ScriptBlockText|contains:
- '.doc'
- '.docx'
- '.xls'
- '.xlsx'
- '.ppt'
- '.pptx'
- '.rtf'
- '.pdf'
- '.txt'
Stage 2: selection_cmd
selection_cmd:
ScriptBlockText|contains|all:
- 'Get-ChildItem'
- ' -Recurse '
- ' -Include '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ScriptBlockText | match |
| field:"ScriptBlockText" kind:match |
Credential stuffing sttack risk
#Detects potential credential stuffing attacks by monitoring failed logins and Auth0 Attack Protection feature events.
Known False Positives
- ja3/ja4 might be attributed to legitimate traffic
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Rule Body
title: Credential stuffing sttack risk
name: selected_events
id: e604e40e-9db6-449d-854d-2b5323644fd7
status: experimental
description: |
Detects potential credential stuffing attacks by monitoring failed logins and Auth0 Attack Protection feature events.
author: Okta
date: 2025-10-15
modified: 2025-10-15
references:
- https://auth0.com/docs/secure/attack-protection/view-attack-protection-events
logsource:
product: auth0
detection:
selection:
data.type:
- f # Failed login
- fu # Failed login: Invalid username or email
- fp # Failed login: Incorrect password
- pwd_leak # Attempt to login with a known breached password
- limit_wc # User blocked from logging in from a specific IP
- limit_sul # User blocked from logging in from all IPs
- limit_mu # IP address block from logging in
- fcoa # Failed cross-origin authentication
condition: selection
explanation: >
This rule identifies **credential stuffing** activity by analyzing patterns of **failed logins** (f, fu, fp, fcoa)
and **Auth0 Attack Protection** events (pwd_leak, limit_wc, limit_sul, limit_mu).
The accompanying Splunk query includes three distinct detection **Signals** over 1-hour windows:
**Signal 1** (High volume of failed/attack protection events from a single IP),
**Signal 2** (Significant surge in total failed/protection events),
and **Signal 3** (Anomalous spike in unique source IP addresses, indicating a botnet).
The query also incorporates **normality** calculations for comparison and collects JA3/JA4 TLS fingerprint data for
attack traffic clustering and investigation.
The Sigma correlation feature implements Signal 1 (count per IP), but lacks normality calculation.
splunk: |
index=auth0 data.tenant_name="{your-tenant-name}"
data.type IN (f, fu, fp, pwd_leak, limit_wc, limit_sul, limit_mu, fcoa)
``` Signal 1 - any single IP triggers excessive number of failed/attack protection events ```
| bin _time span=1h
| stats values(data.security_context.ja4) as ja4
count as cnt_events_per_ip by _time data.ip
| where cnt_events_per_ip > {threshold_events_per_ip}
``` Normality for Signal 1 - average number of successful logins per IP (per hour) ```
| join [
search index=auth0 data.type = s
| stats count AS successful_logins_per_ip by data.ip
| stats avg(successful_logins_per_ip) AS avg_successful_logins_per_ip
]
``` Signal 2 - surge in failed login or attack protection events ```
```
| stats values(data.security_context.ja4) as ja4
count as cnt_total_per_event by _time data.type
| where cnt_total_per_event > {threshold_count_per_event}```
``` Normality for Signal 2 - average number successful logins (per hour) ```
```
| join [
search index=auth0 data.type = s
| stats count AS successful_logins_per_s by data.type
| stats avg(successful_logins_per_s) AS avg_successful_logins_per_s
]```
``` Signal 3 - surge of observed IPs with failed events ```
```
| stats dc(data.ip) as cnt_total_ips values(data.ip) as ip
values(data.security_context.ja4) as ja4 by _time
| where cnt_total_ips > {threshold_total_ips}```
``` Normality for Signal 3 - average number of IPs with successful logins (per hour) ```
```| join [
search index=auth0 data.type = s
| stats dc(data.ip) AS successful_logins_ips by _time
| stats avg(successful_logins_ips) AS avg_successful_logins_ips
]```
comments:
- The Splunk query above shall be tuned to reflect a valid tenant name,
and one of the three thresholds (selected) - number of events per IP, i.e. {threshold_events_per_ip};
number of failed events in total, i.e. {threshold_count_per_event};
and total number of unique IPs, i.e .{threshold_total_ips}.
- The detection can be adjusted to monitor the attack protection feature in use.
- Failed login events (f, fu, fp, fcoa) could be monitored separately from Attack Protection events
(pwd_leak, limit_wc, limit_sul, limit_mu).
- If IP enrichment data is available, consider monitoring for traffic originating from unexpected locations
(e.g., anonymizing proxies, Tor exit nodes, irrelevant countries).
- Often the abnormal rates of failed events tend to happen without much change to the rate of successful logins.
tenant_logs: |
type: (f fu fp pwd_leak limit_wc limit_sul limit_mu fcoa)
prevention:
- Require MFA for password-based authentication flows
- Migrate to passwordless or passkeys as a preferred login method
- Use Bot Protection, Suspicious IP throttling, and Breached Password Protection, and Brute Force Protection
to present CAPTCHA challenges to requests from suspicious IPs
- Apply strong password policies (e.g. disallow common passwords)
- Use 3rd party Auth0 Actions, e.g. from Auth0 Marketplace, integrations to check if an IP is associated with an anonymizing proxies
- Deny access by location using Network ACL, WAF or via the Country-based Access Control post-login Actions
- Analyze if suspicious traffic (failed events) can be attributed to specific JA3/JA4 fingerprints
and block/monitor/redirect it using the Network ACL feature.
falsepositives:
- ja3/ja4 might be attributed to legitimate traffic
level: medium
tags:
- attack.credential-access
- attack.t1110.004
---
title: Credential stuffing sttack risk - correlated rule # This correlation implements Signal 1 from the Splunk query above. Adjust for Signal 2 or Signal 3 if needed.
id: eb829568-bc39-49c0-8fce-175b2a2a6d3c
correlation:
type: event_count
rules:
- selected_events # Referenced here
group-by:
- data.ip
timespan: 1h
condition:
gt: 1
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
data.type:
- f
- fu
- fp
- pwd_leak
- limit_wc
- limit_sul
- limit_mu
- fcoa
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
data.type | eq |
| field:"data.type" kind:eq |
Disable Microsoft Defender Firewall via Registry
#Adversaries may disable or modify system firewalls in order to bypass controls limiting network usage
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Defense Impairment |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 13: RegistryEvent (Value Set) |
Rule Body
title: Disable Microsoft Defender Firewall via Registry
id: 974515da-6cc5-4c95-ae65-f97f9150ec7f
status: test
description: Adversaries may disable or modify system firewalls in order to bypass controls limiting network usage
references:
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1562.004/T1562.004.md#atomic-test-2---disable-microsoft-defender-firewall-via-registry
author: frack113
date: 2022-01-09
modified: 2024-03-25
tags:
- attack.defense-impairment
- attack.t1686.003
logsource:
category: registry_set
product: windows
detection:
selection:
# HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\EnableFirewall
# HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\PublicProfile\EnableFirewall
# HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\EnableFirewall
TargetObject|contains: '\Services\SharedAccess\Parameters\FirewallPolicy\'
TargetObject|endswith: '\EnableFirewall'
Details: 'DWORD (0x00000000)'
condition: selection
falsepositives:
- Unknown
level: medium
regression_tests_path: regression_data/rules/windows/registry/registry_set/registry_set_disable_defender_firewall/info.yml
simulation:
- type: atomic-red-team
name: Disable Microsoft Defender Firewall via Registry
technique: T1562.004
atomic_guid: afedc8c4-038c-4d82-b3e5-623a95f8a612
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetObject|contains: '\Services\SharedAccess\Parameters\FirewallPolicy\'
TargetObject|endswith: '\EnableFirewall'
Details: 'DWORD (0x00000000)'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Details | eq |
| field:"Details" kind:eq value:"DWORD (0x00000000)" |
TargetObject | ends_with |
| field:"TargetObject" kind:ends_with value:"\EnableFirewall" |
TargetObject | match |
| field:"TargetObject" kind:match value:"\Services\SharedAccess\Parameters\FirewallPolicy\" |
Google Cloud Re-identifies Sensitive Information
#Identifies when sensitive information is re-identified in google Cloud.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Impact |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| GCP | projects.content.reidentify: Re-identify content |
Rule Body
title: Google Cloud Re-identifies Sensitive Information
id: 234f9f48-904b-4736-a34c-55d23919e4b7
status: test
description: Identifies when sensitive information is re-identified in google Cloud.
references:
- https://cloud.google.com/dlp/docs/reference/rest/v2/projects.content/reidentify
author: Austin Songer @austinsonger
date: 2021-08-15
modified: 2022-10-09
tags:
- attack.impact
- attack.t1565
logsource:
product: gcp
service: gcp.audit
detection:
selection:
gcp.audit.method_name: projects.content.reidentify
condition: selection
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
gcp.audit.method_name: projects.content.reidentify
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
gcp.audit.method_name | eq |
| field:"gcp::method_name" kind:eq value:"projects.content.reidentify" |
HackTool - ADCSPwn Execution
#Detects command line parameters used by ADCSPwn, a tool to escalate privileges in an active directory network by coercing authenticate from machine accounts and relaying to the certificate service
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access | |
| Collection |
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 - ADCSPwn Execution
id: cd8c163e-a19b-402e-bdd5-419ff5859f12
status: test
description: Detects command line parameters used by ADCSPwn, a tool to escalate privileges in an active directory network by coercing authenticate from machine accounts and relaying to the certificate service
references:
- https://github.com/bats3c/ADCSPwn
author: Florian Roth (Nextron Systems)
date: 2021-07-31
modified: 2023-02-04
tags:
- attack.collection
- attack.credential-access
- attack.t1557.001
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains|all:
- ' --adcs '
- ' --port '
condition: selection
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
CommandLine|contains|all:
- ' --adcs '
- ' --port '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Indirect Command Execution From Script File Via Bash.EXE
#Detects execution of Microsoft bash launcher without any flags to execute the content of a bash script directly. This can be used to potentially bypass defenses and execute Linux or Windows-based binaries directly via bash.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Indirect Command Execution From Script File Via Bash.EXE
id: 2d22a514-e024-4428-9dba-41505bd63a5b
related:
- id: 5edc2273-c26f-406c-83f3-f4d948e740dd
type: similar
status: test
description: |
Detects execution of Microsoft bash launcher without any flags to execute the content of a bash script directly.
This can be used to potentially bypass defenses and execute Linux or Windows-based binaries directly via bash.
references:
- https://lolbas-project.github.io/lolbas/Binaries/Bash/
- https://linux.die.net/man/1/bash
- Internal Research
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-08-15
tags:
- attack.stealth
- attack.t1202
logsource:
category: process_creation
product: windows
detection:
selection:
- Image|endswith:
- ':\Windows\System32\bash.exe'
- ':\Windows\SysWOW64\bash.exe'
- OriginalFileName: 'Bash.exe'
filter_main_cli_flag:
CommandLine|contains:
# Note: we're not interested in flags being passed first
- 'bash.exe -'
- 'bash -'
filter_main_no_cli:
CommandLine: null
filter_main_empty:
CommandLine: ''
filter_main_no_flag:
CommandLine:
- 'bash.exe'
- 'bash'
condition: selection and not 1 of filter_main_*
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
- Image|endswith:
- ':\Windows\System32\bash.exe'
- ':\Windows\SysWOW64\bash.exe'
- OriginalFileName: 'Bash.exe'
Stage 2: not filter_main_*
filter_main_cli_flag:
CommandLine|contains:
- 'bash.exe -'
- 'bash -'
filter_main_no_cli:
CommandLine: null
filter_main_empty:
CommandLine: ''
filter_main_no_flag:
CommandLine:
- 'bash.exe'
- 'bash'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"Bash.exe" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
CommandLine | eq | bash | excludes:CommandLine field:"CommandLine" value:"bash" |
CommandLine | eq | bash.exe | excludes:CommandLine field:"CommandLine" value:"bash.exe" |
CommandLine | is_null | excludes:CommandLine | |
CommandLine | match | bash - | excludes:CommandLine field:"CommandLine" value:"bash -" |
CommandLine | match | bash.exe - | excludes:CommandLine field:"CommandLine" value:"bash.exe -" |
LockerGoga Ransomware Activity
#Detects LockerGoga ransomware activity via specific command line.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Impact |
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: LockerGoga Ransomware Activity
id: 74db3488-fd28-480a-95aa-b7af626de068
status: stable
description: Detects LockerGoga ransomware activity via specific command line.
references:
- https://medium.com/@malwaredancer/lockergoga-input-arguments-ipc-communication-and-others-bd4e5a7ba80a
- https://blog.f-secure.com/analysis-of-lockergoga-ransomware/
- https://www.carbonblack.com/blog/tau-threat-intelligence-notification-lockergoga-ransomware/
author: Vasiliy Burov, oscd.community
date: 2020-10-18
modified: 2023-02-03
tags:
- attack.impact
- attack.t1486
- detection.emerging-threats
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains: '-i SM-tgytutrc -s'
condition: selection
falsepositives:
- Unlikely
level: critical
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
CommandLine|contains: '-i SM-tgytutrc -s'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match value:"-i SM-tgytutrc -s" |
macOS ULS securityd CodeSignature Failure
#Detect logs from securityd indicating code signature failures which might reflect tampering.
Known False Positives
- developer builds or ad-hoc signing
Rule Body
title: macOS ULS securityd CodeSignature Failure
id: e1c4dc0e-3a75-4f58-8e8f-5d4a9f9a1b2c
status: experimental
description: Detect logs from securityd indicating code signature failures which might
reflect tampering.
author: Eric Brown - Nebulock, Inc.
date: 2025-10-29
logsource:
product: macos
service: unifiedlog
level: medium
detection:
selection:
subsystem: com.apple.securityd
message|contains:
- code signature invalid
- rejecting
condition: selection
falsepositives:
- developer builds or ad-hoc signing
modified: 2025/01/15
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
subsystem: com.apple.securityd
message|contains:
- code signature invalid
- rejecting
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
message | match |
| field:"message" kind:match |
subsystem | eq |
| field:"subsystem" kind:eq value:"com.apple.securityd" |
Macro Enabled In A Potentially Suspicious Document
#Detects registry changes to Office trust records where the path is located in a potentially suspicious location
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Defense Impairment |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 13: RegistryEvent (Value Set) |
Rule Body
title: Macro Enabled In A Potentially Suspicious Document
id: a166f74e-bf44-409d-b9ba-ea4b2dd8b3cd
related:
- id: 295a59c1-7b79-4b47-a930-df12c15fc9c2
type: derived
status: test
description: Detects registry changes to Office trust records where the path is located in a potentially suspicious location
references:
- https://twitter.com/inversecos/status/1494174785621819397
- Internal Research
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-06-21
modified: 2023-08-17
tags:
- attack.persistence
- attack.defense-impairment
- attack.t1112
logsource:
category: registry_set
product: windows
detection:
selection_value:
TargetObject|contains: '\Security\Trusted Documents\TrustRecords'
selection_paths:
TargetObject|contains:
# Note: add more locations where you don't expect a user to executed macro enabled docs
- '/AppData/Local/Microsoft/Windows/INetCache/'
- '/AppData/Local/Temp/'
- '/PerfLogs/'
- 'C:/Users/Public/'
- 'file:///D:/'
- 'file:///E:/'
condition: all of selection_*
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_value
selection_value:
TargetObject|contains: '\Security\Trusted Documents\TrustRecords'
Stage 2: selection_paths
selection_paths:
TargetObject|contains:
- '/AppData/Local/Microsoft/Windows/INetCache/'
- '/AppData/Local/Temp/'
- '/PerfLogs/'
- 'C:/Users/Public/'
- 'file:///D:/'
- 'file:///E:/'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetObject | match |
| field:"TargetObject" kind:match |
MFA downgrade - disable strong factors
#An adversary can try to downgrade authentication requirements by disabling strong authenticators (Webauthn) for users.
Known False Positives
- Intentional legitimate disabling of strong factors by administrators.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Defense Impairment |
Rule Body
title: MFA downgrade - disable strong factors
id: d0b564f6-716a-11f0-96ba-723487b9527c
status: experimental
description: |
An adversary can try to downgrade authentication requirements by disabling strong authenticators (Webauthn) for users.
author: Okta
date: 2025-07-11
modified: 2025-09-21
logsource:
product: auth0
detection:
selection:
data.type: sapi
data.description: "Update multi-factor authentication type"
data.details.request.body.enabled: false
condition: selection
explanation: >
The query filters for log entries recording changes in availability of MFA factors for the whole tenant.
The Splunk query below also parses the path where the last part shows the type of the disabled factor.
It takes the last modifications of the availability for each factor by default.
This query can be used for reporting purposes (when and what factors was disabled and enabled) by commenting the "sort" and "dedup" clauses.
Finally, the query summarises the user created modification, IP and lists disabled factors.
To monitor only a specific factor, e.g. phishing-resistant, uncomment the "search" clause.
splunk: |
index=auth0 data.tenant_name="{your-tenant-name}"
data.type=sapi data.description="Update multi-factor authentication type"
```data.details.request.body.enabled=false```
| fields data.details.request.path, data.user_id, data.details.request.ip,
data.details.request.body.enabled
``` Excluding trusted IPs```
``` NOT data.details.request.ip IN ("{white-listed-IPs}")```
| rex field=data.details.request.path "/(?<factor>[^/]+)$"
```Take only the last change of configurations that reflects the current settings```
| sort -_time, factor
| dedup factor
```Limit monitored factors, e.g. phishing-resistant ```
```| search factor IN (webauthn-roaming, webauthn-roaming)```
``` Alert when monitored factors have been disabled ```
| where 'data.details.request.body.enabled' = "false"
```Display the information in a table```
| table _time, data.user_id, data.details.request.ip, factor, data.details.request.body.enabled
comments:
- The Splunk query above, shall be tuned to reflect a valid tenant name.
- Additionally, you can expand the detection to other factors, e.g. SMS.
- Limit the detection to actions conducted from untrusted IPs and/or particular users.
tenant_logs: |
type: "sapi" AND description: "Update multi-factor authentication type"
prevention:
- Control tenant admins, i.e. "Admin", as this role has permissions to modify any application.
- Enforce MFA for tenant admins to reduce the risk of an adversary gaining access.
- Control Management API scopes that allow modification of MFA settings - update:guardian_factors.
- Control usage of Management API from only trusted IPs by applying Network ACL scoped to "management".
falsepositives:
- Intentional legitimate disabling of strong factors by administrators.
level: medium
tags:
- attack.defense-evasion
- attack.t1562
- attack.t1562.007
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
data.type: sapi
data.description: "Update multi-factor authentication type"
data.details.request.body.enabled: false
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
data.description | eq |
| field:"data.description" kind:eq value:"Update multi-factor authentication type" |
data.details.request.body.enabled | eq |
| field:"data.details.request.body.enabled" kind:eq value:"false" |
data.type | eq |
| field:"data.type" kind:eq value:"sapi" |
Microsoft Defender security components disabled (PowerShell)
#Detects scenarios where an attacker attempts to disable Defender security features in PowerShell
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Defense Impairment |
Telemetry Coverage
Rule Body
title: Microsoft Defender security components disabled (PowerShell)
description: Detects scenarios where an attacker attempts to disable Defender security features in PowerShell
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0005-Defense%20Evasion/T1562.001-Impair%20Defenses-Disable%20or%20Modify%20tool
- https://github.com/swagkarna/Defeat-Defender-V1.2
- https://docs.microsoft.com/en-us/powershell/module/defender/set-mppreference?view=windowsserver2019-ps
- https://docs.microsoft.com/en-us/windows/client-management/mdm/defender-csp
- https://powershell.one/wmi/root/microsoft/windows/defender/msft_mppreference
- https://gist.github.com/pe3zx/7c5e0080c3b0869ccba1f1dc2ea0c5e0
- https://cloudbrothers.info/en/current-limits-defender-av-tamper-protection/
tags:
- attack.defense_evasion
- attack.t1562.001
author: mdecrevoisier
status: experimental
logsource:
product: windows
category:
- ps_module
- ps_classic_script
- ps_script
detection: # Set-MpPreference -DisableArchiveScanning $true
selection1_powershell_native:
EventID: 800
EventData|contains: Set-MpPreference
- Add-MpPreference
EventData|contains:
- '1'
- '$true'
EventData|contains:
# Scanning features
- DisableArchiveScanning
- DisableRemovableDriveScanning
- DisableScanningMappedNetworkDrivesForFullScan
- DisableScanningNetworkFiles
- DisableRestorePoint
- DisableScriptScanning
- DisableEmailScanning
# Parsing features
- DisableDnsParsing
- DisableDnsOverTcpParsing
- DisableSshParsing
- DisableTlsParsing
- DisableHttpParsing
- DisableRdpParsing
# Misc features
- DisableAutoExclusions
- DisableBlockAtFirstSeen
- DisableCpuThrottleOnIdleScans
- DisableDatagramProcessing
- SignatureDisableUpdateOnStartupWithoutEngine
selection2_powershell_modern:
EventID: 4103
EventData|contains: Set-MpPreference
- Add-MpPreference
Payload|contains:
- '1'
- '$true'
Payload|contains:
# Scanning features
- DisableArchiveScanning
- DisableRemovableDriveScanning
- DisableScanningMappedNetworkDrivesForFullScan
- DisableScanningNetworkFiles
- DisableRestorePoint
- DisableScriptScanning
- DisableEmailScanning
# Parsing features
- DisableDnsParsing
- DisableDnsOverTcpParsing
- DisableSshParsing
- DisableTlsParsing
- DisableHttpParsing
- DisableRdpParsing
# Misc features
- DisableAutoExclusions
- DisableBlockAtFirstSeen
- DisableCpuThrottleOnIdleScans
- DisableDatagramProcessing
selection3_powershell_block:
EventID: 4104
EventData|contains: Set-MpPreference
- Add-MpPreference
ScriptBlockText|contains:
- '1'
- '$true'
ScriptBlockText|contains:
# Scanning features
- DisableArchiveScanning
- DisableRemovableDriveScanning
- DisableScanningMappedNetworkDrivesForFullScan
- DisableScanningNetworkFiles
- DisableRestorePoint
- DisableScriptScanning
- DisableEmailScanning
# Parsing features
- DisableDnsParsing
- DisableDnsOverTcpParsing
- DisableSshParsing
- DisableTlsParsing
- DisableHttpParsing
- DisableRdpParsing
# Misc features
- DisableAutoExclusions
- DisableBlockAtFirstSeen
- DisableCpuThrottleOnIdleScans
- DisableDatagramProcessing
condition: 1 of selection*
falsepositives:
- None
level: medium
Stages and Predicates
Stage 0: condition
1 of selection*Stage 1: selection1_powershell_native
selection1_powershell_native:
EventID: 800
EventData|contains: Set-MpPreference
- Add-MpPreference
EventData|contains:
- '1'
- '$true'
EventData|contains:
- DisableArchiveScanning
- DisableRemovableDriveScanning
- DisableScanningMappedNetworkDrivesForFullScan
- DisableScanningNetworkFiles
- DisableRestorePoint
- DisableScriptScanning
- DisableEmailScanning
- DisableDnsParsing
- DisableDnsOverTcpParsing
- DisableSshParsing
- DisableTlsParsing
- DisableHttpParsing
- DisableRdpParsing
- DisableAutoExclusions
- DisableBlockAtFirstSeen
- DisableCpuThrottleOnIdleScans
- DisableDatagramProcessing
- SignatureDisableUpdateOnStartupWithoutEngine
Stage 2: selection2_powershell_modern
selection2_powershell_modern:
EventID: 4103
EventData|contains: Set-MpPreference
- Add-MpPreference
Payload|contains:
- '1'
- '$true'
Payload|contains:
- DisableArchiveScanning
- DisableRemovableDriveScanning
- DisableScanningMappedNetworkDrivesForFullScan
- DisableScanningNetworkFiles
- DisableRestorePoint
- DisableScriptScanning
- DisableEmailScanning
- DisableDnsParsing
- DisableDnsOverTcpParsing
- DisableSshParsing
- DisableTlsParsing
- DisableHttpParsing
- DisableRdpParsing
- DisableAutoExclusions
- DisableBlockAtFirstSeen
- DisableCpuThrottleOnIdleScans
- DisableDatagramProcessing
Stage 3: selection3_powershell_block
selection3_powershell_block:
EventID: 4104
EventData|contains: Set-MpPreference
- Add-MpPreference
ScriptBlockText|contains:
- '1'
- '$true'
ScriptBlockText|contains:
- DisableArchiveScanning
- DisableRemovableDriveScanning
- DisableScanningMappedNetworkDrivesForFullScan
- DisableScanningNetworkFiles
- DisableRestorePoint
- DisableScriptScanning
- DisableEmailScanning
- DisableDnsParsing
- DisableDnsOverTcpParsing
- DisableSshParsing
- DisableTlsParsing
- DisableHttpParsing
- DisableRdpParsing
- DisableAutoExclusions
- DisableBlockAtFirstSeen
- DisableCpuThrottleOnIdleScans
- DisableDatagramProcessing
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
EventData | match |
| field:"EventData" kind:match |
Payload | match |
| field:"Payload" kind:match |
ScriptBlockText | match |
| field:"ScriptBlockText" kind:match |
New Capture Session Launched Via DXCap.EXE
#Detects the execution of "DXCap.EXE" with the "-c" flag, which allows a user to launch any arbitrary binary or windows package through DXCap itself. This can be abused to potentially bypass application whitelisting.
Known False Positives
- Legitimate execution of dxcap.exe by legitimate user
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: New Capture Session Launched Via DXCap.EXE
id: 60f16a96-db70-42eb-8f76-16763e333590
status: test
description: |
Detects the execution of "DXCap.EXE" with the "-c" flag, which allows a user to launch any arbitrary binary or windows package through DXCap itself. This can be abused to potentially bypass application whitelisting.
references:
- https://lolbas-project.github.io/lolbas/OtherMSBinaries/Dxcap/
- https://twitter.com/harr0ey/status/992008180904419328
author: Beyu Denis, oscd.community, Nasreddine Bencherchali (Nextron Systems)
date: 2019-10-26
modified: 2022-06-09
tags:
- attack.stealth
- attack.t1218
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith: '\DXCap.exe'
- OriginalFileName: 'DXCap.exe'
selection_cli:
CommandLine|contains: ' -c ' # The ".exe" is not required to run the binary
condition: all of selection*
falsepositives:
- Legitimate execution of dxcap.exe by legitimate user
level: medium
Stages and Predicates
Stage 0: condition
all of selection*Stage 1: selection_img
selection_img:
- Image|endswith: '\DXCap.exe'
- OriginalFileName: 'DXCap.exe'
Stage 2: selection_cli
selection_cli:
CommandLine|contains: ' -c '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match value:" -c " |
Image | ends_with |
| field:"Image" kind:ends_with value:"\DXCap.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"DXCap.exe" |
New Github Organization Member Added
#Detects when a new member is added or invited to a github organization.
Known False Positives
- Organization approved new members
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence |
Telemetry Coverage
Rules Detecting the Same Action
These rules filter on the same operation.
Rule Body
title: New Github Organization Member Added
id: 3908d64a-3c06-4091-b503-b3a94424533b
status: test
description: Detects when a new member is added or invited to a github organization.
author: Muhammad Faisal (@faisalusuf)
date: 2023-01-29
references:
- https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/reviewing-the-audit-log-for-your-organization#dependabot_alerts-category-actions
tags:
- attack.persistence
- attack.t1136.003
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:
- 'org.add_member'
- 'org.invite_member'
condition: selection
falsepositives:
- Organization approved new members
level: informational
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
action:
- 'org.add_member'
- 'org.invite_member'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
action | eq |
| field:"action" kind:eq |
Okta Application Modified or Deleted
#Detects when an application is modified or deleted.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Impact | No specific technique |
Telemetry Coverage
Rules Detecting the Same Action
These rules filter on the same operation.
Rule Body
title: Okta Application Modified or Deleted
id: 7899144b-e416-4c28-b0b5-ab8f9e0a541d
status: test
description: Detects when an application is modified or deleted.
references:
- https://developer.okta.com/docs/reference/api/system-log/
- https://developer.okta.com/docs/reference/api/event-types/
author: Austin Songer @austinsonger
date: 2021-09-12
modified: 2026-04-27
tags:
- attack.impact
logsource:
product: okta
service: okta
detection:
selection:
eventType:
- application.lifecycle.update
- application.lifecycle.delete
condition: selection
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
eventType:
- application.lifecycle.update
- application.lifecycle.delete
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
eventType | eq |
| field:"eventType" kind:eq |
OpenCanary - NTP Monlist Request
#Detects instances where an NTP service on an OpenCanary node has had a NTP monlist request.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Impact |
Rule Body
title: OpenCanary - NTP Monlist Request
id: 7cded4b3-f09e-405a-b96f-24248433ba44
status: test
description: Detects instances where an NTP service on an OpenCanary node has had a NTP monlist request.
references:
- https://opencanary.readthedocs.io/en/latest/starting/configuration.html#services-configuration
- https://github.com/thinkst/opencanary/blob/a0896adfcaf0328cfd5829fe10d2878c7445138e/opencanary/logger.py#L52
author: Security Onion Solutions
date: 2024-03-08
tags:
- attack.impact
- attack.t1498
logsource:
category: application
product: opencanary
detection:
selection:
logtype: 11001
condition: selection
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
logtype: 11001
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
logtype | eq |
| field:"logtype" kind:eq value:"11001" |
Persistence Via Sticky Key Backdoor
#By replacing the sticky keys executable with the local admins CMD executable, an attacker is able to access a privileged windows console session without authenticating to the system. When the sticky keys are "activated" the privilleged shell is launched.
Known False Positives
- Unlikely
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: Persistence Via Sticky Key Backdoor
id: 1070db9a-3e5d-412e-8e7b-7183b616e1b3
status: test
description: |
By replacing the sticky keys executable with the local admins CMD executable, an attacker is able to access a privileged windows console session without authenticating to the system.
When the sticky keys are "activated" the privilleged shell is launched.
references:
- https://www.fireeye.com/blog/threat-research/2017/03/apt29_domain_frontin.html
- https://www.clearskysec.com/wp-content/uploads/2020/02/ClearSky-Fox-Kitten-Campaign-v1.pdf
- https://learn.microsoft.com/en-us/archive/blogs/jonathantrull/detecting-sticky-key-backdoors
author: Sreeman
date: 2020-02-18
modified: 2023-03-07
tags:
- attack.persistence
- attack.t1546.008
- attack.privilege-escalation
logsource:
product: windows
category: process_creation
detection:
selection:
CommandLine|contains|all:
- 'copy '
- '/y '
- 'C:\windows\system32\cmd.exe C:\windows\system32\sethc.exe'
condition: selection
falsepositives:
- Unlikely
level: critical
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
CommandLine|contains|all:
- 'copy '
- '/y '
- 'C:\windows\system32\cmd.exe C:\windows\system32\sethc.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Potential Data Exfiltration Via Curl.EXE
#Detects the execution of the "curl" process with "upload" flags. Which might indicate potential data exfiltration
Known False Positives
- Scripts created by developers and admins
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Command & Control | |
| Exfiltration |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Potential Data Exfiltration Via Curl.EXE
id: 00bca14a-df4e-4649-9054-3f2aa676bc04
status: test
description: Detects the execution of the "curl" process with "upload" flags. Which might indicate potential data exfiltration
references:
- https://twitter.com/d1r4c/status/1279042657508081664
- https://medium.com/@petehouston/upload-files-with-curl-93064dcccc76
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1105/T1105.md#atomic-test-19---curl-upload-file
- https://curl.se/docs/manpage.html
author: Florian Roth (Nextron Systems), Cedric MAURUGEON (Update)
date: 2020-07-03
modified: 2023-05-02
tags:
- attack.exfiltration
- attack.command-and-control
- attack.t1567
- attack.t1105
- detection.threat-hunting
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith: '\curl.exe'
- Product: 'The curl executable'
selection_cli:
- CommandLine|contains:
- ' --form' # Also covers the "--form-string"
- ' --upload-file '
- ' --data '
- ' --data-' # For flags like: "--data-ascii", "--data-binary", "--data-raw", "--data-urlencode"
- CommandLine|re: '\s-[FTd]\s' # We use regex to ensure a case sensitive argument detection
filter_optional_localhost:
CommandLine|contains:
- '://localhost'
- '://127.0.0.1'
condition: all of selection_* and not 1 of filter_optional_*
falsepositives:
- Scripts created by developers and admins
level: medium
Stages and Predicates
Stage 0: condition
all of selection_* and not 1 of filter_optional_*Stage 1: selection_img
selection_img:
- Image|endswith: '\curl.exe'
- Product: 'The curl executable'
Stage 2: selection_cli
selection_cli:
- CommandLine|contains:
- ' --form'
- ' --upload-file '
- ' --data '
- ' --data-'
- CommandLine|re: '\s-[FTd]\s'
Stage 3: not filter_optional_localhost
filter_optional_localhost:
CommandLine|contains:
- '://localhost'
- '://127.0.0.1'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
CommandLine | regex_match |
| field:"CommandLine" kind:regex_match value:"\s-[FTd]\s" |
Image | ends_with |
| field:"Image" kind:ends_with value:"\curl.exe" |
Product | eq |
| field:"Product" kind:eq value:"The curl executable" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
CommandLine | match | ://127.0.0.1 | excludes:CommandLine field:"CommandLine" value:"://127.0.0.1" |
CommandLine | match | ://localhost | excludes:CommandLine field:"CommandLine" value:"://localhost" |
Potential Exploitation of CVE-2024-37085 - Suspicious ESX Admins Group Activity
#Detects any creation or modification to a windows domain group with the name "ESX Admins". This could indicates a potential exploitation attempt of CVE-2024-37085, which allows an attacker to elevate their privileges to full administrative access on an domain-joined ESXi hypervisor. VMware ESXi hypervisors joined to an Active Directory domain consider any member of a domain group named "ESX Admins" to have full administrative access by default.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | No specific technique |
Telemetry Coverage
Rule Body
title: Potential Exploitation of CVE-2024-37085 - Suspicious ESX Admins Group Activity
id: 47a1658b-67a4-48e2-8ab1-c10437fc0148
status: test
description: |
Detects any creation or modification to a windows domain group with the name "ESX Admins".
This could indicates a potential exploitation attempt of CVE-2024-37085, which allows an attacker to elevate their privileges to full administrative access on an domain-joined ESXi hypervisor.
VMware ESXi hypervisors joined to an Active Directory domain consider any member of a domain group named "ESX Admins" to have full administrative access by default.
references:
- https://www.microsoft.com/en-us/security/blog/2024/07/29/ransomware-operators-exploit-esxi-hypervisor-vulnerability-for-mass-encryption/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2024-07-30
tags:
- attack.execution
- cve.2024-37085
- detection.emerging-threats
logsource:
product: windows
service: security
detection:
selection:
EventID:
- 4727
- 4728
- 4731
- 4737
- 4754
- 4755
- 4756
keyword_group:
- 'ESX Admins'
condition: selection and keyword_group
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selection and keyword_groupStage 1: selection
selection:
EventID:
- 4727
- 4728
- 4731
- 4737
- 4754
- 4755
- 4756
Stage 2: keyword_group
keyword_group:
- 'ESX Admins'
Potential Okta Password in AlternateID Field
#Detects when a user has potentially entered their password into the username field, which will cause the password to be retained in log files.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Rule Body
title: Potential Okta Password in AlternateID Field
id: 91b76b84-8589-47aa-9605-c837583b82a9
status: test
description: |
Detects when a user has potentially entered their password into the
username field, which will cause the password to be retained in log files.
references:
- https://developer.okta.com/docs/reference/api/system-log/
- https://www.mitiga.io/blog/how-okta-passwords-can-be-compromised-uncovering-a-risk-to-user-data
- https://help.okta.com/en-us/Content/Topics/users-groups-profiles/usgp-create-character-restriction.htm
author: kelnage
date: 2023-04-03
modified: 2026-04-27
tags:
- attack.credential-access
- attack.t1552
logsource:
product: okta
service: okta
detection:
selection:
legacyEventType: 'core.user_auth.login_failed'
filter_main:
# Okta service account names start with 0oa
# Email addresses are the default format for Okta usernames, so attempt
# to exclude alternateIds that look like valid emails
# If your Okta configuration uses different character restrictions, you
# will need to update this regular expression to reflect that or disable the rule for your environment
# Possible false negatives are failed login attempts with a password that looks like a valid email address
actor.alternateId|re: '(^0oa.*|[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,10})'
condition: selection and not filter_main
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
selection and not filter_mainStage 1: selection
selection:
legacyEventType: 'core.user_auth.login_failed'
Stage 2: not filter_main
filter_main:
actor.alternateId|re: '(^0oa.*|[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,10})'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
legacyEventType | eq |
| field:"legacyEventType" kind:eq value:"core.user_auth.login_failed" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
actor.alternateId | regex_match | (^0oa.*|[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,10}) | excludes:actor.alternateId field:"actor.alternateId" value:"(^0oa.*|[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,10})" |
Potentially Suspicious Event Viewer Child Process
#Detects uncommon or suspicious child processes of "eventvwr.exe" which might indicate a UAC bypass attempt
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| 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: Potentially Suspicious Event Viewer Child Process
id: be344333-921d-4c4d-8bb8-e584cf584780
related:
- id: 7c81fec3-1c1d-43b0-996a-46753041b1b6
type: derived
status: test
description: Detects uncommon or suspicious child processes of "eventvwr.exe" which might indicate a UAC bypass attempt
references:
- https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/
- https://www.hybrid-analysis.com/sample/e122bc8bf291f15cab182a5d2d27b8db1e7019e4e96bb5cdbd1dfe7446f3f51f?environmentId=100
author: Florian Roth (Nextron Systems)
date: 2017-03-19
modified: 2023-09-28
tags:
- attack.privilege-escalation
- attack.t1548.002
- car.2019-04-001
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|endswith: '\eventvwr.exe'
filter_main_generic:
Image|endswith:
- ':\Windows\System32\mmc.exe'
- ':\Windows\System32\WerFault.exe'
- ':\Windows\SysWOW64\WerFault.exe'
condition: selection and not 1 of filter_main_*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selection and not 1 of filter_main_*Stage 1: selection
selection:
ParentImage|endswith: '\eventvwr.exe'
Stage 2: not filter_main_generic
filter_main_generic:
Image|endswith:
- ':\Windows\System32\mmc.exe'
- ':\Windows\System32\WerFault.exe'
- ':\Windows\SysWOW64\WerFault.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\eventvwr.exe" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Image | ends_with | :\Windows\SysWOW64\WerFault.exe | excludes:Image field:"Image" value:":\Windows\SysWOW64\WerFault.exe" |
Image | ends_with | :\Windows\System32\WerFault.exe | excludes:Image field:"Image" value:":\Windows\System32\WerFault.exe" |
Image | ends_with | :\Windows\System32\mmc.exe | excludes:Image field:"Image" value:":\Windows\System32\mmc.exe" |
Python One-Liners with Base64 Decoding - Linux
#Detects the use of Python's base64 decoding functions in command line executions on Linux systems. Malicious scripts often use python one-liners to decode and execute base64-encoded payloads, which is a common technique for obfuscation and evasion.
Known False Positives
- Legitimate use of Python for decoding data, which is uncommon in typical enterprise environments but possible in development or data analysis contexts.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Stealth |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Linux | Event ID 1: Process Create |
Rule Body
title: Python One-Liners with Base64 Decoding - Linux
id: 55e862a8-dd9c-4651-807a-f21fcad56716
related:
- id: 50a0aa3d-ab16-4594-a8aa-5145a6e6792b
type: similar
status: experimental
description: |
Detects the use of Python's base64 decoding functions in command line executions on Linux systems.
Malicious scripts often use python one-liners to decode and execute base64-encoded payloads, which is a common technique for obfuscation and evasion.
references:
- https://docs.python.org/3/library/base64.html
- https://www.virustotal.com/gui/file/bc43e925d7b4b74319f6e74e836a96f1997ba404e14ac566cf12a21e9da463db/behavior
- https://cloud.google.com/blog/topics/threat-intelligence/cybercriminals-weaponize-fake-ai-websites
author: Hugh Ryan (HueCodes), Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2026-03-09
tags:
- attack.execution
- attack.stealth
- attack.t1059.006
- attack.t1027.010
logsource:
category: process_creation
product: linux
detection:
selection_img:
Image|contains: '/python'
selection_cli:
CommandLine|contains|all:
- 'import'
- 'base64'
- ' -c'
CommandLine|contains:
- '.decode'
- 'b16decode'
- 'b32decode'
- 'b32hexdecode'
- 'b64decode'
- 'b85decode'
- 'z85decode'
condition: all of selection_*
falsepositives:
- Legitimate use of Python for decoding data, which is uncommon in typical enterprise environments but possible in development or data analysis contexts.
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_img
selection_img:
Image|contains: '/python'
Stage 2: selection_cli
selection_cli:
CommandLine|contains|all:
- 'import'
- 'base64'
- ' -c'
CommandLine|contains:
- '.decode'
- 'b16decode'
- 'b32decode'
- 'b32hexdecode'
- 'b64decode'
- 'b85decode'
- 'z85decode'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Image | match |
| field:"Image" kind:match value:"/python" |
Remote Access Tool - ScreenConnect File Transfer
#Detects file being transferred via ScreenConnect RMM
Known False Positives
- Legitimate use of ScreenConnect
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| ScreenConnect | Event ID 201: Transferred files with action 'Transfer'. |
Rule Body
title: Remote Access Tool - ScreenConnect File Transfer
id: 5d19eb78-5b5b-4ef2-a9f0-4bfa94d58a13
related:
- id: b1f73849-6329-4069-bc8f-78a604bb8b23
type: similar
status: test
description: Detects file being transferred via ScreenConnect RMM
references:
- https://www.huntandhackett.com/blog/revil-the-usage-of-legitimate-remote-admin-tooling
- https://github.com/SigmaHQ/sigma/pull/4467
author: Ali Alwashali
date: 2023-10-10
tags:
- attack.execution
- attack.t1059.003
logsource:
service: application
product: windows
detection:
selection:
Provider_Name: 'ScreenConnect'
EventID: 201
Data|contains: 'Transferred files with action'
condition: selection
falsepositives:
- Legitimate use of ScreenConnect
level: low
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Provider_Name: 'ScreenConnect'
EventID: 201
Data|contains: 'Transferred files with action'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Data | match |
| field:"Data" kind:match value:"Transferred files with action" |
Provider_Name | eq |
| field:"Provider_Name" kind:eq value:"ScreenConnect" |
Suspicious Browser Child Process - MacOS
#Detects suspicious child processes spawned from browsers. This could be a result of a potential web browser exploitation.
Known False Positives
- Legitimate browser install, update and recovery scripts
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Execution |
Telemetry Coverage
Rule Body
title: Suspicious Browser Child Process - MacOS
id: 0250638a-2b28-4541-86fc-ea4c558fa0c6
status: test
description: Detects suspicious child processes spawned from browsers. This could be a result of a potential web browser exploitation.
references:
- https://fr.slideshare.net/codeblue_jp/cb19-recent-apt-attack-on-crypto-exchange-employees-by-heungsoo-kang
- https://github.com/elastic/detection-rules/blob/4312d8c9583be524578a14fe6295c3370b9a9307/rules/macos/execution_initial_access_suspicious_browser_childproc.toml
author: Sohan G (D4rkCiph3r)
date: 2023-04-05
tags:
- attack.initial-access
- attack.execution
- attack.t1189
- attack.t1203
- attack.t1059
logsource:
category: process_creation
product: macos
detection:
selection:
ParentImage|contains:
- 'com.apple.WebKit.WebContent'
- 'firefox'
- 'Google Chrome Helper'
- 'Google Chrome'
- 'Microsoft Edge'
- 'Opera'
- 'Safari'
- 'Tor Browser'
Image|endswith:
- '/bash'
- '/curl'
- '/dash'
- '/ksh'
- '/osascript'
- '/perl'
- '/php'
- '/pwsh'
- '/python'
- '/sh'
- '/tcsh'
- '/wget'
- '/zsh'
filter_main_generic:
CommandLine|contains: '--defaults-torrc' # Informs tor to use default config file
filter_main_ms_autoupdate:
CommandLine|contains: '/Library/Application Support/Microsoft/MAU*/Microsoft AutoUpdate.app/Contents/MacOS/msupdate' # Microsoft AutoUpdate utility
filter_main_chrome:
ParentImage|contains:
- 'Google Chrome Helper'
- 'Google Chrome'
CommandLine|contains:
- '/Volumes/Google Chrome/Google Chrome.app/Contents/Frameworks/*/Resources/install.sh' # Install the Google Chrome browser
- '/Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/*/Resources/keystone_promote_preflight.sh' # Updates the Google Chrome branding configuration files
- '/Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/*/Resources/keystone_promote_postflight.sh' # Script that performs the post-installation tasks
filter_main_ms_edge:
ParentImage|contains: 'Microsoft Edge'
CommandLine|contains:
- 'IOPlatformExpertDevice' # Retrieves the IOPlatformUUID (parent process - Microsoft Edge)
- 'hw.model' # Retrieves model name of the computer's hardware (parent process - Microsoft Edge)
filter_main_chromerecovery:
ParentImage|contains:
- 'Google Chrome Helper'
- 'Google Chrome'
CommandLine|contains|all:
- '/Users/'
- '/Library/Application Support/Google/Chrome/recovery/'
- '/ChromeRecovery'
filter_optional_null:
# Aoids alerting for the events which do not have command-line arguments
CommandLine: null
filter_optional_empty:
# Aoids alerting for the events which do not have command-line arguments
CommandLine: ''
condition: selection and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
- Legitimate browser install, update and recovery scripts
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:
ParentImage|contains:
- 'com.apple.WebKit.WebContent'
- 'firefox'
- 'Google Chrome Helper'
- 'Google Chrome'
- 'Microsoft Edge'
- 'Opera'
- 'Safari'
- 'Tor Browser'
Image|endswith:
- '/bash'
- '/curl'
- '/dash'
- '/ksh'
- '/osascript'
- '/perl'
- '/php'
- '/pwsh'
- '/python'
- '/sh'
- '/tcsh'
- '/wget'
- '/zsh'
Stage 2: not filter_main_*
filter_main_generic:
CommandLine|contains: '--defaults-torrc'
filter_main_ms_autoupdate:
CommandLine|contains: '/Library/Application Support/Microsoft/MAU*/Microsoft AutoUpdate.app/Contents/MacOS/msupdate'
filter_main_chrome:
ParentImage|contains:
- 'Google Chrome Helper'
- 'Google Chrome'
CommandLine|contains:
- '/Volumes/Google Chrome/Google Chrome.app/Contents/Frameworks/*/Resources/install.sh'
- '/Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/*/Resources/keystone_promote_preflight.sh'
- '/Applications/Google Chrome.app/Contents/Frameworks/Google Chrome Framework.framework/*/Resources/keystone_promote_postflight.sh'
filter_main_ms_edge:
ParentImage|contains: 'Microsoft Edge'
CommandLine|contains:
- 'IOPlatformExpertDevice'
- 'hw.model'
filter_main_chromerecovery:
ParentImage|contains:
- 'Google Chrome Helper'
- 'Google Chrome'
CommandLine|contains|all:
- '/Users/'
- '/Library/Application Support/Google/Chrome/recovery/'
- '/ChromeRecovery'
Stage 3: not filter_optional_*
filter_optional_null:
CommandLine: null
filter_optional_empty:
CommandLine: ''
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with |
ParentImage | match |
| field:"ParentImage" kind:match |
Exclusions
The rule actively suppresses these predicates.
Suspicious Debugger Registration Cmdline
#Detects the registration of a debugger for a program that is available in the logon screen (sticky key backdoor).
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: Suspicious Debugger Registration Cmdline
id: ae215552-081e-44c7-805f-be16f975c8a2
status: test
description: Detects the registration of a debugger for a program that is available in the logon screen (sticky key backdoor).
references:
- https://blogs.technet.microsoft.com/jonathantrull/2016/10/03/detecting-sticky-key-backdoors/
- https://bazaar.abuse.ch/sample/6f3aa9362d72e806490a8abce245331030d1ab5ac77e400dd475748236a6cc81/
author: Florian Roth (Nextron Systems), oscd.community, Jonhnathan Ribeiro
date: 2019-09-06
modified: 2022-08-06
tags:
- attack.persistence
- attack.privilege-escalation
- attack.t1546.008
logsource:
category: process_creation
product: windows
detection:
selection1:
CommandLine|contains: '\CurrentVersion\Image File Execution Options\'
selection2:
CommandLine|contains:
- 'sethc.exe'
- 'utilman.exe'
- 'osk.exe'
- 'magnify.exe'
- 'narrator.exe'
- 'displayswitch.exe'
- 'atbroker.exe'
- 'HelpPane.exe'
condition: all of selection*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
all of selection*Stage 1: selection1
selection1:
CommandLine|contains: '\CurrentVersion\Image File Execution Options\'
Stage 2: selection2
selection2:
CommandLine|contains:
- 'sethc.exe'
- 'utilman.exe'
- 'osk.exe'
- 'magnify.exe'
- 'narrator.exe'
- 'displayswitch.exe'
- 'atbroker.exe'
- 'HelpPane.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Suspicious Microsoft OneNote Child Process
#Detects suspicious child processes of the Microsoft OneNote application. This may indicate an attempt to execute malicious embedded objects from a .one file.
Known False Positives
- File located in the AppData folder with trusted signature
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Suspicious Microsoft OneNote Child Process
id: c27515df-97a9-4162-8a60-dc0eeb51b775
related:
- id: 438025f9-5856-4663-83f7-52f878a70a50 # Generic rule for suspicious office application child processes
type: derived
status: test
description: Detects suspicious child processes of the Microsoft OneNote application. This may indicate an attempt to execute malicious embedded objects from a .one file.
references:
- https://github.com/elastic/protections-artifacts/commit/746086721fd385d9f5c6647cada1788db4aea95f#diff-e34e43eb5666427602ddf488b2bf3b545bd9aae81af3e6f6c7949f9652abdf18
- https://micahbabinski.medium.com/detecting-onenote-one-malware-delivery-407e9321ecf0
author: Tim Rauch (Nextron Systems), Nasreddine Bencherchali (Nextron Systems), Elastic (idea)
date: 2022-10-21
modified: 2023-02-10
tags:
- attack.t1566
- attack.t1566.001
- attack.initial-access
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\onenote.exe'
selection_opt_img:
- OriginalFileName:
- 'bitsadmin.exe'
- 'CertOC.exe'
- 'CertUtil.exe'
- 'Cmd.Exe'
- 'CMSTP.EXE'
- 'cscript.exe'
- 'curl.exe'
- 'HH.exe'
- 'IEExec.exe'
- 'InstallUtil.exe'
- 'javaw.exe'
- 'Microsoft.Workflow.Compiler.exe'
- 'msdt.exe'
- 'MSHTA.EXE'
- 'msiexec.exe'
- 'Msxsl.exe'
- 'odbcconf.exe'
- 'pcalua.exe'
- 'PowerShell.EXE'
- 'RegAsm.exe'
- 'RegSvcs.exe'
- 'REGSVR32.exe'
- 'RUNDLL32.exe'
- 'schtasks.exe'
- 'ScriptRunner.exe'
- 'wmic.exe'
- 'WorkFolders.exe'
- 'wscript.exe'
- Image|endswith:
- '\AppVLP.exe'
- '\bash.exe'
- '\bitsadmin.exe'
- '\certoc.exe'
- '\certutil.exe'
- '\cmd.exe'
- '\cmstp.exe'
- '\control.exe'
- '\cscript.exe'
- '\curl.exe'
- '\forfiles.exe'
- '\hh.exe'
- '\ieexec.exe'
- '\installutil.exe'
- '\javaw.exe'
- '\mftrace.exe'
- '\Microsoft.Workflow.Compiler.exe'
- '\msbuild.exe'
- '\msdt.exe'
- '\mshta.exe'
- '\msidb.exe'
- '\msiexec.exe'
- '\msxsl.exe'
- '\odbcconf.exe'
- '\pcalua.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\regasm.exe'
- '\regsvcs.exe'
- '\regsvr32.exe'
- '\rundll32.exe'
- '\schtasks.exe'
- '\scrcons.exe'
- '\scriptrunner.exe'
- '\sh.exe'
- '\svchost.exe'
- '\verclsid.exe'
- '\wmic.exe'
- '\workfolders.exe'
- '\wscript.exe'
selection_opt_explorer:
Image|endswith: '\explorer.exe'
CommandLine|contains:
- '.hta'
- '.vb'
- '.wsh'
- '.js'
- '.ps'
- '.scr'
- '.pif'
- '.bat'
- '.cmd'
selection_opt_paths:
Image|contains:
- '\AppData\'
- '\Users\Public\'
- '\ProgramData\'
- '\Windows\Tasks\'
- '\Windows\Temp\'
- '\Windows\System32\Tasks\'
filter_teams:
Image|endswith: '\AppData\Local\Microsoft\Teams\current\Teams.exe'
CommandLine|endswith: '-Embedding'
filter_onedrive:
Image|contains: '\AppData\Local\Microsoft\OneDrive\'
Image|endswith: '\FileCoAuth.exe'
CommandLine|endswith: '-Embedding'
condition: selection_parent and 1 of selection_opt_* and not 1 of filter_*
falsepositives:
- File located in the AppData folder with trusted signature
level: high
Stages and Predicates
Stage 0: condition
selection_parent and 1 of selection_opt_* and not 1 of filter_*Stage 1: selection_parent
selection_parent:
ParentImage|endswith: '\onenote.exe'
Stage 2: selection_opt_img
selection_opt_img:
- OriginalFileName:
- 'bitsadmin.exe'
- 'CertOC.exe'
- 'CertUtil.exe'
- 'Cmd.Exe'
- 'CMSTP.EXE'
- 'cscript.exe'
- 'curl.exe'
- 'HH.exe'
- 'IEExec.exe'
- 'InstallUtil.exe'
- 'javaw.exe'
- 'Microsoft.Workflow.Compiler.exe'
- 'msdt.exe'
- 'MSHTA.EXE'
- 'msiexec.exe'
- 'Msxsl.exe'
- 'odbcconf.exe'
- 'pcalua.exe'
- 'PowerShell.EXE'
- 'RegAsm.exe'
- 'RegSvcs.exe'
- 'REGSVR32.exe'
- 'RUNDLL32.exe'
- 'schtasks.exe'
- 'ScriptRunner.exe'
- 'wmic.exe'
- 'WorkFolders.exe'
- 'wscript.exe'
- Image|endswith:
- '\AppVLP.exe'
- '\bash.exe'
- '\bitsadmin.exe'
- '\certoc.exe'
- '\certutil.exe'
- '\cmd.exe'
- '\cmstp.exe'
- '\control.exe'
- '\cscript.exe'
- '\curl.exe'
- '\forfiles.exe'
- '\hh.exe'
- '\ieexec.exe'
- '\installutil.exe'
- '\javaw.exe'
- '\mftrace.exe'
- '\Microsoft.Workflow.Compiler.exe'
- '\msbuild.exe'
- '\msdt.exe'
- '\mshta.exe'
- '\msidb.exe'
- '\msiexec.exe'
- '\msxsl.exe'
- '\odbcconf.exe'
- '\pcalua.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\regasm.exe'
- '\regsvcs.exe'
- '\regsvr32.exe'
- '\rundll32.exe'
- '\schtasks.exe'
- '\scrcons.exe'
- '\scriptrunner.exe'
- '\sh.exe'
- '\svchost.exe'
- '\verclsid.exe'
- '\wmic.exe'
- '\workfolders.exe'
- '\wscript.exe'
Stage 3: selection_opt_explorer
selection_opt_explorer:
Image|endswith: '\explorer.exe'
CommandLine|contains:
- '.hta'
- '.vb'
- '.wsh'
- '.js'
- '.ps'
- '.scr'
- '.pif'
- '.bat'
- '.cmd'
Stage 4: selection_opt_paths
selection_opt_paths:
Image|contains:
- '\AppData\'
- '\Users\Public\'
- '\ProgramData\'
- '\Windows\Tasks\'
- '\Windows\Temp\'
- '\Windows\System32\Tasks\'
Stage 5: not filter_*
filter_teams:
Image|endswith: '\AppData\Local\Microsoft\Teams\current\Teams.exe'
CommandLine|endswith: '-Embedding'
filter_onedrive:
Image|contains: '\AppData\Local\Microsoft\OneDrive\'
Image|endswith: '\FileCoAuth.exe'
CommandLine|endswith: '-Embedding'
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 |
Image | match |
| field:"Image" kind:match |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\onenote.exe" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
CommandLine | ends_with | -Embedding | excludes:CommandLine field:"CommandLine" value:"-Embedding" |
Image | ends_with | \AppData\Local\Microsoft\Teams\current\Teams.exe | excludes:Image field:"Image" value:"\AppData\Local\Microsoft\Teams\current\Teams.exe" |
Image | ends_with | \FileCoAuth.exe | excludes:Image field:"Image" value:"\FileCoAuth.exe" |
Image | match | \AppData\Local\Microsoft\OneDrive\ | excludes:Image field:"Image" value:"\AppData\Local\Microsoft\OneDrive\" |
Suspicious SPN enumeration previous to Kerberoasting attack (native commands)
#Detects scenarios where an attacker attempts to retrieve SPN using commandline and native tools.
Known False Positives
- Administrators
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Discovery |
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 SPN enumeration previous to Kerberoasting attack (native commands)
description: Detects scenarios where an attacker attempts to retrieve SPN using commandline and native tools.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0007-Discovery/T1087-Account%20discovery
- https://github.com/nidem/kerberoast
- https://github.com/cyberark/RiskySPN
- https://pentestlab.blog/2018/06/04/spn-discovery/
- https://adsecurity.org/?p=3458
- https://www.security.com/threat-intelligence/us-china-espionage
tags:
- attack.account_discovery
- attack.t1087.002 # Account Discovery: Domain Account
author: mdecrevoisier
status: experimental
logsource:
product: windows
category: process_creation
detection: # full command : 'setspn -T my_domain -Q */*'
selection:
NewProcessName|endswith: \setspn.exe
CommandLine|contains: # Perform query on the specified domain
- '/Q'
- '-Q'
condition: selection
falsepositives:
- Administrators
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
NewProcessName|endswith: \setspn.exe
CommandLine|contains:
- '/Q'
- '-Q'
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:"\setspn.exe" |
System Restore Registry Modification via CommandLine
#Detects system restore registry modification via command line, which can be used by adversaries to disable system restore on the computer.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Impact |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: System Restore Registry Modification via CommandLine
id: 7c06ab9b-b1d2-4ba9-b06e-09491ded20d9
related:
- id: 5de03871-5d46-4539-a82d-3aa992a69a83
type: similar
status: experimental
description: |
Detects system restore registry modification via command line, which can be used by adversaries to disable system restore on the computer.
references:
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1490/T1490.md#atomic-test-9---disable-system-restore-through-registry
author: Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2026-03-11
tags:
- attack.impact
- attack.t1490
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\reg.exe'
- OriginalFileName:
- 'powershell.exe'
- 'pwsh.dll'
- 'reg.exe'
selection_cli_action:
CommandLine|contains:
- ' add '
- 'Set-ItemProperty'
- 'New-ItemProperty'
selection_cli_reg_root:
CommandLine|contains:
- '\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore'
- '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore'
selection_cli_reg_key:
CommandLine|contains:
- 'DisableConfig'
- 'DisableSR'
condition: all of selection_*
falsepositives:
- Unknown
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_reg_system_restore_modification/info.yml
simulation:
- type: atomic-red-team
name: Disable System Restore Through Registry
technique: T1490
atomic_guid: 66e647d1-8741-4e43-b7c1-334760c2047f
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_img
selection_img:
- Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\reg.exe'
- OriginalFileName:
- 'powershell.exe'
- 'pwsh.dll'
- 'reg.exe'
Stage 2: selection_cli_action
selection_cli_action:
CommandLine|contains:
- ' add '
- 'Set-ItemProperty'
- 'New-ItemProperty'
Stage 3: selection_cli_reg_root
selection_cli_reg_root:
CommandLine|contains:
- '\SOFTWARE\Policies\Microsoft\Windows NT\SystemRestore'
- '\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore'
Stage 4: selection_cli_reg_key
selection_cli_reg_key:
CommandLine|contains:
- 'DisableConfig'
- 'DisableSR'
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 |
UAC Bypass Abusing Winsat Path Parsing - Registry
#Detects the pattern of UAC Bypass using a path parsing issue in winsat.exe (UACMe 52)
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 13: RegistryEvent (Value Set) |
Rule Body
title: UAC Bypass Abusing Winsat Path Parsing - Registry
id: 6597be7b-ac61-4ac8-bef4-d3ec88174853
status: test
description: Detects the pattern of UAC Bypass using a path parsing issue in winsat.exe (UACMe 52)
references:
- https://github.com/hfiref0x/UACME
author: Christian Burkard (Nextron Systems)
date: 2021-08-30
modified: 2023-08-17
tags:
- attack.privilege-escalation
- attack.t1548.002
logsource:
category: registry_set
product: windows
detection:
selection:
TargetObject|contains: '\Root\InventoryApplicationFile\winsat.exe|'
TargetObject|endswith: '\LowerCaseLongPath'
Details|startswith: 'c:\users\'
Details|endswith: '\appdata\local\temp\system32\winsat.exe'
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetObject|contains: '\Root\InventoryApplicationFile\winsat.exe|'
TargetObject|endswith: '\LowerCaseLongPath'
Details|startswith: 'c:\users\'
Details|endswith: '\appdata\local\temp\system32\winsat.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Details | ends_with |
| field:"Details" kind:ends_with value:"\appdata\local\temp\system32\winsat.exe" |
Details | starts_with |
| field:"Details" kind:starts_with value:"c:\users\" |
TargetObject | ends_with |
| field:"TargetObject" kind:ends_with value:"\LowerCaseLongPath" |
TargetObject | match |
| field:"TargetObject" kind:match value:"\Root\InventoryApplicationFile\winsat.exe|" |
UAC Bypass Using DismHost
#Detects the pattern of UAC Bypass using DismHost DLL hijacking (UACMe 63)
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| 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: UAC Bypass Using DismHost
id: 853e74f9-9392-4935-ad3b-2e8c040dae86
status: test
description: Detects the pattern of UAC Bypass using DismHost DLL hijacking (UACMe 63)
references:
- https://github.com/hfiref0x/UACME
author: Christian Burkard (Nextron Systems)
date: 2021-08-30
modified: 2024-12-01
tags:
- attack.privilege-escalation
- attack.t1548.002
logsource:
category: process_creation
product: windows
detection:
selection:
ParentImage|contains|all:
- 'C:\Users\'
- '\AppData\Local\Temp\'
- '\DismHost.exe'
IntegrityLevel:
- 'High'
- 'System'
- 'S-1-16-16384' # System
- 'S-1-16-12288' # High
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
ParentImage|contains|all:
- 'C:\Users\'
- '\AppData\Local\Temp\'
- '\DismHost.exe'
IntegrityLevel:
- 'High'
- 'System'
- 'S-1-16-16384'
- 'S-1-16-12288'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
IntegrityLevel | eq |
| field:"IntegrityLevel" kind:eq |
ParentImage | match |
| field:"ParentImage" kind:match |
UNC4841 - Download Compressed Files From Temp.sh Using Wget
#Detects execution of "wget" to download a ".zip" or ".rar" files from "temp.sh". As seen used by UNC4841 during their Barracuda ESG zero day exploitation.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Linux | Event ID 1: Process Create |
Rule Body
title: UNC4841 - Download Compressed Files From Temp.sh Using Wget
id: 60d050c4-e253-4d9a-b673-5ac100cfddfb
status: test
description: Detects execution of "wget" to download a ".zip" or ".rar" files from "temp.sh". As seen used by UNC4841 during their Barracuda ESG zero day exploitation.
references:
- https://www.mandiant.com/resources/blog/barracuda-esg-exploited-globally
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-06-16
tags:
- attack.stealth
- attack.t1140
- detection.emerging-threats
logsource:
product: linux
category: process_creation
detection:
selection:
Image|endswith: '/wget'
CommandLine|contains: 'https://temp.sh/'
CommandLine|endswith:
- '.rar'
- '.zip'
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Image|endswith: '/wget'
CommandLine|contains: 'https://temp.sh/'
CommandLine|endswith:
- '.rar'
- '.zip'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | ends_with |
| field:"CommandLine" kind:ends_with |
CommandLine | match |
| field:"CommandLine" kind:match value:"https://temp.sh/" |
Image | ends_with |
| field:"Image" kind:ends_with value:"/wget" |
Using SettingSyncHost.exe as LOLBin
#Detects using SettingSyncHost.exe to run hijacked binary
MITRE ATT&CK Coverage
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Using SettingSyncHost.exe as LOLBin
id: b2ddd389-f676-4ac4-845a-e00781a48e5f
status: test
description: Detects using SettingSyncHost.exe to run hijacked binary
references:
- https://www.hexacorn.com/blog/2020/02/02/settingsynchost-exe-as-a-lolbin
author: Anton Kutepov, oscd.community
date: 2020-02-05
modified: 2021-11-27
tags:
- attack.privilege-escalation
- attack.persistence
- attack.execution
- attack.stealth
- attack.t1574.008
logsource:
category: process_creation
product: windows
detection:
system_utility:
Image|startswith:
- 'C:\Windows\System32\'
- 'C:\Windows\SysWOW64\'
parent_is_settingsynchost:
ParentCommandLine|contains|all:
- 'cmd.exe /c'
- 'RoamDiag.cmd'
- '-outputpath'
condition: not system_utility and parent_is_settingsynchost
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
not system_utility and parent_is_settingsynchostStage 1: not system_utility
system_utility:
Image|startswith:
- 'C:\Windows\System32\'
- 'C:\Windows\SysWOW64\'
Stage 2: parent_is_settingsynchost
parent_is_settingsynchost:
ParentCommandLine|contains|all:
- 'cmd.exe /c'
- 'RoamDiag.cmd'
- '-outputpath'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ParentCommandLine | match |
| field:"ParentCommandLine" kind:match |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Image | starts_with | C:\Windows\SysWOW64\ | excludes:Image field:"Image" value:"C:\Windows\SysWOW64\" |
Image | starts_with | C:\Windows\System32\ | excludes:Image field:"Image" value:"C:\Windows\System32\" |
VeeamBackup Database Credentials Dump Via Sqlcmd.EXE
#Detects dump of credentials in VeeamBackup dbo
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Collection |
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: VeeamBackup Database Credentials Dump Via Sqlcmd.EXE
id: b57ba453-b384-4ab9-9f40-1038086b4e53
status: test
description: Detects dump of credentials in VeeamBackup dbo
references:
- https://thedfirreport.com/2021/12/13/diavol-ransomware/
- https://forums.veeam.com/veeam-backup-replication-f2/recover-esxi-password-in-veeam-t34630.html
author: frack113
date: 2021-12-20
modified: 2023-02-13
tags:
- attack.collection
- attack.t1005
logsource:
category: process_creation
product: windows
detection:
selection_tools:
Image|endswith: '\sqlcmd.exe'
selection_query:
CommandLine|contains|all:
- 'SELECT'
- 'TOP'
- '[VeeamBackup].[dbo].[Credentials]'
condition: all of selection_*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_tools
selection_tools:
Image|endswith: '\sqlcmd.exe'
Stage 2: selection_query
selection_query:
CommandLine|contains|all:
- 'SELECT'
- 'TOP'
- '[VeeamBackup].[dbo].[Credentials]'
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:"\sqlcmd.exe" |