Detection rules › Sigma
Sigma rules: 2h
Active Directory Structure Export Via Csvde.EXE
#Detects the execution of "csvde.exe" in order to export organizational Active Directory structure.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Discovery |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Active Directory Structure Export Via Csvde.EXE
id: e5d36acd-acb4-4c6f-a13f-9eb203d50099
status: test
description: Detects the execution of "csvde.exe" in order to export organizational Active Directory structure.
references:
- https://www.cybereason.com/blog/research/operation-ghostshell-novel-rat-targets-global-aerospace-and-telecoms-firms
- https://web.archive.org/web/20180725233601/https://www.pwc.co.uk/cyber-security/pdf/cloud-hopper-annex-b-final.pdf
- https://businessinsights.bitdefender.com/deep-dive-into-a-backdoordiplomacy-attack-a-study-of-an-attackers-toolkit
- https://redcanary.com/blog/msix-installers/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-03-14
tags:
- attack.exfiltration
- attack.discovery
- attack.t1087.002
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith: '\csvde.exe'
- OriginalFileName: 'csvde.exe'
selection_remote:
CommandLine|contains: ' -f'
filter_import:
CommandLine|contains: ' -i'
condition: all of selection_* and not 1 of filter_*
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
all of selection_* and not 1 of filter_*Stage 1: selection_img
selection_img:
- Image|endswith: '\csvde.exe'
- OriginalFileName: 'csvde.exe'
Stage 2: selection_remote
selection_remote:
CommandLine|contains: ' -f'
Stage 3: not filter_import
filter_import:
CommandLine|contains: ' -i'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match value:" -f" |
Image | ends_with |
| field:"Image" kind:ends_with value:"\csvde.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"csvde.exe" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
CommandLine | match | -i | excludes:CommandLine field:"CommandLine" value:" -i" |
Azure Container Registry Created or Deleted
#Detects when a Container Registry is created or deleted.
Known False Positives
- Container Registry being created or deleted may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
- Container Registry created or deleted from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Impact |
Telemetry Coverage
Rule Body
title: Azure Container Registry Created or Deleted
id: 93e0ef48-37c8-49ed-a02c-038aab23628e
status: test
description: Detects when a Container Registry is created or deleted.
references:
- https://learn.microsoft.com/en-us/azure/role-based-access-control/resource-provider-operations#microsoftkubernetes
- https://www.microsoft.com/security/blog/2021/03/23/secure-containerized-environments-with-updated-threat-matrix-for-kubernetes/
- https://www.microsoft.com/security/blog/2020/04/02/attack-matrix-kubernetes/
- https://medium.com/mitre-engenuity/att-ck-for-containers-now-available-4c2359654bf1
author: Austin Songer @austinsonger
date: 2021-08-07
modified: 2022-08-23
tags:
- attack.impact
- attack.t1485
- attack.t1496
- attack.t1489
logsource:
product: azure
service: activitylogs
detection:
selection:
operationName:
- MICROSOFT.CONTAINERREGISTRY/REGISTRIES/WRITE
- MICROSOFT.CONTAINERREGISTRY/REGISTRIES/DELETE
condition: selection
falsepositives:
- Container Registry being created or deleted may be performed by a system administrator. Verify whether the user identity, user agent, and/or hostname should be making changes in your environment.
- Container Registry created or deleted from unfamiliar users should be investigated. If known behavior is causing false positives, it can be exempted from the rule.
level: low
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
operationName:
- MICROSOFT.CONTAINERREGISTRY/REGISTRIES/WRITE
- MICROSOFT.CONTAINERREGISTRY/REGISTRIES/DELETE
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
operationName | eq |
| field:"operationName" kind:eq |
DLL ServerLevelPluginDll command installation
#Detects scenarios where a DLL is loaded by the DNS server in order to escalate privileges or initiate a remote shell.
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| 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: DLL ServerLevelPluginDll command installation
description: Detects scenarios where a DLL is loaded by the DNS server in order to escalate privileges or initiate a remote shell.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1574-Hijack%20Execution%20Flow
- https://medium.com/@esnesenon/feature-not-bug-dnsadmin-to-dc-compromise-in-one-line-a0f779b8dc83
- https://medium.com/r3d-buck3t/escalating-privileges-with-dnsadmins-group-active-directory-6f7adbc7005b
- https://medium.com/techzap/dns-admin-privesc-in-active-directory-ad-windows-ecc7ed5a21a2
- https://phackt.com/dnsadmins-group-exploitation-write-permissions
- http://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html
- https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/from-dnsadmins-to-system-to-domain-compromise
- http://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html
- https://lolbas-project.github.io/lolbas/Binaries/Dnscmd/
- https://blog.3or.de/hunting-dns-server-level-plugin-dll-injection.html
tags:
- attack.persistence
- attack.t1574.002 # Hijack Execution Flow: DLL Side-Loading
author: Florian Roth (shortly adapted my mdecrevoisier)
status: experimental
logsource:
product: windows
category: process_creation
detection:
selection:
NewProcessName|endswith: '\dnscmd.exe'
CommandLine|contains|all: # full command 'dnscmd.exe /config /serverlevelplugindll "C:\mimilib.dll"'
- /config
- /serverlevelplugindll
condition: selection
falsepositives:
- None
level: critical
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
NewProcessName|endswith: '\dnscmd.exe'
CommandLine|contains|all:
- /config
- /serverlevelplugindll
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:"\dnscmd.exe" |
DLL ServerLevelPluginDll registration ("serverlevelplugindll" feature abuse)
#Detects scenarios where a DLL is loaded by the DNS server in order to escalate privileges or initiate a remote shell.
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Stealth |
Telemetry Coverage
Rule Body
title: DLL ServerLevelPluginDll registration ("serverlevelplugindll" feature abuse)
description: Detects scenarios where a DLL is loaded by the DNS server in order to escalate privileges or initiate a remote shell.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1574-Hijack%20Execution%20Flow
- https://medium.com/@esnesenon/feature-not-bug-dnsadmin-to-dc-compromise-in-one-line-a0f779b8dc83
- https://medium.com/r3d-buck3t/escalating-privileges-with-dnsadmins-group-active-directory-6f7adbc7005b
- https://medium.com/techzap/dns-admin-privesc-in-active-directory-ad-windows-ecc7ed5a21a2
- https://phackt.com/dnsadmins-group-exploitation-write-permissions
- http://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html
- https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/from-dnsadmins-to-system-to-domain-compromise
- http://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html
- https://lolbas-project.github.io/lolbas/Binaries/Dnscmd/
- https://blog.3or.de/hunting-dns-server-level-plugin-dll-injection.html
tags:
- attack.persistence
- attack.t1574.002 # Hijack Execution Flow: DLL Side-Loading
author: Florian Roth (shortly adapted my mdecrevoisier)
status: experimental
logsource:
product: windows
service: dns-server
detection:
selection:
EventID:
- 770 # success load
- 150 # failed load
condition: selection
falsepositives:
- None
level: critical
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID:
- 770
- 150
DNS Events Related To Mining Pools
#Identifies clients that may be performing DNS lookups associated with common currency mining pools.
Known False Positives
- A DNS lookup does not necessarily mean a successful attempt, verify a) if there was a response using the zeek answers field, if there was then verify the connections (conn.log) to those IPs. b) verify if HTTP, SSL, or TLS activity to the domain that was queried. http.log field is 'host' and ssl/tls is 'server_name'.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Impact |
Rule Body
title: DNS Events Related To Mining Pools
id: bf74135c-18e8-4a72-a926-0e4f47888c19
status: test
description: Identifies clients that may be performing DNS lookups associated with common currency mining pools.
references:
- https://github.com/Azure/Azure-Sentinel/blob/fa0411f9424b6c47b4d5a20165e4f1b168c1f103/Detections/ASimDNS/imDNS_Miners.yaml
author: Saw Winn Naung, Azure-Sentinel, @neu5ron
date: 2021-08-19
modified: 2022-07-07
tags:
- attack.execution
- attack.t1569.002
- attack.impact
- attack.t1496
logsource:
service: dns
product: zeek
detection:
selection:
query|endswith:
- 'monerohash.com'
- 'do-dear.com'
- 'xmrminerpro.com'
- 'secumine.net'
- 'xmrpool.com'
- 'minexmr.org'
- 'hashanywhere.com'
- 'xmrget.com'
- 'mininglottery.eu'
- 'minergate.com'
- 'moriaxmr.com'
- 'multipooler.com'
- 'moneropools.com'
- 'xmrpool.eu'
- 'coolmining.club'
- 'supportxmr.com'
- 'minexmr.com'
- 'hashvault.pro'
- 'xmrpool.net'
- 'crypto-pool.fr'
- 'xmr.pt'
- 'miner.rocks'
- 'walpool.com'
- 'herominers.com'
- 'gntl.co.uk'
- 'semipool.com'
- 'coinfoundry.org'
- 'cryptoknight.cc'
- 'fairhash.org'
- 'baikalmine.com'
- 'tubepool.xyz'
- 'fairpool.xyz'
- 'asiapool.io'
- 'coinpoolit.webhop.me'
- 'nanopool.org'
- 'moneropool.com'
- 'miner.center'
- 'prohash.net'
- 'poolto.be'
- 'cryptoescrow.eu'
- 'monerominers.net'
- 'cryptonotepool.org'
- 'extrmepool.org'
- 'webcoin.me'
- 'kippo.eu'
- 'hashinvest.ws'
- 'monero.farm'
- 'linux-repository-updates.com'
- '1gh.com'
- 'dwarfpool.com'
- 'hash-to-coins.com'
- 'pool-proxy.com'
- 'hashfor.cash'
- 'fairpool.cloud'
- 'litecoinpool.org'
- 'mineshaft.ml'
- 'abcxyz.stream'
- 'moneropool.ru'
- 'cryptonotepool.org.uk'
- 'extremepool.org'
- 'extremehash.com'
- 'hashinvest.net'
- 'unipool.pro'
- 'crypto-pools.org'
- 'monero.net'
- 'backup-pool.com'
- 'mooo.com' # Dynamic DNS, may want to exclude
- 'freeyy.me'
- 'cryptonight.net'
- 'shscrypto.net'
exclude_answers:
answers:
- '127.0.0.1'
- '0.0.0.0'
exclude_rejected:
rejected: 'true'
condition: selection and not 1 of exclude_*
falsepositives:
- A DNS lookup does not necessarily mean a successful attempt, verify a) if there was a response using the zeek answers field, if there was then verify the connections (conn.log) to those IPs. b) verify if HTTP, SSL, or TLS activity to the domain that was queried. http.log field is 'host' and ssl/tls is 'server_name'.
level: low
Stages and Predicates
Stage 0: condition
selection and not 1 of exclude_*Stage 1: selection
selection:
query|endswith:
- 'monerohash.com'
- 'do-dear.com'
- 'xmrminerpro.com'
- 'secumine.net'
- 'xmrpool.com'
- 'minexmr.org'
- 'hashanywhere.com'
- 'xmrget.com'
- 'mininglottery.eu'
- 'minergate.com'
- 'moriaxmr.com'
- 'multipooler.com'
- 'moneropools.com'
- 'xmrpool.eu'
- 'coolmining.club'
- 'supportxmr.com'
- 'minexmr.com'
- 'hashvault.pro'
- 'xmrpool.net'
- 'crypto-pool.fr'
- 'xmr.pt'
- 'miner.rocks'
- 'walpool.com'
- 'herominers.com'
- 'gntl.co.uk'
- 'semipool.com'
- 'coinfoundry.org'
- 'cryptoknight.cc'
- 'fairhash.org'
- 'baikalmine.com'
- 'tubepool.xyz'
- 'fairpool.xyz'
- 'asiapool.io'
- 'coinpoolit.webhop.me'
- 'nanopool.org'
- 'moneropool.com'
- 'miner.center'
- 'prohash.net'
- 'poolto.be'
- 'cryptoescrow.eu'
- 'monerominers.net'
- 'cryptonotepool.org'
- 'extrmepool.org'
- 'webcoin.me'
- 'kippo.eu'
- 'hashinvest.ws'
- 'monero.farm'
- 'linux-repository-updates.com'
- '1gh.com'
- 'dwarfpool.com'
- 'hash-to-coins.com'
- 'pool-proxy.com'
- 'hashfor.cash'
- 'fairpool.cloud'
- 'litecoinpool.org'
- 'mineshaft.ml'
- 'abcxyz.stream'
- 'moneropool.ru'
- 'cryptonotepool.org.uk'
- 'extremepool.org'
- 'extremehash.com'
- 'hashinvest.net'
- 'unipool.pro'
- 'crypto-pools.org'
- 'monero.net'
- 'backup-pool.com'
- 'mooo.com'
- 'freeyy.me'
- 'cryptonight.net'
- 'shscrypto.net'
Stage 2: not exclude_*
exclude_answers:
answers:
- '127.0.0.1'
- '0.0.0.0'
exclude_rejected:
rejected: 'true'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
query | ends_with |
| field:"query" kind:ends_with |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
answers | eq | 0.0.0.0 | excludes:answers field:"answers" value:"0.0.0.0" |
answers | eq | 127.0.0.1 | excludes:answers field:"answers" value:"127.0.0.1" |
rejected | eq | true | excludes:rejected field:"rejected" value:"true" |
Fortinet APT group abuse on Windows (task)
#Detects scenarios where APT actors exploits Fortinet vulnerabilities to gain access into Windows infrastructure.
Known False Positives
- None
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4698: A scheduled task was created. |
Rule Body
title: Fortinet APT group abuse on Windows (task)
description: Detects scenarios where APT actors exploits Fortinet vulnerabilities to gain access into Windows infrastructure.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/EVTX_full_APT_attack_steps
- https://www.aha.org/system/files/media/file/2021/05/fbi-flash-tlp-white-apt-actors-exploiting-fortinet-vulnerabilities-to-gain-access-for-malicious-activity-5-27-21.pdf
- https://www.securityweek.com/fbi-shares-iocs-apt-attacks-exploiting-fortinet-vulnerabilities
tags:
- attack.execution
- attack.t1053.005
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: security
detection:
selection:
EventID: 4698
TaskName|endswith: '\SynchronizeTimeZone'
condition: selection
falsepositives:
- None
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID: 4698
TaskName|endswith: '\SynchronizeTimeZone'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TaskName | ends_with |
| field:"TaskName" kind:ends_with value:"\SynchronizeTimeZone" |
Google Cloud Kubernetes Admission Controller
#Identifies when an admission controller is executed in GCP Kubernetes. A Kubernetes Admission controller intercepts, and possibly modifies, requests to the Kubernetes API server. The behavior of this admission controller is determined by an admission webhook (MutatingAdmissionWebhook or ValidatingAdmissionWebhook) that the user deploys in the cluster. An adversary can use such webhooks as the MutatingAdmissionWebhook for obtaining persistence in the cluster. For example, attackers can intercept and modify the pod creation operations in the cluster and add their malicious container to every created pod. An adversary can use the webhook ValidatingAdmissionWebhook, which could be used to obtain access credentials. An adversary could use the webhook to intercept the requests to the API server, record secrets, and other sensitive information.
Known False Positives
- Google Cloud Kubernetes Admission Controller may be done by a system administrator.
- If known behavior is causing false positives, it can be exempted from the rule.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Persistence | |
| Privilege Escalation | |
| Stealth | |
| Credential Access |
Rule Body
title: Google Cloud Kubernetes Admission Controller
id: 6ad91e31-53df-4826-bd27-0166171c8040
status: test
description: |
Identifies when an admission controller is executed in GCP Kubernetes.
A Kubernetes Admission controller intercepts, and possibly modifies, requests to the Kubernetes API server.
The behavior of this admission controller is determined by an admission webhook (MutatingAdmissionWebhook or ValidatingAdmissionWebhook) that the user deploys in the cluster.
An adversary can use such webhooks as the MutatingAdmissionWebhook for obtaining persistence in the cluster.
For example, attackers can intercept and modify the pod creation operations in the cluster and add their malicious container to every created pod. An adversary can use the webhook ValidatingAdmissionWebhook, which could be used to obtain access credentials.
An adversary could use the webhook to intercept the requests to the API server, record secrets, and other sensitive information.
references:
- https://cloud.google.com/kubernetes-engine/docs
author: Austin Songer @austinsonger
date: 2021-11-25
modified: 2022-12-18
tags:
- attack.privilege-escalation
- attack.initial-access
- attack.persistence
- attack.stealth
- attack.t1078
- attack.credential-access
- attack.t1552
- attack.t1552.007
logsource:
product: gcp
service: gcp.audit
detection:
selection:
gcp.audit.method_name|startswith: 'admissionregistration.k8s.io.v'
gcp.audit.method_name|contains:
- '.mutatingwebhookconfigurations.'
- '.validatingwebhookconfigurations.'
gcp.audit.method_name|endswith:
- 'create'
- 'patch'
- 'replace'
condition: selection
falsepositives:
- Google Cloud Kubernetes Admission Controller may be done by a system administrator.
- If known behavior is causing false positives, it can be exempted from the rule.
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
gcp.audit.method_name|startswith: 'admissionregistration.k8s.io.v'
gcp.audit.method_name|contains:
- '.mutatingwebhookconfigurations.'
- '.validatingwebhookconfigurations.'
gcp.audit.method_name|endswith:
- 'create'
- 'patch'
- 'replace'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
gcp.audit.method_name | ends_with |
| field:"gcp::method_name" kind:ends_with |
gcp.audit.method_name | match |
| field:"gcp::method_name" kind:match |
gcp.audit.method_name | starts_with |
| field:"gcp::method_name" kind:starts_with value:"admissionregistration.k8s.io.v" |
High risk event - risk of copying client credentials
#Detect potential risks of copying client credentials by monitoring if a client is read via the Dashboard or Management API. This can indicate that someone is trying to copy client credentials for malicious purposes.
Known False Positives
- Legitimate access by an administrator to read client settings.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Rule Body
title: High risk event - risk of copying client credentials
id: 2d7087d2-716d-11f0-ba3b-723487b9527c
status: experimental
description: |
Detect potential risks of copying client credentials by monitoring if a client is read via the Dashboard or Management API.
This can indicate that someone is trying to copy client credentials for malicious purposes.
author: Okta
date: 2025-07-11
modified: 2025-09-02
logsource:
product: auth0
detection:
selection:
data.type: mgmt_api_read
data.description: "Get client by ID"
data.details.accessedSecrets{}: client_secret
data.details.response.body.client_id:
- "critical-client_id-1"
- "critical-client_id-etc"
condition: selection
explanation: >
The query collects log entries captured when the application's settings are accessed.
The Splunk query displays affected clients/applications copying user, IP, and counts a number of readings.
Limit the detection to specific high risk clients, e.g. your main customer facing application.
Alternatively, exclude applications where client authentication is not applicable, i.e. mobile apps and SPAs.
splunk: |
index=auth0 data.tenant_name="{your-tenant-name}"
data.type=mgmt_api_read data.description="Get client by ID"
data.details.accessedSecrets{}=client_secret
``` Limit monitoring to a list of applicable applications ```
```data.details.response.body.client_id IN ("critical-client_id-1", "critical-client_id-etc")```
| fields data.details.response.body.client_id, data.user_id, data.ip
```Display the information in a table: affected clients, user checking the secret and IP of this user```
| rename data.details.response.body.client_id as client_id
| rename data.user_id as user_id
| rename data.ip as ip
| stats count by client_id, user_id, ip
comments:
- The Splunk query above, shall be tuned to reflect a valid tenant name and a list of clients (by client_id) to monitor.
tenant_logs: |
type: "mgmt_api_read" AND description: "Get client by ID"
prevention:
- Limit number of admins ("Admin", "Editor - Specific App", "Viewer - Config Settings").
- Rotate client credentials periodically.
- Stop relying on client_secret, but explore Private key JWT for client authentication.
falsepositives:
- Legitimate access by an administrator to read client settings.
level: medium
tags:
- attack.credential-access
- attack.t1528
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
data.type: mgmt_api_read
data.description: "Get client by ID"
data.details.accessedSecrets{}: client_secret
data.details.response.body.client_id:
- "critical-client_id-1"
- "critical-client_id-etc"
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
data.description | eq |
| field:"data.description" kind:eq value:"Get client by ID" |
data.details.accessedSecrets{} | eq |
| field:"data.details.accessedSecrets{}" kind:eq value:"client_secret" |
data.details.response.body.client_id | eq |
| field:"data.details.response.body.client_id" kind:eq |
data.type | eq |
| field:"data.type" kind:eq value:"mgmt_api_read" |
Inline Python Execution - Spawn Shell Via OS System Library
#Detects execution of inline Python code via the "-c" in order to call the "system" function from the "os" library, and spawn a shell.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Linux | Event ID 1: Process Create |
Rule Body
title: Inline Python Execution - Spawn Shell Via OS System Library
id: 2d2f44ff-4611-4778-a8fc-323a0e9850cc
status: test
description: |
Detects execution of inline Python code via the "-c" in order to call the "system" function from the "os" library, and spawn a shell.
references:
- https://gtfobins.github.io/gtfobins/python/#shell
author: Li Ling, Andy Parkidomo, Robert Rakowski, Blake Hartstein (Bloomberg L.P.)
date: 2024-09-02
tags:
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: linux
detection:
selection_img:
- Image|endswith:
- '/python'
- '/python2'
- '/python3'
- Image|contains:
- '/python2.' # python image is always of the form ../python3.10; ../python is just a symlink
- '/python3.'
selection_cli:
CommandLine|contains|all:
- ' -c '
- 'os.system('
CommandLine|contains:
- '/bin/bash'
- '/bin/dash'
- '/bin/fish'
- '/bin/sh'
- '/bin/zsh'
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:
- '/python'
- '/python2'
- '/python3'
- Image|contains:
- '/python2.'
- '/python3.'
Stage 2: selection_cli
selection_cli:
CommandLine|contains|all:
- ' -c '
- 'os.system('
CommandLine|contains:
- '/bin/bash'
- '/bin/dash'
- '/bin/fish'
- '/bin/sh'
- '/bin/zsh'
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 |
New Okta User Created
#Detects new user account creation
Known False Positives
- Legitimate and authorized user creation
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Credential Access | No specific technique |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Okta | System Log event type user.lifecycle.create: Okta user created |
Rules Detecting the Same Action
These rules filter on the same operation.
Rule Body
title: New Okta User Created
id: b6c718dd-8f53-4b9f-98d8-93fdca966969
status: test
description: Detects new user account creation
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-10-25
modified: 2026-04-27
references:
- https://developer.okta.com/docs/reference/api/event-types/
tags:
- attack.credential-access
logsource:
service: okta
product: okta
detection:
selection:
eventType: 'user.lifecycle.create'
condition: selection
falsepositives:
- Legitimate and authorized user creation
level: informational
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
eventType: 'user.lifecycle.create'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
eventType | eq |
| field:"eventType" kind:eq value:"user.lifecycle.create" |
OpenEDR Spawning Command Shell
#Detects the OpenEDR ssh-shellhost.exe spawning a command shell (cmd.exe) or PowerShell with PTY (pseudo-terminal) capabilities. This may indicate remote command execution through OpenEDR's remote management features, which could be legitimate administrative activity or potential abuse of the remote access tool. Threat actors may leverage OpenEDR's remote shell capabilities to execute commands on compromised systems, facilitating lateral movement or other command-and-control operations.
Known False Positives
- Legitimate use of OpenEDR for remote command execution
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Lateral Movement | |
| Command & Control |
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: OpenEDR Spawning Command Shell
id: 7f3a9c2d-4e8b-4a7f-9d3e-5c6f8a9b2e1d
status: experimental
description: |
Detects the OpenEDR ssh-shellhost.exe spawning a command shell (cmd.exe) or PowerShell with PTY (pseudo-terminal) capabilities.
This may indicate remote command execution through OpenEDR's remote management features, which could be legitimate administrative activity or potential abuse of the remote access tool.
Threat actors may leverage OpenEDR's remote shell capabilities to execute commands on compromised systems, facilitating lateral movement or other command-and-control operations.
author: '@kostastsale'
date: 2026-02-19
references:
- https://kostas-ts.medium.com/detecting-abuse-of-openedrs-permissive-edr-trial-a-security-researcher-s-perspective-fc55bf53972c
tags:
- attack.execution
- attack.t1059.003
- attack.lateral-movement
- attack.t1021.004
- attack.command-and-control
- attack.t1219
logsource:
product: windows
category: process_creation
detection:
selection_img:
ParentImage|endswith: '\ITSMService.exe'
Image|endswith: '\ssh-shellhost.exe'
CommandLine|contains: '--pty'
selection_cli_shell:
CommandLine|contains:
- 'bash'
- 'cmd'
- 'powershell'
- 'pwsh'
condition: all of selection_*
falsepositives:
- Legitimate use of OpenEDR for remote command execution
level: medium
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_img
selection_img:
ParentImage|endswith: '\ITSMService.exe'
Image|endswith: '\ssh-shellhost.exe'
CommandLine|contains: '--pty'
Stage 2: selection_cli_shell
selection_cli_shell:
CommandLine|contains:
- 'bash'
- 'cmd'
- 'powershell'
- 'pwsh'
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:"\ssh-shellhost.exe" |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\ITSMService.exe" |
Password Protected ZIP File Opened (Email Attachment)
#Detects the extraction of password protected ZIP archives. See the filename variable for more details on which file has been opened.
Known False Positives
- Legitimate used of encrypted ZIP files
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 5379: Credential Manager credentials were read. |
Rule Body
title: Password Protected ZIP File Opened (Email Attachment)
id: 571498c8-908e-40b4-910b-d2369159a3da
status: test
description: Detects the extraction of password protected ZIP archives. See the filename variable for more details on which file has been opened.
references:
- https://twitter.com/sbousseaden/status/1523383197513379841
author: Florian Roth (Nextron Systems)
date: 2022-05-09
tags:
- attack.initial-access
- attack.stealth
- attack.t1027
- attack.t1566.001
logsource:
product: windows
service: security
detection:
selection:
EventID: 5379
TargetName|contains|all:
- 'Microsoft_Windows_Shell_ZipFolder:filename'
- '\Temporary Internet Files\Content.Outlook'
condition: selection
falsepositives:
- Legitimate used of encrypted ZIP files
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID: 5379
TargetName|contains|all:
- 'Microsoft_Windows_Shell_ZipFolder:filename'
- '\Temporary Internet Files\Content.Outlook'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetName | match |
| field:"TargetName" kind:match |
Potential Arbitrary Command Execution Using Msdt.EXE
#Detects processes leveraging the "ms-msdt" handler or the "msdt.exe" binary to execute arbitrary commands as seen in the follina (CVE-2022-30190) vulnerability
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Potential Arbitrary Command Execution Using Msdt.EXE
id: 258fc8ce-8352-443a-9120-8a11e4857fa5
status: test
description: Detects processes leveraging the "ms-msdt" handler or the "msdt.exe" binary to execute arbitrary commands as seen in the follina (CVE-2022-30190) vulnerability
references:
- https://twitter.com/nao_sec/status/1530196847679401984
- https://app.any.run/tasks/713f05d2-fe78-4b9d-a744-f7c133e3fafb/
- https://twitter.com/_JohnHammond/status/1531672601067675648
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-05-29
modified: 2024-03-13
tags:
- attack.stealth
- attack.t1202
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith: '\msdt.exe'
- OriginalFileName: 'msdt.exe'
selection_cmd_inline:
CommandLine|contains: 'IT_BrowseForFile='
selection_cmd_answerfile_flag:
CommandLine|contains: ' PCWDiagnostic'
selection_cmd_answerfile_param:
CommandLine|contains|windash: ' -af '
condition: selection_img and (selection_cmd_inline or all of selection_cmd_answerfile_*)
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selection_img and (selection_cmd_inline or all of selection_cmd_answerfile_*)Stage 1: selection_img
selection_img:
- Image|endswith: '\msdt.exe'
- OriginalFileName: 'msdt.exe'
Stage 2: selection_cmd_inline
selection_cmd_inline:
CommandLine|contains: 'IT_BrowseForFile='
Stage 3: selection_cmd_answerfile_flag
selection_cmd_answerfile_flag:
CommandLine|contains: ' PCWDiagnostic'
Stage 4: selection_cmd_answerfile_param
selection_cmd_answerfile_param:
CommandLine|contains|windash: ' -af '
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:"\msdt.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"msdt.exe" |
Potential DLL Sideloading Of Libcurl.DLL Via GUP.EXE
#Detects potential DLL sideloading of "libcurl.dll" by the "gup.exe" process from an uncommon location
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 7: Image loaded |
Rule Body
title: Potential DLL Sideloading Of Libcurl.DLL Via GUP.EXE
id: e49b5745-1064-4ac1-9a2e-f687bc2dd37e
status: test
description: Detects potential DLL sideloading of "libcurl.dll" by the "gup.exe" process from an uncommon location
references:
- https://labs.withsecure.com/publications/fin7-target-veeam-servers
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-05-05
tags:
- attack.persistence
- attack.privilege-escalation
- attack.execution
- attack.stealth
- attack.t1574.001
logsource:
category: image_load
product: windows
detection:
selection:
Image|endswith: '\gup.exe'
ImageLoaded|endswith: '\libcurl.dll'
filter_main_notepad_plusplus:
Image|endswith: '\Notepad++\updater\GUP.exe'
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: '\gup.exe'
ImageLoaded|endswith: '\libcurl.dll'
Stage 2: not filter_main_notepad_plusplus
filter_main_notepad_plusplus:
Image|endswith: '\Notepad++\updater\GUP.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with value:"\gup.exe" |
ImageLoaded | ends_with |
| field:"ImageLoaded" kind:ends_with value:"\libcurl.dll" |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Image | ends_with | \Notepad++\updater\GUP.exe | excludes:Image field:"Image" value:"\Notepad++\updater\GUP.exe" |
Potential MuddyWater APT Activity
#Detects potential Muddywater APT activity
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | No specific technique |
| Stealth | No specific technique |
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 MuddyWater APT Activity
id: 36222790-0d43-4fe8-86e4-674b27809543
status: test
description: Detects potential Muddywater APT activity
references:
- https://www.mandiant.com/resources/blog/iranian-threat-group-updates-ttps-in-spear-phishing-campaign
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-03-10
tags:
- attack.execution
- attack.stealth
- attack.g0069
- detection.emerging-threats
logsource:
category: process_creation
product: windows
detection:
selection_mshta:
CommandLine|contains|all:
- 'vbscript:Close(Execute("CreateObject('
- 'powershell'
- '-w 1 -exec Bypass'
- '\ProgramData\'
selection_survey:
CommandLine|contains|all:
- 'Win32_OperatingSystem'
- 'Win32_NetworkAdapterConfiguration'
- 'root\SecurityCenter2'
- '[System.Net.DNS]'
selection_pwsh_backdoor:
CommandLine|contains|all:
- '[Convert]::ToBase64String'
- '[System.Text.Encoding]::UTF8.GetString]'
- 'GetResponse().GetResponseStream()'
- '[System.Net.HttpWebRequest]::Create('
- '-bxor '
condition: 1 of selection_*
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
1 of selection_*Stage 1: selection_mshta
selection_mshta:
CommandLine|contains|all:
- 'vbscript:Close(Execute("CreateObject('
- 'powershell'
- '-w 1 -exec Bypass'
- '\ProgramData\'
Stage 2: selection_survey
selection_survey:
CommandLine|contains|all:
- 'Win32_OperatingSystem'
- 'Win32_NetworkAdapterConfiguration'
- 'root\SecurityCenter2'
- '[System.Net.DNS]'
Stage 3: selection_pwsh_backdoor
selection_pwsh_backdoor:
CommandLine|contains|all:
- '[Convert]::ToBase64String'
- '[System.Text.Encoding]::UTF8.GetString]'
- 'GetResponse().GetResponseStream()'
- '[System.Net.HttpWebRequest]::Create('
- '-bxor '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Potential RipZip Attack on Startup Folder
#Detects a phishing attack which expands a ZIP file containing a malicious shortcut. If the victim expands the ZIP file via the explorer process, then the explorer process expands the malicious ZIP file and drops a malicious shortcut redirected to a backdoor into the Startup folder. Additionally, the file name of the malicious shortcut in Startup folder contains {0AFACED1-E828-11D1-9187-B532F1E9575D} meaning the folder shortcut operation.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Privilege Escalation |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 11: FileCreate |
Rule Body
title: Potential RipZip Attack on Startup Folder
id: a6976974-ea6f-4e97-818e-ea08625c52cb
status: test
description: |
Detects a phishing attack which expands a ZIP file containing a malicious shortcut.
If the victim expands the ZIP file via the explorer process, then the explorer process expands the malicious ZIP file and drops a malicious shortcut redirected to a backdoor into the Startup folder.
Additionally, the file name of the malicious shortcut in Startup folder contains {0AFACED1-E828-11D1-9187-B532F1E9575D} meaning the folder shortcut operation.
references:
- https://twitter.com/jonasLyk/status/1549338335243534336?t=CrmPocBGLbDyE4p6zTX1cg&s=19
author: Greg (rule)
date: 2022-07-21
modified: 2023-01-05
tags:
- attack.privilege-escalation
- attack.persistence
- attack.t1547
logsource:
category: file_event
product: windows
detection:
selection: # %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\target.lnk.{0AFACED1-E828-11D1-9187-B532F1E9575D}\target.lnk
TargetFilename|contains|all:
- '\Microsoft\Windows\Start Menu\Programs\Startup'
- '.lnk.{0AFACED1-E828-11D1-9187-B532F1E9575D}'
Image|endswith: '\explorer.exe'
condition: selection
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetFilename|contains|all:
- '\Microsoft\Windows\Start Menu\Programs\Startup'
- '.lnk.{0AFACED1-E828-11D1-9187-B532F1E9575D}'
Image|endswith: '\explorer.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with value:"\explorer.exe" |
TargetFilename | match |
| field:"TargetFilename" kind:match |
Potentially Suspicious Execution From Parent Process In Public Folder
#Detects a potentially suspicious execution of a parent process located in the "\Users\Public" folder executing a child process containing references to shell or scripting binaries and commandlines.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| 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: Potentially Suspicious Execution From Parent Process In Public Folder
id: 69bd9b97-2be2-41b6-9816-fb08757a4d1a
status: test
description: |
Detects a potentially suspicious execution of a parent process located in the "\Users\Public" folder executing a child process containing references to shell or scripting binaries and commandlines.
references:
- https://redcanary.com/blog/blackbyte-ransomware/
author: Florian Roth (Nextron Systems), Nasreddine Bencherchali (Nextron Systems)
date: 2022-02-25
modified: 2024-07-12
tags:
- attack.execution
- attack.stealth
- attack.t1564
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|contains: ':\Users\Public\'
selection_child:
- Image|endswith:
- '\bitsadmin.exe'
- '\certutil.exe'
- '\cmd.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\regsvr32.exe'
- '\rundll32.exe'
- '\wscript.exe'
- CommandLine|contains:
- 'bitsadmin'
- 'certutil'
- 'cscript'
- 'mshta'
- 'powershell'
- 'regsvr32'
- 'rundll32'
- 'wscript'
condition: all of selection_*
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_parent
selection_parent:
ParentImage|contains: ':\Users\Public\'
Stage 2: selection_child
selection_child:
- Image|endswith:
- '\bitsadmin.exe'
- '\certutil.exe'
- '\cmd.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\regsvr32.exe'
- '\rundll32.exe'
- '\wscript.exe'
- CommandLine|contains:
- 'bitsadmin'
- 'certutil'
- 'cscript'
- 'mshta'
- 'powershell'
- 'regsvr32'
- 'rundll32'
- 'wscript'
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 |
ParentImage | match |
| field:"ParentImage" kind:match value:":\Users\Public\" |
PowerShell Module File Created By Non-PowerShell Process
#Detects the creation of a new PowerShell module ".psm1", ".psd1", ".dll", ".ps1", etc. by a non-PowerShell process
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Persistence | No specific technique |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 11: FileCreate |
Rule Body
title: PowerShell Module File Created By Non-PowerShell Process
id: e3845023-ca9a-4024-b2b2-5422156d5527
status: test
description: Detects the creation of a new PowerShell module ".psm1", ".psd1", ".dll", ".ps1", etc. by a non-PowerShell process
references:
- Internal Research
- https://learn.microsoft.com/en-us/powershell/scripting/developer/module/understanding-a-windows-powershell-module?view=powershell-7.3
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-05-09
modified: 2025-10-07
tags:
- attack.persistence
logsource:
category: file_event
product: windows
detection:
selection:
TargetFilename|contains:
- '\WindowsPowerShell\Modules\'
- '\PowerShell\7\Modules\'
filter_main_pwsh:
Image|endswith:
- ':\Program Files\PowerShell\7-preview\pwsh.exe'
- ':\Program Files\PowerShell\7\pwsh.exe'
- ':\Windows\System32\poqexec.exe' # https://github.com/SigmaHQ/sigma/issues/4448
- ':\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe'
- ':\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
- ':\Windows\SysWOW64\poqexec.exe' # https://github.com/SigmaHQ/sigma/issues/4448
- ':\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe'
- ':\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe'
filter_main_msiexec:
Image:
- 'C:\Windows\System32\msiexec.exe'
- 'C:\Windows\SysWOW64\msiexec.exe'
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:
TargetFilename|contains:
- '\WindowsPowerShell\Modules\'
- '\PowerShell\7\Modules\'
Stage 2: not filter_main_*
filter_main_pwsh:
Image|endswith:
- ':\Program Files\PowerShell\7-preview\pwsh.exe'
- ':\Program Files\PowerShell\7\pwsh.exe'
- ':\Windows\System32\poqexec.exe'
- ':\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe'
- ':\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
- ':\Windows\SysWOW64\poqexec.exe'
- ':\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell_ise.exe'
- ':\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe'
filter_main_msiexec:
Image:
- 'C:\Windows\System32\msiexec.exe'
- 'C:\Windows\SysWOW64\msiexec.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetFilename | match |
| field:"TargetFilename" kind:match |
Exclusions
The rule actively suppresses these predicates.
Print spooler privilege escalation via printer added (CVE-2020-1048)
#Detects scenarios where an attacker abuse the printer spooler features to load a DLL. The attack is composed by 4 steps > 1) create a printer that points to a missing DLL 2) print to that port 3) crash the printer spool 4) have his original DLL registered for privilege escalation.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation |
Telemetry Coverage
Rule Body
title: Print spooler privilege escalation via printer added (CVE-2020-1048)
description: Detects scenarios where an attacker abuse the printer spooler features to load a DLL. The attack is composed by 4 steps > 1) create a printer that points to a missing DLL 2) print to that port 3) crash the printer spool 4) have his original DLL registered for privilege escalation.
reference:
- https://twitter.com/aionescu/status/1260466215299973121
- https://windows-internals.com/printdemon-cve-2020-1048/
tags:
- attack.privilege_escalation
- attack.t1547.010
author: Emir Erdogan (shortly adapted by mdecrevoisier)
status: experimental
logsource:
product: windows
category:
- ps_module
- ps_classic_script
- ps_script
detection: # full command "Add-PrinterPort -Name c:\windows\system32\\*.exe'"
selection_powershell_native:
EventID: 800
EventData|contains|all:
- Add-PrinterPort
- Name
EventData|contains:
- .exe
- .dll
selection_powershell_modern:
EventID: 4103
Payload|contains|all:
- Add-PrinterPort
- Name
Payload|contains:
- .exe
- .dll
selection_powershell_block:
EventID: 4104
ScriptBlockText|contains|all:
- Add-PrinterPort
- Name
ScriptBlockText|contains:
- .exe
- .dll
condition: selection_powershell_native or selection_powershell_modern or selection_powershell_block
falsepositives:
- unknown
level: high
Stages and Predicates
Stage 0: condition
selection_powershell_native or selection_powershell_modern or selection_powershell_blockStage 1: selection_powershell_native
selection_powershell_native:
EventID: 800
EventData|contains|all:
- Add-PrinterPort
- Name
EventData|contains:
- .exe
- .dll
Stage 2: selection_powershell_modern
selection_powershell_modern:
EventID: 4103
Payload|contains|all:
- Add-PrinterPort
- Name
Payload|contains:
- .exe
- .dll
Stage 3: selection_powershell_block
selection_powershell_block:
EventID: 4104
ScriptBlockText|contains|all:
- Add-PrinterPort
- Name
ScriptBlockText|contains:
- .exe
- .dll
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 |
Privileged Container Deployed
#Detects the creation of a "privileged" container, an action which could be indicative of a threat actor mounting a container breakout attacks. A privileged container is a container that can access the host with all of the root capabilities of the host machine. This allows it to view, interact and modify processes, network operations, IPC calls, the file system, mount points, SELinux configurations etc. as the root user on the host. Various versions of "privileged" containers can be specified, e.g. by setting the securityContext.privileged flag in the resource specification, setting non-standard Linux capabilities, or configuring the hostNetwork/hostPID fields
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Privilege Escalation |
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)
- Creation Of Pod In System Namespace (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)
Rule Body
title: Privileged Container Deployed
id: c5cd1b20-36bb-488d-8c05-486be3d0cb97
status: test
description: |
Detects the creation of a "privileged" container, an action which could be indicative of a threat actor mounting a container breakout attacks.
A privileged container is a container that can access the host with all of the root capabilities of the host machine. This allows it to view, interact and modify processes, network operations, IPC calls, the file system, mount points, SELinux configurations etc. as the root user on the host.
Various versions of "privileged" containers can be specified, e.g. by setting the securityContext.privileged flag in the resource specification, setting non-standard Linux capabilities, or configuring the hostNetwork/hostPID fields
references:
- https://microsoft.github.io/Threat-Matrix-for-Kubernetes/techniques/Privileged%20container/
- https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-kubernetes.html#privilegeescalation-kubernetes-privilegedcontainer
- https://www.elastic.co/guide/en/security/current/kubernetes-pod-created-with-hostnetwork.html
- https://www.elastic.co/guide/en/security/current/kubernetes-container-created-with-excessive-linux-capabilities.html
author: Leo Tsaousis (@laripping)
date: 2024-03-26
tags:
- attack.t1611
- attack.privilege-escalation
logsource:
category: application
product: kubernetes
service: audit
detection:
selection:
verb: 'create'
objectRef.resource: 'pods'
capabilities: '*' # Note: Add the "exists" when it's implemented in SigmaHQ/Aurora
condition: selection
falsepositives:
- Unknown
level: low
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
verb: 'create'
objectRef.resource: 'pods'
capabilities: '*'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
capabilities | wildcard |
| field:"capabilities" kind:wildcard value:"*" |
objectRef.resource | eq |
| field:"objectRef.resource" kind:eq value:"pods" |
verb | eq |
| field:"verb" kind:eq value:"create" |
Procdump Execution
#Detects usage of the SysInternals Procdump utility
Known False Positives
- Legitimate use of procdump by a developer or administrator
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth | |
| 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: Procdump Execution
id: 2e65275c-8288-4ab4-aeb7-6274f58b6b20
status: test
description: Detects usage of the SysInternals Procdump utility
references:
- https://learn.microsoft.com/en-us/sysinternals/downloads/procdump
author: Florian Roth (Nextron Systems)
date: 2021-08-16
modified: 2026-06-29
tags:
- attack.stealth
- attack.t1036
- attack.t1003.001
- attack.credential-access
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\procdump.exe'
- '\procdump64.exe'
- '\procdump64a.exe'
condition: selection
falsepositives:
- Legitimate use of procdump by a developer or administrator
level: medium
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_sysinternals_procdump/info.yml
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Image|endswith:
- '\procdump.exe'
- '\procdump64.exe'
- '\procdump64a.exe'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Image | ends_with |
| field:"Image" kind:ends_with |
Query Usage To Exfil Data
#Detects usage of "query.exe" a system binary to exfil information such as "sessions" and "processes" for later use
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | No specific technique |
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: Query Usage To Exfil Data
id: 53ef0cef-fa24-4f25-a34a-6c72dfa2e6e2
status: test
description: Detects usage of "query.exe" a system binary to exfil information such as "sessions" and "processes" for later use
references:
- https://twitter.com/MichalKoczwara/status/1553634816016498688
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-08-01
modified: 2023-01-19
tags:
- attack.execution
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith: ':\Windows\System32\query.exe'
CommandLine|contains:
- 'session >'
- 'process >'
condition: selection
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
Image|endswith: ':\Windows\System32\query.exe'
CommandLine|contains:
- 'session >'
- 'process >'
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:":\Windows\System32\query.exe" |
Renamed AutoHotkey.EXE Execution
#Detects execution of a renamed autohotkey.exe binary based on PE metadata fields
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth | No specific technique |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Renamed AutoHotkey.EXE Execution
id: 0f16d9cf-0616-45c8-8fad-becc11b5a41c
status: test
description: Detects execution of a renamed autohotkey.exe binary based on PE metadata fields
references:
- https://www.autohotkey.com/download/
- https://thedfirreport.com/2023/02/06/collect-exfiltrate-sleep-repeat/
author: Nasreddine Bencherchali
date: 2023-02-07
tags:
- attack.stealth
logsource:
category: process_creation
product: windows
detection:
selection:
- Product|contains: 'AutoHotkey'
- Description|contains: 'AutoHotkey'
- OriginalFileName:
- 'AutoHotkey.exe'
- 'AutoHotkey.rc'
filter:
- Image|endswith:
- '\AutoHotkey.exe'
- '\AutoHotkey32.exe'
- '\AutoHotkey32_UIA.exe'
- '\AutoHotkey64.exe'
- '\AutoHotkey64_UIA.exe'
- '\AutoHotkeyA32.exe'
- '\AutoHotkeyA32_UIA.exe'
- '\AutoHotkeyU32.exe'
- '\AutoHotkeyU32_UIA.exe'
- '\AutoHotkeyU64.exe'
- '\AutoHotkeyU64_UIA.exe'
- Image|contains: '\AutoHotkey'
condition: selection and not filter
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selection and not filterStage 1: selection
selection:
- Product|contains: 'AutoHotkey'
- Description|contains: 'AutoHotkey'
- OriginalFileName:
- 'AutoHotkey.exe'
- 'AutoHotkey.rc'
Stage 2: not filter
filter:
- Image|endswith:
- '\AutoHotkey.exe'
- '\AutoHotkey32.exe'
- '\AutoHotkey32_UIA.exe'
- '\AutoHotkey64.exe'
- '\AutoHotkey64_UIA.exe'
- '\AutoHotkeyA32.exe'
- '\AutoHotkeyA32_UIA.exe'
- '\AutoHotkeyU32.exe'
- '\AutoHotkeyU32_UIA.exe'
- '\AutoHotkeyU64.exe'
- '\AutoHotkeyU64_UIA.exe'
- Image|contains: '\AutoHotkey'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Description | match |
| field:"Description" kind:match value:"AutoHotkey" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq |
Product | match |
| field:"Product" kind:match value:"AutoHotkey" |
Exclusions
The rule actively suppresses these predicates.
ScreenConnect Temporary Installation Artefact
#An adversary may use legitimate desktop support and remote access software, such as Team Viewer, Go2Assist, LogMein, AmmyyAdmin, etc, to establish an interactive command and control channel to target systems within networks. These services are commonly used as legitimate technical support software, and may be allowed by application control within a target environment. Remote access tools like VNC, Ammyy, and Teamviewer are used frequently when compared with other legitimate software commonly used by adversaries. (Citation: Symantec Living off the Land)
Known False Positives
- Legitimate use
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Command & Control |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 11: FileCreate |
Rule Body
title: ScreenConnect Temporary Installation Artefact
id: fec96f39-988b-4586-b746-b93d59fd1922
status: test
description: |
An adversary may use legitimate desktop support and remote access software, such as Team Viewer, Go2Assist, LogMein, AmmyyAdmin, etc, to establish an interactive command and control channel to target systems within networks.
These services are commonly used as legitimate technical support software, and may be allowed by application control within a target environment.
Remote access tools like VNC, Ammyy, and Teamviewer are used frequently when compared with other legitimate software commonly used by adversaries. (Citation: Symantec Living off the Land)
references:
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1219/T1219.md#atomic-test-5---screenconnect-application-download-and-install-on-windows
author: frack113
date: 2022-02-13
tags:
- attack.command-and-control
- attack.t1219.002
logsource:
category: file_event
product: windows
detection:
selection:
TargetFilename|contains: '\Bin\ScreenConnect.' # pattern to dll and jar file
condition: selection
falsepositives:
- Legitimate use
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetFilename|contains: '\Bin\ScreenConnect.'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetFilename | match |
| field:"TargetFilename" kind:match value:"\Bin\ScreenConnect." |
Source Code Enumeration Detection by Keyword
#Detects source code enumeration that use GET requests by keyword searches in URL strings
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Discovery |
Rule Body
title: Source Code Enumeration Detection by Keyword
id: 953d460b-f810-420a-97a2-cfca4c98e602
status: test
description: Detects source code enumeration that use GET requests by keyword searches in URL strings
references:
- https://pentester.land/tutorials/2018/10/25/source-code-disclosure-via-exposed-git-folder.html
- https://medium.com/@logicbomb_1/bugbounty-how-i-was-able-to-download-the-source-code-of-indias-largest-telecom-service-52cf5c5640a1
author: James Ahearn
date: 2019-06-08
modified: 2022-10-05
tags:
- attack.discovery
- attack.t1083
logsource:
category: webserver
detection:
keywords:
- '.git/'
condition: keywords
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
keywordsStage 1: keywords
keywords:
- '.git/'
Suspicious Activity in Shell Commands
#Detects suspicious shell commands used in various exploit codes (see references)
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
Rule Body
title: Suspicious Activity in Shell Commands
id: 2aa1440c-9ae9-4d92-84a7-a9e5f5e31695
status: test
description: Detects suspicious shell commands used in various exploit codes (see references)
references:
- https://web.archive.org/web/20170319121015/http://www.threatgeek.com/2017/03/widespread-exploitation-attempts-using-cve-2017-5638.html
- https://github.com/rapid7/metasploit-framework/blob/eb6535009f5fdafa954525687f09294918b5398d/modules/exploits/multi/http/struts_code_exec_exception_delegator.rb
- http://pastebin.com/FtygZ1cg
- https://artkond.com/2017/03/23/pivoting-guide/
author: Florian Roth (Nextron Systems)
date: 2017-08-21
modified: 2021-11-27
tags:
- attack.execution
- attack.t1059.004
logsource:
product: linux
detection:
keywords:
# Generic suspicious commands
- 'wget * - http* | perl'
- 'wget * - http* | sh'
- 'wget * - http* | bash'
- 'python -m SimpleHTTPServer'
- '-m http.server' # Python 3
- 'import pty; pty.spawn*'
- 'socat exec:*'
- 'socat -O /tmp/*'
- 'socat tcp-connect*'
- '*echo binary >>*'
# Malware
- '*wget *; chmod +x*'
- '*wget *; chmod 777 *'
- '*cd /tmp || cd /var/run || cd /mnt*'
# Apache Struts in-the-wild exploit codes
- '*stop;service iptables stop;*'
- '*stop;SuSEfirewall2 stop;*'
- 'chmod 777 2020*'
- '*>>/etc/rc.local'
# Metasploit framework exploit codes
- '*base64 -d /tmp/*'
- '* | base64 -d *'
- '*/chmod u+s *'
- '*chmod +s /tmp/*'
- '*chmod u+s /tmp/*'
- '* /tmp/haxhax*'
- '* /tmp/ns_sploit*'
- 'nc -l -p *'
- 'cp /bin/ksh *'
- 'cp /bin/sh *'
- '* /tmp/*.b64 *'
- '*/tmp/ysocereal.jar*'
- '*/tmp/x *'
- '*; chmod +x /tmp/*'
- '*;chmod +x /tmp/*'
condition: keywords
falsepositives:
- Unknown
level: high
Stages and Predicates
Stage 0: condition
keywordsStage 1: keywords
keywords:
- 'wget * - http* | perl'
- 'wget * - http* | sh'
- 'wget * - http* | bash'
- 'python -m SimpleHTTPServer'
- '-m http.server'
- 'import pty; pty.spawn*'
- 'socat exec:*'
- 'socat -O /tmp/*'
- 'socat tcp-connect*'
- '*echo binary >>*'
- '*wget *; chmod +x*'
- '*wget *; chmod 777 *'
- '*cd /tmp || cd /var/run || cd /mnt*'
- '*stop;service iptables stop;*'
- '*stop;SuSEfirewall2 stop;*'
- 'chmod 777 2020*'
- '*>>/etc/rc.local'
- '*base64 -d /tmp/*'
- '* | base64 -d *'
- '*/chmod u+s *'
- '*chmod +s /tmp/*'
- '*chmod u+s /tmp/*'
- '* /tmp/haxhax*'
- '* /tmp/ns_sploit*'
- 'nc -l -p *'
- 'cp /bin/ksh *'
- 'cp /bin/sh *'
- '* /tmp/*.b64 *'
- '*/tmp/ysocereal.jar*'
- '*/tmp/x *'
- '*; chmod +x /tmp/*'
- '*;chmod +x /tmp/*'
Suspicious ClickFix/FileFix Execution Pattern
#Detects suspicious execution patterns where users are tricked into running malicious commands via clipboard manipulation, either through the Windows Run dialog (ClickFix) or File Explorer address bar (FileFix). Attackers leverage social engineering campaigns—such as fake CAPTCHA challenges or urgent alerts—encouraging victims to paste clipboard contents, often executing mshta.exe, powershell.exe, or similar commands to infect systems.
Known False Positives
- Unlikely
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
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 ClickFix/FileFix Execution Pattern
id: d487ed4a-fd24-436d-a0b2-f4e95f7b2635
related:
- id: f5fe36cf-f1ec-4c23-903d-09a3110f6bbb
type: similar
status: experimental
description: |
Detects suspicious execution patterns where users are tricked into running malicious commands via clipboard manipulation, either through the Windows Run dialog (ClickFix) or File Explorer address bar (FileFix).
Attackers leverage social engineering campaigns—such as fake CAPTCHA challenges or urgent alerts—encouraging victims to paste clipboard contents, often executing mshta.exe, powershell.exe, or similar commands to infect systems.
references:
- https://github.com/JohnHammond/recaptcha-phish
- https://www.zscaler.com/blogs/security-research/deepseek-lure-using-captchas-spread-malware
- https://www.threatdown.com/blog/clipboard-hijacker-tries-to-install-a-trojan/
- https://app.any.run/tasks/5c16b4db-4b36-4039-a0ed-9b09abff8be2
- https://www.esentire.com/security-advisories/netsupport-rat-clickfix-distribution
- https://www.scpx.com.au/2025/11/16/decades-old-finger-protocol-abused-in-clickfix-malware-attacks/ # filefix variant
author: montysecurity, Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2025-11-19
tags:
- attack.execution
- attack.t1204.001
- attack.t1204.004
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\explorer.exe'
CommandLine|contains: '#'
selection_cli_captcha:
CommandLine|contains:
- 'account'
- 'anti-bot'
- 'botcheck'
- 'captcha'
- 'challenge'
- 'confirmation'
- 'fraud'
- 'human'
- 'identification'
- 'identificator'
- 'identity'
- 'robot'
- 'validation'
- 'verification'
- 'verify'
condition: all of selection_*
falsepositives:
- Unlikely
level: high
Stages and Predicates
Stage 0: condition
all of selection_*Stage 1: selection_parent
selection_parent:
ParentImage|endswith: '\explorer.exe'
CommandLine|contains: '#'
Stage 2: selection_cli_captcha
selection_cli_captcha:
CommandLine|contains:
- 'account'
- 'anti-bot'
- 'botcheck'
- 'captcha'
- 'challenge'
- 'confirmation'
- 'fraud'
- 'human'
- 'identification'
- 'identificator'
- 'identity'
- 'robot'
- 'validation'
- 'verification'
- 'verify'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
ParentImage | ends_with |
| field:"ParentImage" kind:ends_with value:"\explorer.exe" |
Suspicious File Download From IP Via Wget.EXE
#Detects potentially suspicious file downloads directly from IP addresses using Wget.exe
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | No specific technique |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 1: Process creation |
Rule Body
title: Suspicious File Download From IP Via Wget.EXE
id: 17f0c0a8-8bd5-4ee0-8c5f-a342c0199f35
status: test
description: Detects potentially suspicious file downloads directly from IP addresses using Wget.exe
references:
- https://www.gnu.org/software/wget/manual/wget.html
author: Nasreddine Bencherchali (Nextron Systems)
date: 2023-07-27
tags:
- attack.execution
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith: '\wget.exe'
- OriginalFileName: 'wget.exe'
selection_ip:
CommandLine|re: '://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
selection_http:
CommandLine|contains: 'http'
selection_flag:
- CommandLine|re: '\s-O\s'
- CommandLine|contains: '--output-document'
selection_ext:
CommandLine|endswith:
# Note you can transform this into a "contains" to increase coverage but you would need to take care of some FP.
- '.ps1'
- ".ps1'"
- '.ps1"'
- '.dat'
- ".dat'"
- '.dat"'
- '.msi'
- ".msi'"
- '.msi"'
- '.bat'
- ".bat'"
- '.bat"'
- '.exe'
- ".exe'"
- '.exe"'
- '.vbs'
- ".vbs'"
- '.vbs"'
- '.vbe'
- ".vbe'"
- '.vbe"'
- '.hta'
- ".hta'"
- '.hta"'
- '.dll'
- ".dll'"
- '.dll"'
- '.psm1'
- ".psm1'"
- '.psm1"'
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: '\wget.exe'
- OriginalFileName: 'wget.exe'
Stage 2: selection_ip
selection_ip:
CommandLine|re: '://[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
Stage 3: selection_http
selection_http:
CommandLine|contains: 'http'
Stage 4: selection_flag
selection_flag:
- CommandLine|re: '\s-O\s'
- CommandLine|contains: '--output-document'
Stage 5: selection_ext
selection_ext:
CommandLine|endswith:
- '.ps1'
- ".ps1'"
- '.ps1"'
- '.dat'
- ".dat'"
- '.dat"'
- '.msi'
- ".msi'"
- '.msi"'
- '.bat'
- ".bat'"
- '.bat"'
- '.exe'
- ".exe'"
- '.exe"'
- '.vbs'
- ".vbs'"
- '.vbs"'
- '.vbe'
- ".vbe'"
- '.vbe"'
- '.hta'
- ".hta'"
- '.hta"'
- '.dll'
- ".dll'"
- '.dll"'
- '.psm1'
- ".psm1'"
- '.psm1"'
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 |
CommandLine | regex_match |
| field:"CommandLine" kind:regex_match |
Image | ends_with |
| field:"Image" kind:ends_with value:"\wget.exe" |
OriginalFileName | eq |
| field:"OriginalFileName" kind:eq value:"wget.exe" |
Suspicious Filename with Embedded Base64 Commands
#Detects files with specially crafted filenames that embed Base64-encoded bash payloads designed to execute when processed by shell scripts. These filenames exploit shell interpretation quirks to trigger hidden commands, a technique observed in VShell malware campaigns.
Known False Positives
- Legitimate files with similar naming patterns (very unlikely).
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | |
| Stealth |
Telemetry Coverage
| Platform | Record / event type |
|---|---|
| Linux | Event ID 11: File created |
Rule Body
title: Suspicious Filename with Embedded Base64 Commands
id: 179b3686-6271-4d87-807d-17d843a8af73
status: experimental
description: |
Detects files with specially crafted filenames that embed Base64-encoded bash payloads designed to execute when processed by shell scripts.
These filenames exploit shell interpretation quirks to trigger hidden commands, a technique observed in VShell malware campaigns.
references:
- https://www.trellix.com/blogs/research/the-silent-fileless-threat-of-vshell/
author: '@kostastsale'
date: 2025-11-22
tags:
- attack.execution
- attack.stealth
- attack.t1059.004
- attack.t1027
logsource:
product: linux
category: file_event
detection:
selection:
TargetFilename|contains:
- '{echo'
- '{base64,-d}'
condition: selection
falsepositives:
- Legitimate files with similar naming patterns (very unlikely).
level: high
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
TargetFilename|contains:
- '{echo'
- '{base64,-d}'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
TargetFilename | match |
| field:"TargetFilename" kind:match |
Suspicious Get Local Groups Information - PowerShell
#Detects the use of PowerShell modules and cmdlets to gather local group information. Adversaries may use local system permission groups to determine which groups exist and which users belong to a particular group such as the local administrators group.
Known False Positives
- Inventory scripts or admin tasks
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Discovery |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| PowerShell | Event ID 4104: Creating Scriptblock text (MessageNumber of MessageTotal). |
Rule Body
title: Suspicious Get Local Groups Information - PowerShell
id: fa6a5a45-3ee2-4529-aa14-ee5edc9e29cb
related:
- id: cef24b90-dddc-4ae1-a09a-8764872f69fc
type: similar
status: test
description: |
Detects the use of PowerShell modules and cmdlets to gather local group information.
Adversaries may use local system permission groups to determine which groups exist and which users belong to a particular group such as the local administrators group.
references:
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1069.001/T1069.001.md
author: frack113
date: 2021-12-12
modified: 2025-08-22
tags:
- attack.discovery
- attack.t1069.001
logsource:
product: windows
category: ps_script
definition: 'Requirements: Script Block Logging must be enabled'
detection:
selection_localgroup:
ScriptBlockText|contains:
- 'get-localgroup '
- 'get-localgroupmember '
selection_wmi_module:
ScriptBlockText|contains:
- 'get-wmiobject '
- 'gwmi '
- 'get-ciminstance '
- 'gcim '
selection_wmi_class:
ScriptBlockText|contains: 'win32_group' # Covers both win32_group and win32_groupuser
condition: selection_localgroup or all of selection_wmi_*
falsepositives:
- Inventory scripts or admin tasks
level: low
Stages and Predicates
Stage 0: condition
selection_localgroup or all of selection_wmi_*Stage 1: selection_localgroup
selection_localgroup:
ScriptBlockText|contains:
- 'get-localgroup '
- 'get-localgroupmember '
Stage 2: selection_wmi_module
selection_wmi_module:
ScriptBlockText|contains:
- 'get-wmiobject '
- 'gwmi '
- 'get-ciminstance '
- 'gcim '
Stage 3: selection_wmi_class
selection_wmi_class:
ScriptBlockText|contains: 'win32_group'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
ScriptBlockText | match |
| field:"ScriptBlockText" kind:match |
Suspicious PowerShell Download and Execute Pattern
#Detects suspicious PowerShell download patterns that are often used in malicious scripts, stagers or downloaders (make sure that your backend applies the strings case-insensitive)
Known False Positives
- Software installers that pull packages from remote systems and execute them
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution |
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 PowerShell Download and Execute Pattern
id: e6c54d94-498c-4562-a37c-b469d8e9a275
related:
- id: 3b6ab547-8ec2-4991-b9d2-2b06702a48d7
type: derived
status: test
description: Detects suspicious PowerShell download patterns that are often used in malicious scripts, stagers or downloaders (make sure that your backend applies the strings case-insensitive)
references:
- https://gist.github.com/jivoi/c354eaaf3019352ce32522f916c03d70
- https://www.trendmicro.com/en_us/research/22/j/lv-ransomware-exploits-proxyshell-in-attack.html
author: Florian Roth (Nextron Systems)
date: 2022-02-28
modified: 2022-03-01
tags:
- attack.execution
- attack.t1059.001
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains: # make sure that your backend applies the strings case-insensitive
- 'IEX ((New-Object Net.WebClient).DownloadString'
- 'IEX (New-Object Net.WebClient).DownloadString'
- 'IEX((New-Object Net.WebClient).DownloadString'
- 'IEX(New-Object Net.WebClient).DownloadString'
- ' -command (New-Object System.Net.WebClient).DownloadFile('
- ' -c (New-Object System.Net.WebClient).DownloadFile('
condition: selection
falsepositives:
- Software installers that pull packages from remote systems and execute them
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_powershell_susp_download_patterns/info.yml
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
CommandLine|contains:
- 'IEX ((New-Object Net.WebClient).DownloadString'
- 'IEX (New-Object Net.WebClient).DownloadString'
- 'IEX((New-Object Net.WebClient).DownloadString'
- 'IEX(New-Object Net.WebClient).DownloadString'
- ' -command (New-Object System.Net.WebClient).DownloadFile('
- ' -c (New-Object System.Net.WebClient).DownloadFile('
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Sysmon Configuration Error
#Detects when an adversary is trying to hide it's action from Sysmon logging based on error messages
Known False Positives
- Legitimate administrative action
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Sysmon | Event ID 255: Error report: UtcTime: UtcTime ID: ID Description: Description. |
Rule Body
title: Sysmon Configuration Error
id: 815cd91b-7dbc-4247-841a-d7dd1392b0a8
status: test
description: Detects when an adversary is trying to hide it's action from Sysmon logging based on error messages
references:
- https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1562.001/T1562.001.md
- https://talesfrominfosec.blogspot.com/2017/12/killing-sysmon-silently.html
author: frack113
date: 2021-06-04
modified: 2026-07-23
tags:
- attack.stealth
- attack.t1564
logsource:
product: windows
category: sysmon_error
detection:
selection_error:
Description|contains:
- 'Failed to open service configuration with error'
- 'Failed to connect to the driver to update configuration'
filter_generic_english:
Description|contains|all:
- 'Failed to open service configuration with error'
- 'Last error: The media is write protected.'
filter_generic_french:
Description|contains|all:
- 'Failed to open service configuration with error'
- 'Last error: Média protégé en écriture.'
filter_by_errorcode:
Description|contains:
- 'Failed to open service configuration with error 19'
- 'Failed to open service configuration with error 93'
condition: selection_error and not 1 of filter*
falsepositives:
- Legitimate administrative action
level: high
Stages and Predicates
Stage 0: condition
selection_error and not 1 of filter*Stage 1: selection_error
selection_error:
Description|contains:
- 'Failed to open service configuration with error'
- 'Failed to connect to the driver to update configuration'
Stage 2: not filter*
filter_generic_english:
Description|contains|all:
- 'Failed to open service configuration with error'
- 'Last error: The media is write protected.'
filter_generic_french:
Description|contains|all:
- 'Failed to open service configuration with error'
- 'Last error: Média protégé en écriture.'
filter_by_errorcode:
Description|contains:
- 'Failed to open service configuration with error 19'
- 'Failed to open service configuration with error 93'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
Description | match |
| field:"Description" kind:match |
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
Description | match | Failed to open service configuration with error | excludes:Description field:"Description" value:"Failed to open service configuration with error" |
Description | match | Last error: Média protégé en écriture. | excludes:Description field:"Description" value:"Last error: Média protégé en écriture." |
Description | match | Last error: The media is write protected. | excludes:Description field:"Description" value:"Last error: The media is write protected." |
Description | match | Failed to open service configuration with error 19 | excludes:Description field:"Description" value:"Failed to open service configuration with error 19" |
Description | match | Failed to open service configuration with error 93 | excludes:Description field:"Description" value:"Failed to open service configuration with error 93" |
Ursnif Malware C2 URL Pattern
#Detects Ursnif C2 traffic.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Execution | |
| Command & Control |
Rule Body
title: Ursnif Malware C2 URL Pattern
id: 932ac737-33ca-4afd-9869-0d48b391fcc9
status: stable
description: Detects Ursnif C2 traffic.
references:
- https://www.fortinet.com/blog/threat-research/ursnif-variant-spreading-word-document.html
author: Thomas Patzke
date: 2019-12-19
modified: 2021-08-09
tags:
- attack.initial-access
- attack.t1566.001
- attack.execution
- attack.t1204.002
- attack.command-and-control
- attack.t1071.001
- detection.emerging-threats
logsource:
category: proxy
detection:
b64encoding:
c-uri|contains:
- '_2f'
- '_2b'
urlpatterns:
c-uri|contains|all:
- '.avi'
- '/images/'
condition: b64encoding and urlpatterns
falsepositives:
- Unknown
level: critical
Stages and Predicates
Stage 0: condition
b64encoding and urlpatternsStage 1: b64encoding
b64encoding:
c-uri|contains:
- '_2f'
- '_2b'
Stage 2: urlpatterns
urlpatterns:
c-uri|contains|all:
- '.avi'
- '/images/'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
c-uri | match |
| field:"c-uri" kind:match |
UtilityFunctions.ps1 Proxy Dll
#Detects the use of a Microsoft signed script executing a managed DLL with PowerShell.
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: UtilityFunctions.ps1 Proxy Dll
id: 0403d67d-6227-4ea8-8145-4e72db7da120
status: test
description: Detects the use of a Microsoft signed script executing a managed DLL with PowerShell.
references:
- https://lolbas-project.github.io/lolbas/Scripts/UtilityFunctions/
author: frack113
date: 2022-05-28
tags:
- attack.stealth
- attack.t1216
logsource:
category: process_creation
product: windows
detection:
selection:
CommandLine|contains:
- 'UtilityFunctions.ps1'
- 'RegSnapin '
condition: selection
falsepositives:
- Unknown
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
CommandLine|contains:
- 'UtilityFunctions.ps1'
- 'RegSnapin '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
CommandLine | match |
| field:"CommandLine" kind:match |
Virtual Machine Created
#Creates a new virtual machine.
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Execution | No specific technique |
Telemetry Coverage
Rule Body
title: Virtual Machine Created
id: fa1feca0-3566-4e3a-9bcf-8f399ea2db3f
status: test
description: |
Creates a new virtual machine.
references:
- https://learn.microsoft.com/en-us/azure/azure-monitor/reference/queries/azureactivity#vm-creation
author: Fukusuke Takahashi
date: 2025-12-02
tags:
- attack.execution
logsource:
product: azure
service: activitylogs
detection:
selection:
operationName: MICROSOFT.COMPUTE/VIRTUALMACHINES/WRITE
properties.statusCode: Created
condition: selection
falsepositives:
level: informational
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
operationName: MICROSOFT.COMPUTE/VIRTUALMACHINES/WRITE
properties.statusCode: Created
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
operationName | eq |
| field:"operationName" kind:eq value:"MICROSOFT.COMPUTE/VIRTUALMACHINES/WRITE" |
properties.statusCode | eq |
| field:"properties.statusCode" kind:eq value:"Created" |
Windows Defender Configuration Changes
#Detects suspicious changes to the Windows Defender configuration
Known False Positives
- Administrator activity (must be investigated)
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Defense Impairment |
Telemetry Coverage
| Provider | Record / event type |
|---|---|
| Windows-Defender | Event ID 5007: Product Name Configuration has changed. |
Rule Body
title: Windows Defender Configuration Changes
id: 801bd44f-ceed-4eb6-887c-11544633c0aa
related:
- id: 1321dc4e-a1fe-481d-a016-52c45f0c8b4f
type: similar
- id: a3ab73f1-bd46-4319-8f06-4b20d0617886
type: similar
- id: 91903aba-1088-42ee-b680-d6d94fe002b0
type: similar
status: stable
description: Detects suspicious changes to the Windows Defender configuration
references:
- https://learn.microsoft.com/en-us/defender-endpoint/troubleshoot-microsoft-defender-antivirus?view=o365-worldwide
- https://bidouillesecurity.com/disable-windows-defender-in-powershell/#DisableAntiSpyware
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-12-06
modified: 2023-11-24
tags:
- attack.defense-impairment
- attack.t1685
logsource:
product: windows
service: windefend
detection:
selection:
EventID: 5007 # The antimalware platform configuration changed.
NewValue|contains:
# TODO: Add more suspicious values
- '\Windows Defender\DisableAntiSpyware '
# - '\Windows Defender\Features\TamperProtection ' # Might produce FP
- '\Windows Defender\Scan\DisableRemovableDriveScanning '
- '\Windows Defender\Scan\DisableScanningMappedNetworkDrivesForFullScan '
- '\Windows Defender\SpyNet\DisableBlockAtFirstSeen '
- '\Real-Time Protection\SpyNetReporting '
# Exclusions changes are covered in 1321dc4e-a1fe-481d-a016-52c45f0c8b4f
# Exploit guard changes are covered in a3ab73f1-bd46-4319-8f06-4b20d0617886
condition: selection
falsepositives:
- Administrator activity (must be investigated)
level: high
regression_tests_path: regression_data/rules/windows/builtin/windefend/win_defender_suspicious_features_tampering/info.yml
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
EventID: 5007
NewValue|contains:
- '\Windows Defender\DisableAntiSpyware '
- '\Windows Defender\Scan\DisableRemovableDriveScanning '
- '\Windows Defender\Scan\DisableScanningMappedNetworkDrivesForFullScan '
- '\Windows Defender\SpyNet\DisableBlockAtFirstSeen '
- '\Real-Time Protection\SpyNetReporting '
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
NewValue | match |
| field:"Details" kind:match |
WordPress Wp2shell REST Batch Endpoint Exploitation
#Detects exploitation attempts against the WordPress REST batch endpoint (CVE-2026-63030, CVE-2026-60137) using the wp2shell PoC tool. The tool sends POST requests to the batch endpoint via the ?rest_route=/batch/v1 query parameter, covering all attack phases from initial probe through SQL injection and pre-auth admin creation. A 207 response confirms the endpoint is active on the target.
Known False Positives
- WordPress CLI scripts or maintenance tooling invoking the batch endpoint via query parameter
MITRE ATT&CK Coverage
| Tactic | Techniques |
|---|---|
| Initial Access |
Rule Body
title: WordPress Wp2shell REST Batch Endpoint Exploitation
id: b8d5f301-2c49-4e6d-af83-4a5b6c7d8e9f
status: experimental
description: |
Detects exploitation attempts against the WordPress REST batch endpoint (CVE-2026-63030,
CVE-2026-60137) using the wp2shell PoC tool. The tool sends POST requests to the batch endpoint
via the ?rest_route=/batch/v1 query parameter, covering all attack phases from initial probe
through SQL injection and pre-auth admin creation. A 207 response confirms the endpoint is
active on the target.
references:
- https://github.com/Icex0/wp2shell-poc
- https://slcyber.io/research-center/wp2shell-pre-authentication-rce-in-wordpress-core/
- https://wordpress.org/news/2026/07/wordpress-7-0-2-release/
author: Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2026-07-19
tags:
- attack.initial-access
- attack.t1190
- detection.emerging-threats
- cve.2026-63030
- cve.2026-60137
logsource:
category: webserver
detection:
selection:
cs-method: 'POST'
sc-status: 207
cs-uri-query|contains:
- 'rest_route=/batch/v1'
- 'rest_route=%2Fbatch%2Fv1'
condition: selection
falsepositives:
- WordPress CLI scripts or maintenance tooling invoking the batch endpoint via query parameter
level: medium
Stages and Predicates
Stage 0: condition
selectionStage 1: selection
selection:
cs-method: 'POST'
sc-status: 207
cs-uri-query|contains:
- 'rest_route=/batch/v1'
- 'rest_route=%2Fbatch%2Fv1'
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
cs-method | eq |
| field:"cs-method" kind:eq value:"POST" |
cs-uri-query | match |
| field:"cs-uri-query" kind:match |
sc-status | eq |
| field:"sc-status" kind:eq value:"207" |